Short Summary
On KDE Plasma Wayland, a rejected global-shortcuts portal CreateSession call is never propagated, causing an unhandled promise rejection that hangs initialization so the window never opens.
Steps to Reproduce the Issue
- Build/run Kando on a KDE Plasma Wayland session (xdg-desktop-portal-kde present).
- Launch the packaged app (e.g. out/Kando-linux-x64/...).
- During startup the KDE Wayland backend calls globalShortcuts.isAvailable(), which triggers the global-shortcuts portal CreateSession.
- xdg-desktop-portal-kde rejects the call with DBusError: An app id is required.
- The window never appears; the following is logged:
(node:13350) UnhandledPromiseRejectionWarning: DBusError: An app id is required
at .../resources/app/.webpack/main/index.js:2:367127
...
(node:13350) UnhandledPromiseRejectionWarning: Unhandled promise rejection. ...
Kando Version
3.0.0-alpha.0 (built from source, main)
Installation Method
Directly from the main branch
Desktop Environment
KDE on Wayland
Environment Version
CachyOS · Linux 7.0.12-1-cachyos · KDE Plasma Wayland session
Additional Information
Proposed fix:
- makeRequest propagates the underlying D-Bus call's rejection (and removes its message listener) instead of waiting indefinitely.
- The portal callbacks in global-shortcuts.ts and remote-desktop.ts return their D-Bus call promises so rejections reach makeRequest.
With this change, a failed portal request rejects cleanly, connectImpl's catch runs, and the KDE backend falls back to its KWin-scripting method as intended — the app starts normally.
Verified with npm run tscheck, eslint, and prettier passing, and Kando launching on KDE Plasma Wayland.
PR #1413 is created
Short Summary
On KDE Plasma Wayland, a rejected global-shortcuts portal CreateSession call is never propagated, causing an unhandled promise rejection that hangs initialization so the window never opens.
Steps to Reproduce the Issue
Kando Version
3.0.0-alpha.0 (built from source, main)
Installation Method
Directly from the main branch
Desktop Environment
KDE on Wayland
Environment Version
CachyOS · Linux 7.0.12-1-cachyos · KDE Plasma Wayland session
Additional Information
Proposed fix:
With this change, a failed portal request rejects cleanly, connectImpl's catch runs, and the KDE backend falls back to its KWin-scripting method as intended — the app starts normally.
Verified with npm run tscheck, eslint, and prettier passing, and Kando launching on KDE Plasma Wayland.
PR #1413 is created