Add XWayland support (#16)

* save dev state

* fix xwayland-satellite supervisor lifecycle, readiness and cleanup

* remove wayland scanner protocol generated files

* default xwayland enabled with path

* remove jargons

* address x11 review: park unconfirmed cleanup, never signal a reaped group, fix storm test and notify dir mode

* fix resize tests: never build Size values from negative dimensions

* add min-width/min-height window rules that replace client minimum sizes

* rename effective_size_constraints to effective_minimum_size and minor cleanups
This commit is contained in:
Samuel Onoja authored and GitHub committed 2026-10-06 19:40:22 +01:00
1 parent ed23949a95
commit a6f83689f8
42 files changed
+7162 -1333

No files matched your search

+6
View File
@@ -15,6 +15,12 @@ commands {
mic-mute "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"
}
xwayland {
enabled #true
startup on-demand
path "xwayland-satellite"
}
// These supplement the built-in shortcuts listed in docs/shortcuts.md.
binding "Super+B" "spawn" "browser"
binding "Super+Z" "spawn" "editor"
+16 -4
View File
@@ -29,10 +29,22 @@ if [[ ${FERESE_SESSION_IMPORT_ENV:-0} == 1 ]]; then
# Shell control uses a private socket FD. Activation must use the public
# socket so portal and other desktop services connect as ordinary clients.
public_display=${FERESE_PUBLIC_WAYLAND_DISPLAY:-${WAYLAND_DISPLAY:-}}
env WAYLAND_DISPLAY="$public_display" dbus-update-activation-environment --systemd \
WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE || \
env WAYLAND_DISPLAY="$public_display" dbus-update-activation-environment \
WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE || true
# Empty assignments replace stale values; D-Bus cannot remove activation variables.
activation_vars=(
"WAYLAND_DISPLAY=$public_display"
"DISPLAY=${DISPLAY:-}"
"XAUTHORITY=${XAUTHORITY:-}"
XDG_CURRENT_DESKTOP
XDG_SESSION_DESKTOP
XDG_SESSION_TYPE
)
if command -v dbus-update-activation-environment >/dev/null; then
if ! env WAYLAND_DISPLAY="$public_display" \
dbus-update-activation-environment --systemd "${activation_vars[@]}"; then
env WAYLAND_DISPLAY="$public_display" \
dbus-update-activation-environment "${activation_vars[@]}" || true
fi
fi
# User buses can outlive logout and may predate a newly installed service directory.
if command -v dbus-send >/dev/null; then
dbus-send --session --type=method_call --print-reply \