The following libraries must be installed before compiling Jay:
- libinput.so
- libgbm.so
- libxkbcommon.so
- libudev.so
- libpangocairo-1.0.so
You must also have a C compiler (GCC or Clang) and the latest version of rust installed. You can install rust with rustup.
It is recommended that you install shaderc. Otherwise it will be built from source which can take several minutes.
Most of these dependencies are optional and will enable additional features.
- Linux 6.7: Required for explicit sync.
- Xwayland: Required for running X applications.
- Pipewire: Required for screen sharing.
- logind (part of systemd): Required when running Jay from a virtual terminal.
- libEGL.so and libGLESv2.so: Required for the OpenGL renderer.
- libvulkan.so: Required for the Vulkan renderer.
Note that Jay will not work if neither the OpenGL nor the Vulkan renderer are available.
To compile the latest stable version of Jay, run
cargo install --locked jay-compositor
This will install Jay under $HOME/.cargo/bin/jay
.
If you want to use the latest version from git, run
cargo install --locked --git https://github.com/mahkoh/jay.git jay-compositor
If you only want to build Jay without installing it, run the following command from within this repository:
cargo build --release
The binary is then available under ./target/release/jay
.
See config.md.
This step is only required to enable screen sharing.
- Copy
../etc/jay.portal
to/usr/share/xdg-desktop-portal/portals/jay.portal
. - Copy
../etc/jay-portals.conf
to/usr/share/xdg-desktop-portal/jay-portals.conf
.
Then restart xdg-deskop-portal
.
- Switch to a virtual terminal by pressing
ctrl-alt-F2
(or F3, F4, ...). - Run
jay run
.
If you have not yet changed the default configuration, you can
- quit Jay by pressing
alt-q
, - start Alacritty by pressing the left Windows key.