Skip to content

[Bug] v1.6.7 global hotkey does not register on GNOME Wayland — GlobalShortcuts portal not supported #547

@rearwindowvertigo

Description

@rearwindowvertigo

Description

After upgrading from v1.6.2 to v1.6.7 on Linux (Ubuntu 24.04, GNOME 46 Wayland), the global dictation hotkey (F8) does not function. Pressing F8 produces no response from the app — no recording starts, no logs are generated, and no audio is captured. The hotkey appears correctly configured in the OpenWhispr settings UI, and re-assigning it (to F9 and back to F8) does not resolve the issue.

v1.6.2 registers its hotkey via GNOME custom keyboard shortcuts (gsettings) and works correctly. v1.6.7 appears to have switched to the org.freedesktop.portal.GlobalShortcuts XDG portal, which GNOME does not implement.

Root Cause

GNOME's portal backend (xdg-desktop-portal-gnome) does not implement the GlobalShortcuts portal interface. This is a known gap — KDE and Hyprland support it, but GNOME does not, and there is no indication it will be added soon.

Confirmation that the portal is unavailable:

$ busctl --user call org.freedesktop.portal.Desktop \
    /org/freedesktop/portal/desktop \
    org.freedesktop.portal.GlobalShortcuts ListShortcuts s "open-whispr"
Call failed: No such interface "org.freedesktop.portal.GlobalShortcuts" on object at path /org/freedesktop/portal/desktop

v1.6.2 hotkey registration (working — via gsettings):

v1.6.2 registers the hotkey as a GNOME custom keyboard shortcut, visible in Settings → Keyboard → Shortcuts. This method works reliably on GNOME Wayland.

v1.6.7 hotkey registration (broken — no gsettings entry created):

$ gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
# Only pre-existing custom shortcuts appear — no OpenWhispr entry

No D-Bus shortcut service is registered either:

$ busctl --user list | grep -i shortcut
# (empty)

Steps to Reproduce

  1. Install OpenWhispr v1.6.7 on Ubuntu 24.04 (GNOME 46, Wayland)
  2. Configure F8 as the dictation hotkey in Settings
  3. Open any text editor
  4. Press F8
  5. Observe: nothing happens — no recording starts, no logs are generated

Expected Behavior

The global hotkey should register and trigger dictation on GNOME Wayland, as it does in v1.6.2 using the gsettings custom keyboard shortcut method.

Suggested Fix

Maintain the gsettings-based hotkey registration as a fallback when org.freedesktop.portal.GlobalShortcuts is unavailable. v1.6.2's approach of registering via gsettings and D-Bus/dbus-next works correctly on GNOME Wayland and should be preserved for environments that lack the GlobalShortcuts portal.

Detection could be as simple as:

  1. Attempt to create a GlobalShortcuts portal session
  2. If the portal is unavailable or the session fails, fall back to gsettings custom keybinding registration (the v1.6.2 method)

Workaround

Roll back to v1.6.2.

Environment

  • OS: Ubuntu 24.04.2 LTS
  • Desktop: GNOME 46, Wayland
  • Hardware: Lenovo ThinkPad P14s Gen 6 (AMD)
  • xdg-desktop-portal-gnome: Does not implement GlobalShortcuts
  • OpenWhispr v1.6.7: Hotkey broken (no registration method available)
  • OpenWhispr v1.6.2: Hotkey works (gsettings custom keybinding)

Related

  • v1.6.6 paste regression (separate issue — linux-fast-paste --portal timeout, detectedWindowClass: null, ~10.5s paste delay, clipboard write failure on GNOME Wayland)
  • Both issues suggest that v1.6.6/v1.6.7 introduced portal-dependent code paths without adequate fallback for GNOME Wayland

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions