Back to Client Overview
Install the FSRdp Client on Linux
For Ubuntu, Xubuntu, Debian and Raspberry Pi OS (64-bit). Every command is explained individually, even if this is your first time using a terminal.
Need Help Setting Up?
Ask an AI chatbot of your choice using the following prompt:
Please help me set up my FSRdp client on Linux using this guide:
https://www.fssoft.de/FsRdp/en/InstallingClientLinux.md
Guide me step by step, only one step per response, and wait for my feedback after each command. Never ask me for a password.
The link points to the plain-text version of this page, which a chatbot can read in full rather than the shortened content it often retrieves from HTML pages.
1. Prerequisites
-
Linux with a graphical desktop. Tested on Ubuntu and Xubuntu (x64), Debian and Raspberry Pi OS (64-bit) on Raspberry Pi 5. The client does not run on a server without a desktop.
- The correct architecture:
linux-x64 for Intel/AMD, linux-arm64 for Raspberry Pi. Check with uname -m – x86_64 or aarch64.
- No separate .NET installation; the package is self-contained.
- The server name and ports of your FsRdpServer (default
8888 and 8889).
- An account with
sudopermissions for installation.
You do not need to open any ports on the client. The client always initiates the connection to the server. Only the
server must be reachable.
2. Understand and Install Dependencies
Linux has no single interface for screen capture and keyboard input. The client therefore uses established small utilities. You only need to install those required for the features you intend to use:
| Package | Purpose | Required When … |
grim |
Screen capture on Wayland (Raspberry Pi OS with labwc, wlroots compositors) |
… you want to share your screen |
gnome-screenshot |
Screen capture on X11 (Xubuntu/XFCE and similar desktops) |
… you want to share your screen |
ydotool |
Inject mouse and keyboard input |
… your computer should accept remote control |
pipewire-bin, wireplumber |
Microphone and speakers |
… you want to use voice |
wl-clipboard or xclip or xsel |
Clipboard between computers |
… your computer's screen is shared and remotely controlled |
v4l-utils |
Gives cameras readable names |
… optional, for convenience only |
policykit-1 |
Confirmation before installing updates |
… always |
You do not need to find these packages manually. Every package includes a preparation script that installs the appropriate dependencies for your system:
prepare-raspberry-pi.sh for the ARM64 package,
prepare-ubuntu-server.sh for the x64 package. The table above explains what happens and why.
ydotool is not in the default package repositories on some systems. On Raspberry Pi OS it is in backports, for example; the ARM64 package includes a suitable repository source file.
3. Extract and Install the Package
Open a terminal (on Raspberry Pi OS and Ubuntu, usually with
Ctrl+Alt+T) and change to the folder containing the downloaded ZIP file, usually:
cd ~/Downloads
1
Extract
sudo apt update
sudo apt install -y unzip
unzip FsRdpClient-linux-arm64.zip -d FsRdpClient
cd FsRdpClient
On an Intel/AMD computer, the file is named
FsRdpClient-linux-x64.zip. The archive has no password.
2
Make Files Executable
chmod +x FsRdpClient install.sh apply-update.sh
For the Raspberry Pi package, also include prepare-raspberry-pi.sh
; for the x64 package, include prepare-ubuntu-server.sh. Linux does not automatically mark extracted files as executable; this step does so.
3
Prepare Dependencies
./prepare-raspberry-pi.sh
On an x64 system, use
./prepare-ubuntu-server.shinstead. A restart is required afterwards because the script also configures the desktop.
4
Install the Client
./install.sh
Important: Run this script as your ordinary desktop user , without prefixing it with sudo . It requests administrative permissions where needed. The application menu entry and input service are configured for the user running the script.
The program is then installed under /opt/fsrdp-client/ and appears in the application menu. Alternatively, start it in a terminal:
fsrdp-client
4. Enable Remote Control of This Computer
Only required if your computer should be controlled by someone else. If you only want to control other computers, skip this section.
On Linux, an ordinary program cannot generate keyboard and mouse events. A small system service called
ydotooldhandles this. If ydotool is installed,
install.sh automatically configures this service as well (fsrdp-input.service), tailored to your user account.
Check that it is running:
systemctl status fsrdp-input.service --no-pager
Why Use a Dedicated Service?
The standard ydotool service makes its control interface writable by all users, so anyone signed in could generate keyboard input for other users. The supplied
fsrdp-input.service restricts the interface to your account.
If installation reports that ydotool is not installed, remote control of this computer remains disabled. Everything else still works.
5. Microphone, Audio and Echo Cancellation
Unlike Windows, there are no permission switches: if PipeWire is running and a microphone is connected, it works. Select devices in the client's settings.
Without echo cancellation, the client uses half-duplex audio: while playing audible room audio, it pauses your microphone. Otherwise it would capture other participants' sound and everyone would hear a delayed echo. With a headset, this is not noticeable.
To use speakers without a headset and allow simultaneous speech, enable PipeWire echo cancellation once per computer:
mkdir -p ~/.config/pipewire/pipewire.conf.d
Create the file 99-echo-cancel.conf there. The exact template is in README-LINUX.md or the package's included README. Then:
systemctl --user restart pipewire wireplumber
6. Settings: Server, Name and Language
Open settings using the gear icon and enter:
| Your Name | The display name other participants see. |
| Server Address | Your server's DNS name, e.g. server.ihrefirma.de. Do not use an IP address : the certificate is issued for the name. |
| Ports | Normally 8888 and 8889. |
| Spoken Language | Determines the language in which your speech is recognized and in which you read other participants' captions. Only relevant if your server offers live captions. |
| Supporter Key | If you have one, it makes you the owner of rooms you create. |
The settings dialog cannot be opened during an active session. Configure settings before joining a room.
7. Join Your First Room
A room is a virtual meeting place. Everyone entering the same room number joins the same session. Enter the number you received and connect. While alone in a room, screen sharing, chat and file sending are disabled, since there is no one to receive them.
When sharing your screen, a red border continuously shows the transmitted area. Only one person can share at a time; starting a new share replaces the current one.
Connecting to a Server without a License?
During its 30-day trial period, a server accepts exactly one
room number: 123456789. Any other number is rejected with an explanatory message. The room can remain open for up to 24 hours and can be reopened immediately afterwards; all participants see a watermark. On a licensed server, this particular number is blocked instead.
8. Differences from the Windows Client
Both clients offer the same features, with three platform-specific exceptions:
-
No session recording. Only the Windows client can record a session as a video file. The Linux client displays a notice while someone else records, but cannot start a recording itself.
-
Plain-text clipboard only. The Linux client does not transfer formatted content such as tables or styled text; it uses the included plain-text representation. There is no common way to transfer formatted clipboard content across X11 and Wayland.
-
Starting again does not bring the window forward. Only one client instance runs per user here as well. A second launch displays a notice and exits because Wayland compositors refuse requests to activate another application's windows.
The single-instance limit has the same reason as on Windows: a second instance would recapture the first instance's room audio through the shared microphone. Neither half-duplex switching nor PipeWire echo cancellation can prevent this, since each only knows its own playback stream.
9. Updates and Uninstallation
At startup, the client checks its update channel; x64 and ARM64 are separate. Updates are downloaded only after confirmation. A cryptographically signed manifest, package size and SHA-256 checksum are verified before PolicyKit asks for your password. Nothing is silently installed in the background.
To remove the client, run:
sudo rm -rf /opt/fsrdp-client
sudo rm -f /usr/local/bin/fsrdp-client
rm -f ~/.local/share/applications/fsrdp-client.desktop
sudo systemctl disable --now fsrdp-input.service
10. Common Problems
./install.sh: Permission denied
The file has not been marked executable yet. Repeat the
chmod +xstep from section 3.
Screen Sharing Is Black or Does Not Start
The required capture utility is missing: grim on Wayland,
gnome-screenshot on X11. To identify your session type:
echo $XDG_SESSION_TYPE
Remote Control of My Computer Does Not Work
Check systemctl status fsrdp-input.service. If the service is missing, ydotool was not available during installation. Install it and run
./install.sh again.
The Mouse Pointer Jumps During Remote Control
On labwc systems, the virtual input device needs a flat acceleration profile. Installation creates an appropriate
rc.xml . If your own file already exists, it is left unchanged and you must copy the section from the included template yourself.
Others Cannot Hear Me
- Is the microphone muted in the client?
- Is the correct recording device selected in settings?
- Is PipeWire running?
systemctl --user status pipewire
- Is the client currently playing room audio? The microphone is intentionally paused in that case (section 5).
The Client Does Not Connect
Check the server address (name, rather than IP) and both port numbers. To check name resolution, run
getent hosts server.ihrefirma.de. If there is no answer, the problem is DNS rather than the client.