Fedora 38 was branched from rawhide almost a month ago. If you’re on Silverblue, you might also want to be adventurous and dive into the new features the upcoming GNOME will offer. With the exception of one “little” bug (details later), I’ve found it to be overall great so far.
To rebase, you’d run this command:
rpm-ostree rebase fedora:fedora/38/x86_64/silverblue
So the one rather big problem that’s been affecting me is a bug in Mutter (GNOME’s window manager) that causes focus selection issues. It’s been filed upstream… several times:
- Clicking in titlebar does not focus globally active input windows (#2660) · Issues · GNOME / mutter · GitLab
- XWayland apps steal focus (#2654) · Issues · GNOME / mutter · GitLab
- Issues with Activities overview and qt5 applications on 43.3 (#2648) · Issues · GNOME / mutter · GitLab
- Globally active window input focus broken (#2635) · Issues · GNOME / mutter · GitLab
- The window focus is lost after switching the input method (#2626) · Issues · GNOME / mutter · GitLab
- Strange XWayland window focus behaviour following MR 2776 (#2609) · Issues · GNOME / mutter · GitLab
The problem seems to stem from this commit: x11: Do not move X11 input focus during grabs (a68b8e95) · Commits · GNOME / mutter · GitLab.
Since it’s been filed so often (see above… there are some closed duplicates not listed too), I imagine it’ll be fixed rather soon. Hopefully we’ll see a fix committed, with a release and package build in F38 ASAP.
Meanwhile, with Silverblue, you can “fearlessly” get the latest and greatest from what will be Fedora 38 and also downgrade Mutter (and all the packages that inter-depend on it) with rpm-ostree override
.
To override the problematic version of Mutter, you’d run this:
rpm-ostree override replace https://bodhi.fedoraproject.org/updates/FEDORA-2023-979e568987 https://bodhi.fedoraproject.org/updates/FEDORA-2022-ee541c3b1a https://bodhi.fedoraproject.org/updates/FEDORA-2022-b94f0c3b68 https://bodhi.fedoraproject.org/updates/FEDORA-2022-8581db9759
(The first bodhi URL is Mutter; the rest are ones I found that you also need to override to successfully make the Mutter override work. You can also override with RPMs too… but I find it’s easier to give bodhi URLs and let rpm-ostree figure out what to do.)
This will cause your overrides to look like the following in rpm-ostree:
LocalOverrides: gnome-shell 44~beta-2.fc38 -> 43.1-4.fc38 gnome-shell-extension-background-logo 44~beta-1.fc38 -> 43.0-1.fc38
gnome-shell-extension-launch-new-instance gnome-shell-extension-places-menu gnome-shell-extension-apps-menu gnome-shell-extension-common gnome-classic-session gnome-shell-extension-window-list 44~beta-1.fc38 -> 43.1-2.fc38
mutter 44~beta-2.fc38 -> 43.2-2.fc38
The one downside of this, is that it does downgrade GNOME Shell as well, so you won’t have some of the newer features (notably the details part of the quick switches). But not having that is better than having the focus bug… trust me on this.
When a new version of Mutter that fixes this bug lands in Silverblue’s Fedora 38 branch, then we’ll be able to remove the overrides with a reset:
rpm-ostree override reset -a
The best way to go back to stable Fedora is to roll back to your previous deployment, if you haven’t made an additional deployment (including upgrade) since. You can do this by running:
sudo rpm-ostree rollback
If you have made a deployment since, you can use deploy to switch to a specific deployment with rpm-ostree deploy
followed by a hash (long string) that you see in the output of rpm-ostree status
.
Alternatively, you could rebase back to Fedora 37, by running:
rpm-ostree rebase fedora:fedora/37/x86_64/silverblue
Anyway, thanks to Silverblue, we can try out pre-releases and then rebase to stable if there’s some issue. (Which is exactly what I did before taking a couple minutes to figure out the overrides.)
Hopefully this helps someone else too!
Additionally: The bodhi override method (and resetting) is how you’d test out new packages individually that are in testing but not yet in stable, unless you rebase to testing, such as with rpm-ostree rebase fedora:fedora/37/x86_64/testing/silverblue
(to try all testing packages out together at once).