# GNOME 40 Stack Upgrade Notes
WARNING: Please read this task in its entirety before commenting or upgrading. Seriously.
As is tradition, I'm opening up a task for everyone to report their issues with the GNOME 40 stack upgrade. It's absolutely important we maintain focus on reporting issues which are specifically related to this stack upgrade so we can best work to helping validate and resolve these issues. I welcome you to post a comment if an application is suddenly not working and you strongly believe it is the result of the new stack upgrade, such as it suddenly missing libraries or ones which may warrant a rebuild. If necessary, we may request you file a separate issue so we may obtain further detailed information, which we (#core_team_org, #triage_team) can reference in this task.
NOTE: This task content can only be modified by members of the Core Team or Global Maintainers. We will update the task as comments / feedback are received.
The objective of this task is to facilitate **technical** discussions around changes which have occurred in the GNOME Stack, such as:
- Updates made to Budgie Desktop to facilitate the new stack upgrade, primarily Mutter 8 and GNOME Settings Daemon 40 changes.
- Changes to GNOME Shell 40
- GNOME Applications
This testing is being performed on the unstable repository and may also involve or require real-time communication via our development IRC channel. If you are not in IRC, use any supported IRC client that we provide in the repo (e.g. Hexchat, weechat, irssi, Konversation) and look at [our Getting Involved Page](https://getsol.us/articles/contributing/getting-involved/en/#irc) for connection details.
If you are not on the unstable repository and wish to help test, assuming you understand that the intent of unstable is to be the place where we break stuff and operate under the assumption you check IRC to know **when not to update**, you can run the below mentioned command to switch to the unstable repository:
sudo eopkg ar Solus https://mirrors.rit.edu/solus/packages/unstable/eopkg-index.xml.xz
## Upgrading Properly
**Do not run any commands until you fully read this section. Thank you.**
I cannot stress enough the importance of ensuring you upgrade properly and fully. If you are not on unstable already, you should **fully upgrade** your system by opting in to every package update available via the Software Center or running `sudo eopkg up` then reboot **before** switching over to unstable.
If you are on the unstable repository, likewise perform a **full upgrade** via either the Software Center or the Terminal, then reboot. If you use Budgie and GNOME and encounter the grey "Something happened" fullscreen window after a reboot and attempt to login, switch to a TTY (typically Ctrl+Alt+F2-9, pick one), login and run `sudo usysconf run -f` then reboot (`sudo reboot`).
If you are using GNOME Shell, you **need** to run the following command after the upgrade if you use GNOME Shell to properly reset your extensions back to the stock configuration:
gsettings reset org.gnome.shell 'enabled-extensions'
Seriously, be sure to **disable any extensions** which we do not provide / have enabled out-of-the-box. Otherwise you may have a completely broken GNOME Shell experience, or worse it'll crash and you'll have to go through loads of hoops such as hand modifying dconf key values and nuking some extension contents, etc. It is not my responsibility nor the responsibility of GNOME to ensure those extensions are maintained and updated against newer GNOME Shell APIs. If they break, you'll need to talk to the extension developer. Additionally ensure you are not updating the extensions we support and directly provide, such as Tray Icons Reloaded, through any software such as Extensions app and website It may result in a broken installation. If you "upgraded" extensions through that manner, it's suggested you uninstall them and reinstall the package equivalent if possible.
WARNING: Like I said earlier, reboot your system after upgrading. For realsies.
This GNOME Stack upgrade features a pre-release of Budgie 10.5.3. Budgie 10.5.3 will be a minor release focused on bug fixes and GNOME 40 support, I am not blocking the release with any of the features and architectural changes I originally was going to do for .3, those can get in for .4.
- Don't filter device added / removed notifications.
- Enable ability to click on panel icon to toggle lock keys.
- Filter out Audacious notifications so they don't clutter up Raven.
- Fix application icons not scaling in Notification Group headers.
- Fix issue with VirtualBox not displaying in IconTaskList
- GNOME Settings Daemon 40 fixes for font antialiasing and hinting
- Multiple X error handling and stability improvements for Carbon Tray.
- Mutter 8 support.
- Resolve issues with fullscreen tracking.
- Optimizations in MPRIS (eliminating of unnecessary idles) and Notification rendering / positioning
- Use IconSize.DIALOG instead of IconSize.INVALID for various parts of Notifications and only scale if height isn't already 48px
## GNOME Shell
GNOME Shell 40 predictably has a fundamentally changed user experience. I am shipping a slightly less modified GNOME Shell with this stack upgrade and some default theme changes for it.
1. Dash to Dock is **temporarily** deprecated from the Solus repositories and is longer enabled by default via our desktop branding. I will reintroduce Dash-to-Dock support when the current merge request for GNOME 40 support, which introduces some instability and is "very much WIP" (exact quote), is merged in and a release is tagged around it.
2. The remaining extensions enabled by default, like Tray-Icons-Reloaded, are still supported and enabled.
3. Plata Theme has been swapped out for Materia GTK Theme. Plata Theme has not seen developed since the GNOME 3.38 stack release, which has meant considerable breakages under 40, alongside GTK4. Materia GTK Theme provides a very similiar look and feel, so I am comfortable with this switch (even though I generally avoid changing icon themes and gtk themes out from under folks). If you changed your GTK or Shell theme to **not being Plata-Noir**, run the commands below:
gsettings reset org.gnome.desktop.interface 'gtk-theme'
## Known Issues or WIPs
### GNOME Shell
As with any desktop environment, there are wide range of issues with GNOME Shell. I would advise checking https://gitlab.gnome.org/GNOME/gnome-shell/issues before reporting them here. If there is a patch and we don't have it yet, I'll see about getting it added.
I currently have a couple patches in our Mutter to fix some issues I noticed with the WM becoming a stuttery mess, however git builds are otherwise pretty broken (really bad artifacting), so we are using a fairly barebones Mutter 40 release this time around. If you have issues with Mutter, please post them to https://gitlab.gnome.org/GNOME/mutter/issues/
## Deprecations / Held Back
There are several deprecations and packages held back (permanently) this cycle.
- Various docs packages that are very unlikely to be used and not worth the extra effort to keep enabled. No drama on this one.
- epiphany: We have multiple alternative and objectively better web browsers in our repos. Epiphany has been held back for some time due to libhandy and I am more comfortable with deprecating it at this point. You can always get it from Flatpak.
- gnome-clocks: Used libhandy but actual deprecation reason is it [does not support new gweather APIs](https://gitlab.gnome.org/GNOME/gnome-clocks/-/issues/170).
- goocanvas1 and pygoocanvas: No longer needed for anything, really old packages. No drama on this one.
- libzapojit: Nothing uses it anymore. Should have actually been deprecated during the GNOME 3.38 stack. No drama on this one.
- nemiver: Has not been developed for a number of years by GNOME and they have other debugging utilities like what you can get via sysprof and Builder. No drama on this one.
- Due to libhandy library requirement, which we're not allowing into the repo (it's a mobile-focused graphics library being shoehorned into GNOME apps), the following packages are held back to their last pre-libhandy release:
- Unchanged from previous stack upgrades: deja-dup, geary, gnome-calendar, gnome-screenshot, gnome-tweaks, seahorse
- New: baobab, gnome-disk-utility, gnome-maps
## Testing List
1. This list may not be comprehensive. Feel free to report other things!
2. Phabricator may indicate something is complete even if it isn't explicitly checked off. Ignore that and only look for the checkbox.
3. There are numerous sections within GNOME Control Center (Settings) that are only applicable to GNOME Shell. If something does not work under Budgie, it does not necessarily mean that functionality is actually broken, but rather it may be the unfortunate result of the functionality targeting a specific desktop environment.
- [x] Bluetooth
- Tested with Bluetooth pairing in GNOME Control Center with phone.
- [x] Desktops
- [x] Budgie Desktop
- [x] GDM (when co-installed with GNOME Shell)
- [x] LightDM + slick-greeter
- [x] GNOME Shell
- [x] GDM
- [ ] MATE
- [x] Geolocation
- Tested with GNOME Weather
- [x] IBUS
- [x] Networking
- [x] Shares (Samba via Nautilus)
- [x] Wireless
- [x] Wired
- [ ] Applications
- [x] Abiword
- [x] Aisleriot
- [x] Baobab (Disk Usage Analyzer)
- [ ] Bookworm (due to Granite update)
- [x] Claws Mail
- [x] Evince
- [x] Evolution
- [x] Four-in-a-Row
- [x] Gaupol
- [x] GEdit
- [x] GIMP
- [x] GNOME 2048
- [x] GNOME Calculator
- [x] GNOME Calendar
- [ ] GNOME Control Center
- [x] About
- [x] Applications
- [x] Background
- [x] Bluetooth
- [x] Date & Time
- [ ] Devices
- [ ] Color
- [x] Displays
- [x] Keyboard
- [x] Mouse & Touchpad
- [x] Printers
- [ ] Removable Media
- [x] Networking
- [x] Wi-Fi
- [x] Wired
- [ ] Notifications
- [x] Online Accounts (Tested with a Google Account)
- [x] Power
- [x] Privacy
- [x] Region & Language
- [ ] Search (only applies to GNOME Shell)
- [ ] Sharing - Needs additional love. See T9407
- [x] Sound
- [ ] Universal Access
- [ ] Cursor Size
- [ ] Hearing -> Visual Alerts
- [ ] High Contrast
- [ ] Large Text
- [ ] Pointing -> Click Assist
- [ ] Pointing -> Double-Click Delay
- [ ] Pointing -> Mouse Keys
- [ ] Screen Reader
- [ ] Screen Keyboard
- [ ] Sound Keys
- [ ] Typing -> Repeat Keys
- [ ] Typing -> Cursor Blinking
- [x] GNOME Disks
- [x] GNOME Help / Yelp
- [x] GNOME Nibbles
- [x] GNOME Photos
- [ ] GNOME Pomodoro
- [ ] GNOME Power Statistics (GNOME Power Manager)
- [ ] GNOME Logs
- [x] GNOME MPV
- [ ] GNOME Mahjongg
- [ ] GNOME Maps
- [x] GNOME Music
- [x] GNOME Screenshot
- [x] GNOME Sudoku
- [ ] GNOME Sound Recorder
- [x] GNOME Tweaks
- [ ] GNOME Videos (Totem)
- [x] Glade
- [ ] Gthumb
- [x] Lollypop
- [ ] Lyx
- [x] Nautilus
- [ ] Pitivi
- [x] Polari
- [x] Quodlibet
- [x] Rhythmbox
- [x] Seahorse
- [ ] Simple Scan
- [x] Shotwell
- [x] Solus Software Center
- [x] Transmission
- [ ] Vocal
- [x] budgie-extras applets if you happen to use them
- [ ] deja-dup (held back, 42.x requires libhandy)
- [x] gtkhash (optionally the nautilus and caja extensions)