Port to GNOME Shell
I've made the decision to drop GDE and replace it with GNOME shell. Here's some of my reasoning:
- For technical reasons, GDE is stuck in GTK3, meaning that its performance is rather slow
- GDE has a need for various jank to function:
- wayfire dbus plugin
- gde-gnome-bridge, which needs to be kept up-to-date w/ GNOME's fast-paced cycle
- adw-gtk3 theme, which hurts accessbility
- GDE has lots of missing features, which drive down carbonOS's quality:
- Fingerprint login
- Configurable keyboard shortcuts
- Combined expo+scale -> overview
- hardware-accelerated shell components
- many of the dialogs: networking, (proper) portals, etc
- no good screenshot functionality
- no screensaver/lock support
- GDE has lots of bugs, which drive down carbonOS's quality:
- Broken NVIDIA support
- Lock screen takes tens of seconds to come up sometimes
- notification popups being cut off under panel until mouse hover
- bluetooth toggle occasionally disappears
- GDE is missing GNOME's enterprise backing:
- Worse hardware/driver compatibility (less hardware to test on)
- No active development on features like HDR, etc
- Wayfire, our display server, is a small project. Thus it has a slow development cycle, and this has started stalling GDE development
- GDE is stuck using lightdm, which means that without significant rewrites of third-party code it will always be missing nice-to-haves like flickerfree boot, easy switching b/t fingerprint/password/pin/smartcard, etc
- I'm unable to keep up development on both GDE (keeping up with GNOME, implementing missing features, etc) and cabronOS itself
Things to do:
- Package GNOME shell, mutter, etc
-
gnome-shell -
mutter -
gdm -
gnome-initial-setup -
gnome-tour -
orca -
gnome-remote-desktop -
xdg-desktop-portal-gnome -
gnome-menus? (is this a gnome-classic thing only?)
-
- Customize GNOME shell for carbonOS's use
-
Folders (put gnome-terminal into utilities, at least) -
Enable fractional scaling -
List of default apps -
Some of our default settings tweaks (enable battery percentage by default, nautilus view tweaks, etc) -
Shut up the "last login" message in GDM -
List of pre-pinned apps
-
-
Contribute caffine quicksettings toggle -
Contribute improvements to fractional scaling in mutter from gde-gnome-bridge -
Drop GDE -
Fixup interactions b/t gnome-initial-setup, liveos session, and cabon-setup -
Drop tweaks to gnome-control-center -
Archive GDE repos on GitLab -
Update NEWS file -
Figure out why extensions aren't working - Because we don't have
unzip
packaged:extension-manag[80579]: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code36: GDBus.Error:org.gnome.Shell.ExtensionError: Failed to execute child process “unzip” (No such file or directory)
- Because we don't have
-
Replace gnome-extensions with extension-manager
Edited by Adrian Vovk