This guide will show you how to install xrdesktop into
/usr. If you prefer to install into
/usr/local, change the
--prefix parameters in this guide, however this has not been tested well, and especially gnome-shell or the kwin plugin might need some additional work to run from
This guide might not perfectly apply to your distribution. Contributions to this guide are welcome, you can join our chats to seek support.
These are the package names for Ubuntu 20.04. On different distributions, try to find equivalents and watch what the meson output asks for.
For the xrdesktop libraries:
sudo apt install build-essential meson pkg-config libglib2.0-dev libgdk-pixbuf2.0-dev libvulkan-dev libgraphene-1.0-dev libcairo2-dev libgtk-3-dev libxdo-dev gtk-doc-tools glslang-tools python3-dev python-gi-dev
For the KWin plugin:
sudo apt install libkf5configwidgets-dev libkf5globalaccel-dev libkf5i18n-dev libkf5service-dev libkf5xmlgui-dev kwin-dev qtdeclarative5-dev plasma-workspace-dev gettext
sudo apt install libecal2.0-dev libgcr-3-dev libgjs-dev libcroco3-dev libmutter-6-dev libpolkit-agent-1-dev libstartup-notification0-dev libibus-1.0-dev libnm-dev libsystemd-dev sassc libpulse-dev libgnome-desktop-3-dev libgnome-autoar-0-dev asciidoc-base
Optional: For example applications that are built by gulkan, gxr and xrdesktop (but not installed either way):
sudo apt install libglfw3-dev libglew-dev
XR runtime dependencies
xrdesktop can run either via OpenVR or OpenXR. For more information on running with OpenXR, see openxr in the xrdesktop wiki.
By default the
gxr library will compile an OpenVR and an OpenXR backend if the respective loader installation is found on the system. Install at least one of OpenVR or OpenXR-SDK:
git clone https://github.com/ValveSoftware/openvr.git cd openvr cmake -DCMAKE_INSTALL_PREFIX=/usr . make sudo make install cd ..
Check if your distribution already provides a package for openxr-sdk or openxr-loader in the repositories.
git clone https://github.com/KhronosGroup/OpenXR-SDK.git cd OpenXR-SDK cmake -DCMAKE_INSTALL_PREFIX=/usr . make sudo make install cd ..
- Clone the base library repos
git clone https://gitlab.freedesktop.org/xrdesktop/gulkan.git git clone https://gitlab.freedesktop.org/xrdesktop/gxr.git git clone https://gitlab.freedesktop.org/xrdesktop/libinputsynth.git git clone https://gitlab.freedesktop.org/xrdesktop/xrdesktop.git
- Build and install gulkan
cd gulkan meson --prefix=/usr build ninja -C build sudo ninja -C build install cd ..
- Build and install gxr
Pay attention to the output of
mesonto confirm it builds the XR runtime backend you want to use.
cd gxr meson --prefix=/usr build ninja -C build sudo ninja -C build install cd ..
- Build and install xrdesktop
cd xrdesktop meson --prefix=/usr build ninja -C build sudo ninja -C build install cd ..
- Build and install libinputsynth
cd libinputsynth meson --prefix=/usr build ninja -C build sudo ninja -C build install cd ..
- Clone the KDE repos.
git clone https://gitlab.freedesktop.org/xrdesktop/kwin-effect-xrdesktop.git git clone https://gitlab.freedesktop.org/xrdesktop/kdeplasma-applets-xrdesktop.git
- Build kwin effect plugin.
cd kwin-effect-xrdesktop cmake -DCMAKE_INSTALL_PREFIX=/usr . make sudo make install cd ..
KWin needs to be restarted with
kwin_x11 --replace to find and load the plugin.
If the plugin is installed to another prefix than
/usr, KWin might not find the plugin on its own. In this case, observe where
make install installs the plugin and restart kwin with the
QT_PLUGIN_PATH set to the
plugins/ directory like so (example from Ubuntu 19.04)
QT_PLUGIN_PATH=/usr/local/lib/x86_64-linux-gnu/plugins/ kwin_x11 --replace
- Install plasma applet
cd kdeplasma-applets-xrdesktop cmake -DCMAKE_INSTALL_PREFIX=/usr . make sudo make install cd ..
Alternatively the plasmoid could be installed to
~/.local/share/plasma/plasmoids/xrdesktop/ with the command
kpackagetool5 -t Plasma/Applet -u package.
- Clone the GNOME repos
git clone https://gitlab.freedesktop.org/xrdesktop/gnome-shell.git git clone https://gitlab.freedesktop.org/xrdesktop/gnome-shell-extension-xrdesktop.git
- Build and install GNOME Shell extension
cd gnome-shell-extension-xrdesktop meson --prefix=/usr build sudo ninja -C build install cd ..
Alternatively the extension folder
email@example.com could also be copied into
- Install patched GNOME Shell
Each gnome-shell release has to be patched individually for xrdesktop.
git branch | grep xrdesktoplists the branches with the xrdesktop patchset. Development happens usually on the most recent gnome-shell version, and patches are backported as needed.
Check out the gnome-shell branch that fits the package your distribution offers in its repositories.
cd gnome-shell git checkout 3.36.3-xrdesktop meson --prefix=/usr build sudo ninja -C build install cd ..
F2 and run
gnome-shell --replace to restart gnome-shell.
After the installation
How to go on from here can be found in the HOWTO.
If you have trouble with xrdesktop's gsettings schema, for example if
xrdesktop/build/tests/test_gsettings prints an error, refer to the gsettings troubleshooting page.