__ ___ __ \ / | \ |__ /__` |__/ \_/ |__/ |___ .__/ | \ / \ / \ Universal light and fast program for remote control of a computer
Releases | Docs | How to use | Discussions
The project was created for its own use within the home network (you can use DeskX over the internet using port forwarding via ssh). I have a server at home with a large number of Linux virtual machines to which I needed remote access. All remote software I've tried had their problems - e.g., scrolling lags in the browser, dragging windows, etc. For this reason, a project was created that focused on universal, maximum-speed data transfer, without paying special attention to image quality.
- Own compression algorithm that can be adjusted manually (read more)
- Client and server mode in one program
- Fullscreen or windowed mode (auto scale if server's screen is bigger)
- Linux (X11 / Wayland) & macOS & Windows support
Controlling screen resolution and picture sizes is entirely dependent on the server-side resolution settings. To change it, use the standard utility. An update will be released later with automatic permission change. The client window will automatically scale if the resolution on the server is larger than the client screen.
- Build it
# Debian/Ubuntu
sudo apt install libx11-dev libxtst-dev libxext-dev libportal-dev libpipewire-0.3-dev \
libsdl2-dev
git clone https://github.com/DeskX11/DeskX/
cd DeskX
make
# MacOS
brew install sdl2
git clone https://github.com/DeskX11/DeskX/
cd DeskX
make
# Windows
# To compile, you need to use Cygwin + MinGW. During the installation of Cygwin, you
# need to select the components g++, make, SDL2, git. After open Cygwin terminal and
# follow the instructions below:
git clone https://github.com/DeskX11/DeskX/
cd DeskX
make
# If you want to use the program outside the Cygwin terminal, you need to put the
# necessary DLLs next to the exe file and then you can run DeskX without being tied to
# the environment: cyggcc_s-seh-1.dll, cygSDL2-2-0-0.dll, cygstdc++-6.dll, cygwin1.dll
- Build the .deb packages
# Debian/Ubuntu
sudo apt install libx11-dev libxtst-dev libxext-dev libportal-dev libpipewire-0.3-dev \
libsdl2-dev
git clone https://github.com/DeskX11/DeskX/
cd DeskX
make dpkg
# After that, you will have the client and server .deb packages in the project's
# root folder.
- Or you can download packages from the Release section
- Also, there is an AUR repository for Arch Linux users (Thanks to joserebelo!)
- Detailed instructions on setting up the environment can be found here
Usage: ./deskx client [options]
Client's options:
--ip IP address of the server
--port Port of the server
--color-distance Compression range (1-255) (default: 2)
--fps Frame limit (default: 50)
Examples:
./deskx client --ip=192.168.0.1 --port=1742 --color-distance=2
Usage: ./deskx server [options]
Server's options:
--bind-ip IP address to listen on (default: All)
--port Connection port
Examples:
./deskx server --bind-ip=192.168.0.1 --port=1742
Fast data transfer depends on two factors: the size of the transmitted packet and the transfer rate. To reduce the size of the batch, you can try changing the --color-distance=
parameter up. You can also make a single-color desktop wallpaper, remove shadows on windows, and so on.
g++ make
libx11-dev libxtst-dev libxext-dev libsdl2-dev libportal-dev libpipewire-0.3-dev
clang make
libsdl2
Cygwin MinGW
g++ make libsdl2