No description
Find a file
Shawn Wallace beb7c3ebe0 Offset output positions to always have positive coordinates
Honestly, this is something that should probably be fixed in Xwayland itself,
but they don't seem interested in fixing it:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/395#note_555613

Fixes #15
2025-03-16 16:00:10 -04:00
.github Add CI 2025-03-13 20:00:13 -04:00
macros Force clippy for the whole workspace 2025-03-13 20:00:13 -04:00
resources Document systemd support and add example service file 2024-07-07 15:55:24 -04:00
src Offset output positions to always have positive coordinates 2025-03-16 16:00:10 -04:00
tests Offset output positions to always have positive coordinates 2025-03-16 16:00:10 -04:00
testwl Add error message if Xwayland dies out of tests & Refactors 2025-03-15 20:09:40 -04:00
wl_drm Set input focus on windows without WM_HINTS input flag 2024-05-20 01:26:06 -04:00
.gitignore Initial commit 2024-04-29 00:30:06 -04:00
Cargo.lock Bump version 2025-02-10 23:08:39 -05:00
Cargo.toml Force clippy for the whole workspace 2025-03-13 20:00:13 -04:00
flake.lock cargo and nix update 2025-02-10 23:08:39 -05:00
flake.nix Refactor flake for overridability, conditional service install, version formatting (#65) 2024-10-27 17:59:15 -04:00
LICENSE Initial commit 2024-04-29 00:30:06 -04:00
README.md Document systemd support and add example service file 2024-07-07 15:55:24 -04:00

xwayland-satellite

xwayland-satellite grants rootless Xwayland integration to any Wayland compositor implementing xdg_wm_base. This is particularly useful for compositors that (understandably) do not want to go through implementing support for rootless Xwayland themselves.

Dependencies

  • Xwayland >=23.1
  • xcb
  • xcb-util-cursor
  • clang (building only)

Usage

Run xwayland-satellite. You can specify an X display to use (i.e. :12). Be sure to set the same DISPLAY environment variable for any X11 clients. Because xwayland-satellite is a Wayland client (in addition to being a Wayland compositor), it will need to launch after your compositor launches, but obviously before any X11 applications.

Building

cargo build
cargo run

Systemd support

xwayland-satellite can be built with systemd support - simply add -F systemd to your build command - i.e. cargo build --release -F systemd.
With systemd support, satellite will send a state change notification when Xwayland has been initialized, allowing for having services dependent on satellite's startup.
An example service file is located in resources/xwayland-satellite.service - be sure to replace the ExecStart line with the proper location before using it. It can be placed in a systemd user unit directory (i.e. $XDG_CONFIG_HOME/systemd/user or /etc/systemd/user), and be launched and enabled with systemctl --user enable --now xwayland-satellite. It will be started when the graphical-session.target is reached, which is likely after your compositor is started if it supports systemd.