Allow to specify a list of system extensions also for the GDM mode
GNOME Shell currently allows to create custom modes. When defining a custom modes a list of extensions could be specified. Those extensions are considered part of the system and are not disabled when /org/gnome/shell/disable-user-extensions
is TRUE
. Thus, even in case of GNOME Shell crashes those extensions are kept enabled. This mechanism doesn't fit for the gdm
mode case.
For example, Ubuntu defines /usr/share/wayland-sessions/ubuntu.desktop
:
[Desktop Entry]
Name=Ubuntu
Comment=This session logs you into Ubuntu
Exec=env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu
TryExec=/usr/bin/gnome-shell
Type=Application
DesktopNames=ubuntu:GNOME
X-GDM-SessionRegisters=true
X-Ubuntu-Gettext-Domain=gnome-session-42
In the desktop file, it specifies ubuntu
as session mode. And then defines /usr/share/gnome-shell/modes/ubuntu.json
:
{
"parentMode": "user",
"stylesheetName": "Yaru/gnome-shell.css",
"themeResourceName": "theme/Yaru/gnome-shell-theme.gresource",
"iconsResourceName": "theme/Yaru/gnome-shell-icons.gresource",
"debugFlags": ["backtrace-crashes-all"],
"enabledExtensions": [
"ubuntu-dock@ubuntu.com",
"ubuntu-appindicators@ubuntu.com",
"ding@rastersoft.com"
]
}
Since !1967 (merged) we can now enable extensions in the gdm
mode but there isn't a mechanism to mark an extension as part of the system and not a user preference. Hence, when GNOME Shell crashes during the start phase all GDM extensions are disabled.
If there is interest, I can work on this. Do you have any opinions on how this could be implemented?