... | ... | @@ -5,6 +5,33 @@ Depending on your gxr build settings, openvr might be the default backend and ne |
|
|
gsettings set org.xrdesktop default-api openxr
|
|
|
gsettings set org.xrdesktop default-mode scene
|
|
|
|
|
|
## Running xrdesktop on Monado
|
|
|
|
|
|
First start the monado service,
|
|
|
```
|
|
|
/usr/bin/monado-service
|
|
|
```
|
|
|
or if you compiled monado from source without installing:
|
|
|
```
|
|
|
/path/to/monado/build/src/xrt/targets/service/monado-service
|
|
|
```
|
|
|
|
|
|
If Monado was set as active runtime (by default monado does so on installation by creating `/etc/xdg/openxr/1/active_runtime.json`), xrdesktop is now ready to run.
|
|
|
|
|
|
|
|
|
If Monado is not set as active runtime, the environment variable `XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json` has to be set for the window manager
|
|
|
```
|
|
|
XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json kwin_x11 --replace
|
|
|
```
|
|
|
or
|
|
|
```
|
|
|
XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json gnome-shell --replace
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
---
|
|
|
|
|
|
# Status
|
|
|
|
|
|
xrdesktop 0.14 supports the scene mode on OpenXR, but not the overlay mode.
|
... | ... | @@ -19,16 +46,31 @@ With xrdesktop 0.14, adding additional default bindings requires adding a json f |
|
|
|
|
|
At this time the only viable OpenXR runtime for Linux is Collabora's "Monado" runtime.
|
|
|
|
|
|
The best way to try out xrdesktop on Monado is by using a Valve Index and the `experimental/libsurvive-controllers-wip` branch from Monado (Future plans include mainlining this branch to master, and creating a native lighthouse driver for Monado).
|
|
|
## OpenXR Loader
|
|
|
|
|
|
For xrdesktop to run with OpenXR, the OpenXR loader always has to be installed.
|
|
|
|
|
|
* Archlinux: https://aur.archlinux.org/packages/openxr-loader-git/
|
|
|
* Debian: [apt install libopenxr-loader1](https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=libopenxr-loader1)
|
|
|
* Ubuntu: [Monado PPA](https://launchpad.net/~monado-xr/+archive/ubuntu/monado)
|
|
|
|
|
|
|
|
|
If the openxr loader is not available for your distribution yet, you need to build it from source, for example
|
|
|
```
|
|
|
git clone https://github.com/KhronosGroup/OpenXR-SDK.git
|
|
|
cd OpenXR-SDK
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr -G Ninja -Bbuild
|
|
|
ninja -C build install
|
|
|
```
|
|
|
|
|
|
## Monado with Valve Index support via libsurvive
|
|
|
If you want special monado build options, for example libsurvive support you will have to compile monado from source.
|
|
|
|
|
|
Make sure your `gxr` build has been compiled with support. Use `xrd-settings` to ensure sure that `openxr` is the default API , or run `gsettings set org.xrdesktop default-api openxr`. Alternatively the environment variable `GXR_API=openxr` forces `gxr` to use openxr instead of xrdesktops default API setting.
|
|
|
## Compiling monado from source
|
|
|
|
|
|
Make sure to read the [notes about the libsurvive branch in the readme](https://gitlab.freedesktop.org/monado/monado/-/tree/experimental/libsurvive-controllers-wip/#about-the-libsurvive-branch) about the basics of using libsurvive.
|
|
|
Make sure your `gxr` build has been compiled with openxr support. Use `xrd-settings` to ensure sure that `openxr` is the default API , or run `gsettings set org.xrdesktop default-api openxr`. Alternatively the environment variable `GXR_API=openxr` forces `gxr` to use openxr instead of xrdesktops default API setting.
|
|
|
|
|
|
```
|
|
|
git clone --recursive https://gitlab.freedesktop.org/monado/monado.git -b experimental/libsurvive-controllers-wip
|
|
|
git clone https://gitlab.freedesktop.org/monado/monado.git
|
|
|
cd monado
|
|
|
mkdir build
|
|
|
cd build
|
... | ... | @@ -36,16 +78,6 @@ cmake .. |
|
|
make -j$(nproc)
|
|
|
```
|
|
|
|
|
|
xrdesktop can now be used on OpenXR with the environment variable `XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json`, for example
|
|
|
|
|
|
XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json /path/to/xrdesktop/build/examples/client
|
|
|
|
|
|
or
|
|
|
|
|
|
XR_RUNTIME_JSON=/path/to/monado/build/openxr_monado-dev.json kwin_x11 --replace
|
|
|
|
|
|
Note that at this time Monado does not have an out-of-process compositor that runs independently of OpenXR applications. The compositor (and entire runtime) is only startet once xrdesktop is enabled, and quits once xrdesktop is disabled.
|
|
|
|
|
|
# OpenXR bindings json format
|
|
|
|
|
|
At this time the OpenXR specification requires actions and bindings to be created and communicated to runtimes programmatically. This means there is no established file format to store bindings in.
|
... | ... | |