[Bug]: SnapShots can't be set up on GNOME 45–47: no GlobalShortcuts portal
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/desktop
Steps to reproduce
- Ubuntu 24.04 based distro (Zorin OS 18), GNOME Shell 46.0, Wayland session.
- Open Settings → SnapShots and turn SnapShots on. The "Set up snapshots for GNOME" dialog opens.
- Step 1 (Access): install the extension, sign out and back in.
gnome-extensions info snap-shot@t3.codesreportsEnabled: Yes,State: ACTIVE, and the step gets its checkmark. - Step 2 (Shortcut): pick any key combination.
Expected behavior
The shortcut gets registered and SnapShots can be used. GNOME 46 is listed in the extension's shell-version, so I expected the whole feature to work there.
Actual behavior
Step 2 shows:
No such interface "org.freedesktop.portal.GlobalShortcuts"
The setup can't be finished, and closing the dialog switches SnapShots back off. Since the shortcut is the only way to trigger a capture, the feature can't be used at all.
The cause is that GNOME 46 has no GlobalShortcuts backend. xdg-desktop-portal 1.18.4 knows the interface, but xdg-desktop-portal-gnome 46.2 doesn't implement org.freedesktop.impl.portal.GlobalShortcuts, so the frontend never exports it:
$ grep Interfaces /usr/share/xdg-desktop-portal/portals/gnome.portal
Interfaces=org.freedesktop.impl.portal.Access;…Account;…AppChooser;…Background;…Clipboard;…DynamicLauncher;…FileChooser;…InputCapture;…Lockdown;…Print;…RemoteDesktop;…ScreenCast;…Screenshot;…Settings;…Wallpaper;
$ busctl --user introspect org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop | grep -c GlobalShortcuts
0
GNOME only got that backend in a later release, so this affects every GNOME 45–47 install, including all of Ubuntu 24.04 LTS and its derivatives. Those versions are all in the extension's shell-version list.
Impact
SnapShots is unusable on GNOME 45–47. The capture side works fine there (the extension loads and owns its bus name), it's only the trigger that's missing.
Version or commit
0.0.42 (AppImage)
Environment
Zorin OS 18 (Ubuntu 24.04 base), GNOME Shell 46.0, Wayland, xdg-desktop-portal 1.18.4, xdg-desktop-portal-gnome 46.2, xdg-desktop-portal-gtk 1.15.1.
Workaround
None inside the app. Calling the extension from a GNOME custom shortcut isn't possible either, because captureService.js only accepts the T3 Code bus name — which is the right call.
A possible fix: the extension already runs inside GNOME Shell, so it could own the key itself with Main.wm.addKeybinding() and tell the app over the existing D-Bus connection when it's pressed. That would work on every supported shell version without going through the portal, and the portal path could stay as it is for GNOME versions that have it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the SnapShots setup flow in apps/desktop and the GNOME extension's captureService.js, focusing on how the shortcut is registered and how capture requests reach the app. Verify behavior on GNOME 45–47; done means setup completes and the shortcut triggers capture there while retaining the portal path for versions that provide GlobalShortcuts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100