Skip to content

Compatibility fix for GNOME Shell 48-50: Replace deprecated Meta.is_wayland_compositor() #9

@iffycodes

Description

@iffycodes

Worked through this with an AI. The write up is here.

The extension fails to load on GNOME Shell 48-50 due to the removal of the deprecated Meta.is_wayland_compositor() method. This method was deprecated in GNOME 46 and removed in later versions.

Error message:
TypeError: (intermediate value).is_wayland_compositor is not a function

Affected files:

  • lib/uiCoordinator.js (3 occurrences at lines 133, 289, and another)
  • lib/components/modalDialog.js (1 occurrence at line 309)
    Fix applied:
    Replace deprecated Meta.is_wayland_compositor() with:
    const isWayland = GLib.getenv("XDG_SESSION_TYPE") === "wayland";
    Additional change:
    Update metadata.json to add GNOME 48, 49, and 50 to shell-version array.

Testing:

  • Verified working on GNOME Shell 50.1 (Ubuntu 26.04, Wayland session)
  • Extension state: ACTIVE
  • Transcription works correctly with whisper.cpp server

Suggested metadata.json update:
"shell-version": ["46", "47", "48", "49", "50"]
This is a simple replacement that maintains compatibility with both X11 and Wayland sessions. The GLib.getenv("XDG_SESSION_TYPE") approach is the recommended way to detect the session type in modern GNOME Shell versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions