Add support for Budgie Desktop using GNOME Screensaver
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gnome-desktop3 (Ubuntu) |
Fix Released
|
Undecided
|
fossfreedom | ||
gnome-screensaver (Ubuntu) |
Fix Released
|
Undecided
|
fossfreedom |
Bug Description
Ubuntu Budgie and Budgie Desktop uses GNOME Screensaver for its lock-screen.
It also uses gnome-control-
GNOME Screensaver does not support gnome-control-
To resolve this requires patches in two packages - gnome-screensaver and gnome-desktop3.
1. GNOME Screensaver has been patched to support Budgie Desktop and gnome-control-
Note - I've taken the opportunity to reuse the existing "Unity" patchwork which is now defunct (I believe) since Unity uses an alternative locking mechanism. The lock-screen is styled as per the old "Unity" implementation before Unity 16.04 moved to the new lock screen.
2. The consequence of making the requisite changes to GNOME Screensaver has unfortunately impacted gnome-desktop3. gnome-desktop3 has a Ubuntu specific patch to revert a GNOME upstream decision to remove a key called draw-background. GNOME Screensaver calls a public function in gnome-desktop3 - the gsettings path causes a segmentation fault since draw-background does not exist in org.gnome.
All of this is explained in the dep3 headers of the two debdiff patches attached
Changed in gnome-desktop3 (Ubuntu): | |
assignee: | nobody → fossfreedom (fossfreedom) |
Changed in gnome-screensaver (Ubuntu): | |
assignee: | nobody → fossfreedom (fossfreedom) |
Changed in gnome-desktop3 (Ubuntu): | |
status: | New → In Progress |
Changed in gnome-screensaver (Ubuntu): | |
status: | New → In Progress |
tags: | added: patch |
Hello! Thanks for submitting the bug and patches!
I looked briefly at the provided debdiffs and from the packaging POV they look good. I'm not sure about the contents though. I am not a GNOME developer so I'd like to get some opinion of someone that knows the code and would be able to say if it's the right way to go or not. Did you discuss these changes with the desktop team or anyone from the GNOME uploaders?
Checking the patches I'm a bit worried about a few things. In the gnome-screensaver part, the patch introduces the static function in_desktop() in both gs-lock-plug.c and gs-window-x11.c. I know it's nice to have helper functions like these 'local' but I'm always reluctant whenever I see boilerplate code like this. Maybe it could be made global and somehow shared? I guess it's fine if there's a lot of boilerplate there already, would have to check the codebase.
The gnome-desktop3 part seems good but a little bit hacky. Wonder if this could be done in a more generic way. Maybe it's not possible though...
Anyway, let's get someone from the GNOME people to take a look before we decide about uploading it.