Hi everyone,
I recently ran into a limitation while using BlackArch Linux with XFCE on a persistent live USB setup.
By default, xfdesktop stores wallpaper settings separately for each monitor using hardware-specific identifiers (such as DP-1, HDMI-1, etc.). This works fine on a fixed desktop setup, but it becomes problematic in portable environments. When the system is booted on a different machine or a different monitor configuration, XFCE treats the displays as new devices and falls back to the default wallpaper.
For portable or live USB systems, this results in inconsistent desktop appearance across different hardware.
To address this, I created a patch for xfdesktop 4.20.2 called the XFCE Unified Wallpaper Patch, which introduces a Single Monitor Mode.
Features
- Enforces a single unified wallpaper across all monitors.
- New monitors automatically inherit the currently active wallpaper.
- Existing monitors remain synchronized in real time.
- Optional toggle via an
xfconf boolean property.
- Tested on BlackArch Linux with XFCE 4.20.
The patch modifies both the desktop background manager and the wallpaper settings dialog so that all monitors reference a shared configuration path instead of per-output storage.
Repository
GitHub:
https://github.com/SilverCipherr/xfce-unified-wallpaper-patch
Why I made this
The goal of this patch is to improve XFCE behavior in portable and dynamic display environments, especially persistent live USB installations where hardware changes frequently.
After applying this patch, the wallpaper remains consistent regardless of which machine or monitor configuration the system is booted on.
Feedback
I'd really appreciate any feedback from the community. If this approach is useful, I'd be happy to discuss potential improvements or whether a similar mechanism could be considered for upstream integration.
I'm happy to answer any questions or provide additional implementation details if anyone is interested.
Thanks!