
Feature changed by: Tanja Roth (ta-ro) Feature #324570, revision 23 Title: make GDM background image configurable Requested by: Ludwig Nussel (lnussel) Partner organization: openSUSE.org Description: GDM only has very limited theming posibilites. To change the actual wallpaper one has to modify a binary file a rather nasty and not upgradable way: https://wiki.archlinux.org/index.php/GDM#Log-in_screen_background_image Please implement some more convenient way to allow custom deployments to override the wallpaper in GDM. + Documentation Impact: + might have impact on GOME User Guide (GDM screenshot) Use Case: Customers and partners might want to customize SLES, SLED, and SLE POS. Discussion: #1: QK ZHU (qkzhu) (2018-09-10 03:28:09) Upstream status: - This feature was rejected by upstream https://bugzilla.gnome.org/show_bug.cgi?id=787454 - A new design for login & lock screen has been proposed during 2017 GNOME Shell UX Design Hackfest, it seems a blurred background is in their paln but I am not sure when this will be implemented: https://wiki.gnome.org/Design/OS/LockUnlockLogin#Tentative_Design My questions: There are two aspects for GDM background, login screen and lock screen - Should both of them be configurable? Login screen background is a system-wide behavior while lock screen background is a user-wide behavior, should lock screen align with login screen? Tentative solutions: 1. Let GDM uses a custom CSS file and use update- alternatives to switch between different themes. Ubuntu uses this way to redefine their login theme: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1715722 But their patch doesn't change the lock screen background: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1732450 2. According to GResource doc: 'it is possible to use the G_RESOURCE_OVERLAYS environment variable to selectively overlay resources with replacements from the filesystem.' but is's only for debugging or quick hacking and testing purposes. I will make some investigation to check if it's a practical solution Potential regressions: - multi-monitor behaviors - SUSE logo on the lock screen was added as a background, it may be affected by this feature #2: Ludwig Nussel (lnussel) (2018-09-10 14:56:33Z) (reply to #1) For a start the gdm background alone would be good already even without lock screen :) #7: Frederic Crozat (fcrozat) (2018-10-03 14:36:22Z) (reply to #2) I agree with ludwig, gdm (ie login) background is the most important. Lock will probably be good enough once the new upstream design is merged. #3: QK ZHU (qkzhu) (2018-09-12 10:02:44) Modify /usr/share/applications/org.gnome.Shell.desktop to Exec=G_RESOURCE_OVERLAYS=/org/gnome/shell/theme/noise-texture. png=/path/filename.jpg /usr/bin/gnome-shell Login & Lock screen background will be both changed. The background image will be repeated if its size doesn't fit with the resolution, i.e. It's not convenient to adjust the image property by this way. #4: QK ZHU (qkzhu) (2018-09-14 09:14:14Z) I submitted a experimental patch to G:S:3.26 for tentative solution1: - https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:STABLE:3.... /gnome-shell?opackage=gnome-shell&oproject=GNOME%3ASTABLE%3A3.26&rev=6 1. GDM session uses an exported CSS (/usr/share/gnome-shell/theme/gdm. css) to define its theme 2. We can use update-alternatives to switch between different themes 3. Currently gdm.css points to gdm-upstream.css which is generated by the upstream SCSS file 4. Only login screen theme could be changed If you want to provide a different theme, let's say gdm-openSUSE.css, you should: 1. Generate this css file based on the upstream version, modify #lockDialogGroup section to change the background #lockDialogGroup{ background: #2e3436 url(file: ///usr/share/wallpapers/SLEdefault/contents/images/1920x1080.jpg); background-repeat: no-repeat; } 2. Provide this css file in a branding package and switch to it via update-alternatives #5: QK ZHU (qkzhu) (2018-09-14 09:23:06Z) Xiaoguang just provided a new solution/patch draft. This approach will change the background picture uri via gssettings. I will refine the patch and compare these two solutions. #6: QK ZHU (qkzhu) (2018-09-29 08:57:05) (reply to #5) Experimental patch of solution2: https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:STABLE:3.... /gnome-shell-gdm_background?opackage=gnome-shell&oproject=GNOME% 3ASTABLE%3A3.26&rev=8 Login and lock screen can be both changed. You can change the schema value using gsettings or dconf-editor. How to change the lock screen: Login as a normal user then start dconf-editor to change: org.gnome.shell.lockdialog.background How to change the login screen: 1. Run as root: xhost +SI:localuser:gdm 2. Start dconf- editor as gdm: sudo -u gdm DISPLAY=:0 dconf-editor 3. Change the value then reboot your system Or you can modify the background in a branding package just like how GNOME Shell's wallpaper was changed. #8: QK ZHU (qkzhu) (2018-10-16 09:18:54) A comparison between the two solutions Solution 1: Change the background of lockDialogGroup by the exported stylesheet CSS file * Only login screen theme could be changed. * The adjustability of wallpaper is limited through CSS file, e.g. the background image might not be compatible with different resolutions. * Through the CSS file you can change not only the wallpaper but also the panel style, fond size.. of the login screen. Solution 2: Add a background Actor to lockDialogGroup * Both login and lock screen wallpaper could be changed via gsettings. * The adjustability of wallpaper is the same with GNOME Shell's background, the image can be rendered as “wallpaper”, “centered”, “scaled”, “stretched”, “zoom”, “spanned”. I would adopt Solution 2 since it is more neat than solution 1 from my perspective, Do you have any sugesstions @Frederic @Ludwig? #9: QK ZHU (qkzhu) (2018-10-16 09:23:44Z) (reply to #8) I would adopt Solution 2 since it is more neat than solution 1 from my perspective, Do you have any sugesstions @Frederic @Ludwig? #10: Frederic Crozat (fcrozat) (2018-10-16 09:45:26Z) (reply to #9) How maintainable are both solutions long term ? Since I don't expect the patch for the feature to be merged upstream #11: QK ZHU (qkzhu) (2018-10-16 10:11:35) (reply to #10) We have to maintain at least two versions of the CSS file, one is the same with upstream's Sass file another is our customized CSS file. In my opinion solution 2 is easier to maintain. #13: Ludwig Nussel (lnussel) (2018-10-22 08:14:05Z) (reply to #8) I'm not into the technical details so I can't really provide good feedback on this. As Frederic said, whatever works best for us to maintain or has better chances to get accepted upstream would be preferred. #12: QK ZHU (qkzhu) (2018-10-19 05:50:16) I submitted solution 2 to upstream: https://gitlab.gnome.org/GNOME/gnome-shell/issues/680 #14: QK ZHU (qkzhu) (2018-11-12 10:41:47) SR to openSUSE Factory: SR for GNOME Shell https://build.opensuse.org/request/show/648423 SR for gsettings-desktop-schemas https://build.opensuse.org/request/show/648421 #15: QK ZHU (qkzhu) (2018-11-15 08:40:20) - SR to G:S:3.26 https://build.opensuse.org/request/show/649189 https://build.opensuse.org/request/show/649188 - SR to 15:Update https://build.suse.de/request/show/177639 https://build.suse.de/request/show/177640 #16: Yifan Jiang (yfjiang) (2018-11-15 08:53:35Z) (reply to #15) Confirmed with Frederic off-line, this should go to SP1 instead of maintenance update. -- openSUSE Feature: https://features.opensuse.org/324570