-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Add board-level extension to mask Wayland desktop sessions #9268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughA new Bash extension script is added that masks Wayland desktop session definitions by creating empty marker files in /usr/local/share/wayland-sessions to shadow existing desktop sessions in /usr/share/wayland-sessions. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Note Docstrings generation - SUCCESS |
Docstrings generation was requested by @schwar3kat. * #9268 (comment) The following files were modified: * `extensions/wayland-sessions-mask.sh`
|
✅ This PR has been reviewed and approved — all set for merge! |
Description
Some boards supported by Armbian have limited or unstable GPU/Wayland driver support, resulting in unreliable Wayland desktop sessions. Disabling Wayland through desktop- or display-manager–specific mechanisms introduces fragmentation, increases maintenance burden, and is difficult to keep consistent across desktops and upgrades.
This PR introduces a new opt-in board-level extension that masks Wayland desktop sessions in a desktop-agnostic and upgrade-safe manner. Wayland sessions are masked by placing empty marker files with matching names in
/usr/local/share/wayland-sessions/, which takes precedence over/usr/share/wayland-sessions/.Session masking was intentionally chosen over native desktop or display-manager disable methods to provide a single, consistent mechanism across all desktop environments, avoid desktop-specific configuration logic, and allow easy reversal without rebuilds or package changes.
Default behavior is unchanged unless the extension is explicitly enabled.
Implementation
A new extension is added:
The extension runs during
post_post_debootstrap_tweaksand masks all existing Wayland session definitions using filesystem precedence, without removing or modifying packaged files.Usage
Enable in board configuration:
enable_extension "wayland-sessions-mask"Impact
How Has This Been Tested?
Tested on Radxa E54C using vendor images for both Ubuntu Noble and Debian Trixie:
Ubuntu Noble
GNOME desktop (Wayland sessions present)
Result: Wayland sessions masked; desktop operates using X11.
Cinnamon desktop (Experimental Wayland session present)
Result: Wayland session masked; desktop operates using X11.
XFCE desktop (no Wayland sessions)
Result: No change; extension exits without effect.
Minimal image (no desktop)
Result: No change; extension exits without effect.
Debian Trixie
GNOME desktop (Wayland sessions present)
Result: Wayland sessions masked; desktop operates using X11.
Cinnamon desktop (Experimental Wayland session present)
Result: Wayland session masked; desktop operates using X11.
XFCE desktop (Wayland session present)
Result: Wayland session xfce-wayland.desktop masked; desktop operates using X11.
Minimal image (no desktop)
Result: No change; extension exits without effect.
These tests confirm that the extension:
Checklist:
Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.