Closed
Conversation
- Add version 50 to shell-version in metadata.json - Guard Meta.is_wayland_compositor() call (removed in mutter 50, always true now) with existence check for backward compatibility - Guard window.shade()/unshade() calls (removed in mutter 50, was X11-only) with typeof check for backward compatibility - Bump extension version to 85 💘 Generated with Crush Assisted-by: Claude Opus 4.6 via Crush <crush@charm.land>
Author
|
Human Pilot's note: this works on both Fedora Silverblue 44 (beta) and Fedora Workstation 44 (beta)! |
Author
|
Resolves: #414 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This change adds support for GNOME Shell 50 while maintaining backward compatibility with GNOME Shell 45–49.
GNOME 50 (released March 2026) ships with mutter 50, which completely removes the X11 backend (mutter MR !4505). The GNOME Shell side was adapted in gnome-shell MR !3768. This required two code-level fixes in
window.jsto avoid runtime errors, detailed below.For the full list of GNOME Shell 50 extension changes, see the official porting guide.
Changes
metadata.json"50"toshell-versionwindow.js—Meta.is_wayland_compositor()removed in mutter 50Meta.is_wayland_compositor()was removed from mutter 50 in commitb434895with the rationale: "As we will always be running as one." Since the compositor is now always Wayland, calling this function on GNOME 50 throws an error. The fix guards the call with an existence check, falling back totruewhen the function doesn't exist:window.js—window.shade()/unshade()/is_shadedremoved from mutterWindow shading was an X11-only concept and the API was removed from mutter in MR !2884 by Robert Mader with the commit message: "It's been broken for an unknown time and was never supported on Wayland. Thus let's remove the leftovers." Note: this removal actually landed during the GNOME 45 cycle — Unite was already calling a function that didn't exist on 45–49, but it happened to be guarded by
is_shadedbeing falsy. Ourtypeofcheck makes this explicit and safe:What didn't need to change
The rest of the extension is already GNOME 50 compatible:
Shell.TrayManagerstill exists (no-ops gracefully when XWayland is unavailable)xpropalready falls back toClientDecorations(no-op) for native Wayland windows since they have no X11 window IDMain.panel.statusArea.activitiesstill exists (now shows workspace dots instead of text, but theActivitiesTextfeature uses genericget_first_child()/add_child()so it still works)_bannerBin,_leftBox/_rightBox/_centerBox,menuManager,St.SpinnerContent, etc.) are unchanged in GNOME 50Testing
Verified on two systems running Fedora 44 Beta with GNOME Shell 50:
All features tested and working on both architectures.
AI Disclaimer