Simple command-line program for sharing the display image on a local network.

XCast

is a simple server/client command line program for sharing screen under X.

With XCast you have the ability to either pull the display from a remote server or push a local display to a remote server, simply by specifying the IP address. The application is ment to be used in a local network or VPN environment (like office) for quickly sharing displays between coleges.

The initial implementation was made for streaming a Linux PC display to a RaspberryPI, connected to a TV. That was more then five years ago, before I bought the HDMI cable. With a bit of tinkering this functionality should work or is still working (make file includes rPI build target and ARM dependencies), but has not been tested since then.

The aplication is using FFmpeg for ecoding and decoding video. FFmpeg is licensed under the LGPLv2.1 and its source can be downloaded here.

OpenGL on EGL is used for rendering the remote video stream which facilitates implementation of image/display compositing or any other post-processing transformations.

Usage

Start XCast in the listening mode on machine A:

xcast --listen

On machine B, show machine A desktop:

xcast --pull <machine A IP address>

On machine B, show machine B desktop on machine A:

xcast --push <machine A IP address>

It is also possible to start the xcast server when loged in through the SSH by setting the $DISPLAY environment variable. For example:

export DISPLAY=:0
xcast --listen

Installation

Make sure that following dependencies are installed:

  • ffmpeg
  • xorg

On a tipical Linux desktop machine the xorg dependency is probably installed and used by the desktop environment. You can check this by executing:

if [ $DISPLAY ]; then echo "X is running"; else echo "X is not running"; fi

If you get X is not running, your desktop environment is using the Wayland display protocol which is currently not supported.

When all dependecies are met you can install the program:

git clone [email protected]b.com:vcucek/xcast.git
cd xcast
make
sudo make install

This builds the application into a single executable and copyes it to the /usr/local/bin folder.

TODO:

  • implement screen zooming, panning..
  • implement keyboard/mouse capture and sharing
  • add Wayland support
  • test RaspberryPI support
Owner
Similar Resources

Tuibox - A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line.

Tuibox - A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line.

tuibox tuibox ("toybox") is a single-header terminal UI library, capable of creating mouse-driven, interactive applications on the command line. It is

Dec 24, 2022

Wave Function Collapse library in C, plus a command-line tool

Wave Function Collapse library in C, plus a command-line tool

wfc Single-file Wave Function Collapse library in C, plus a command-line tool License: MIT Version: 0.01 This is an early version that supports the ov

Dec 29, 2022

A small, fast codeforces command line tool for competitive programming.

A small, fast codeforces command line tool for competitive programming.

chainsaw: A Codeforces Commandline Tool chainsaw is a small and faster drop-in replacement for your copy and paste while attending Codeforces contests

Dec 8, 2022

A collection of command line tools for ARM devices with Allwinner SoCs.

sunxi-tools Copyright (C) 2012 Alejandro Mery [email protected] For a full list of contributors, see this link or use the command git shortlog -se --no-m

Jan 2, 2023

Command line tool for offline shader ISA inspection.

Intel Shader Analyzer Intel Shader Analyzer is a tool for offline static analysis of shaders for Intel GPU Architectures. It allows a user to compile

Jan 3, 2023

Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __

Dec 30, 2022

The command line app automatically determines your location using GeoIP and adjusts the color temperature depending on time

go-sct A color temperature setting library and CLI that operates in a similar way to f.lux and Redshift. The command line app automatically determines

Jan 25, 2022

Quick reference on command line tools and techniques

1. Introduction 1.1. Scope 1.2. Background 1.3. Purpose 1.4. Next steps 2. Basics 2.1. Common commands 2.2. Shortcuts 2.2.1. Navigation 2.2.2. Editing

Dec 7, 2022

OS X command line tool to inject Frameworks and dylibs on mach-o binaries (iOS & Mac Apps).

macho-inject OS X command line tool to inject Frameworks and dylibs on mach-o binaries. It does the injection of the framework and the codesigning. It

Nov 8, 2022
A program that allows you to hide certain windows when sharing your full screen
A program that allows you to hide certain windows when sharing your full screen

Invisiwind Invisiwind (short for Invisible Window) is an application that allows you to hide certain windows when sharing your full screen.

Dec 20, 2022
Flutter app that syncs clipboards between devices in the same local network.

clipboard_sync A flutter app that syncs clipboards between devices in the same LAN using Interprocess communication (Sockets). What it does ? group of

Oct 29, 2021
Creates an AP with a web page interface that allows configuration of ESP for local WiFi network.

Creates an AP with a web page interface that allows configuration of ESP for local WiFi network.

Feb 5, 2022
Add virtual monitors to your windows 10 device! Works with Oculus software, obs, and any desktop sharing software

License MIT and CC0 or Public Domain, whichever is least restrictive -- Use it AS IS - NO IMPLICIT OR EXPLICIT warranty This may break your computer,

Jan 6, 2023
An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Dec 29, 2022
A simple DPDK application that calculates stats for dropped and forwarded packets depending on the command line.

The DPDK Stats Description A small DPDK application that increments a basic packet counter for TCP or UDP packets depending on what's specified in the

Oct 24, 2022
Icopack - A simple command line tool to create multi-frame ICO files from PNG source images
Icopack - A simple command line tool to create multi-frame ICO files from PNG source images

Optidash is a modern, AI-powered image optimization and processing API. We will drastically speed-up your websites and save you money on bandwidth and

Jul 27, 2022
Lightweight C++ command line option parser

Release versions Note that master is generally a work in progress, and you probably want to use a tagged release version. Version 3 breaking changes I

Jan 4, 2023
The command line interface for Piccolo
The command line interface for Piccolo

Piccolo programming language A fun, easy to embed high-level programming language. This repo contains the code for the Piccolo CLI. The core Piccolo c

Feb 14, 2022
LKM Command Line Parsing - Parte 2
LKM Command Line Parsing - Parte 2

LKM-Command-Line-Parsing ?? Hoje iremos falar sobre Command Line Parsing diretamente no LKM. Esse é a segunda parte da nossa série de estudos para Roo

May 11, 2022