https://bugs.kde.org/show_bug.cgi?id=487941

Henrique Sant'Anna <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #13 from Henrique Sant'Anna <[email protected]> ---
SUMMARY
When modifying the command (`Exec=`) of an existing Custom Command Shortcut in
System Settings -> Keyboard -> Shortcuts on Plasma 6 (Wayland), the `.desktop`
file under `~/.local/share/applications/*.desktop` is properly updated on disk,
and `kbuildsycoca6` runs, but `kwin_wayland` (`kglobalaccel`) continues to
execute the old cached command that was originally defined when the shortcut
was first created.

STEPS TO REPRODUCE
1. Open System Settings -> Shortcuts -> Add New -> Command.
2. Create a shortcut initially pointing to a direct command, e.g.:
   `flatpak run net.mkiol.SpeechNote --action start-listening-active-window`
   (KDE generates `~/.local/share/applications/net.local.flatpak.desktop` and
binds it in `~/.config/kglobalshortcutsrc`).
3. Trigger the shortcut once so `kglobalaccel` caches the service.
4. Open System Settings -> Shortcuts again, edit the exact same command
shortcut, and change the command to a custom wrapper script:
   `/home/user/.local/bin/speechnote-ler.sh --ditar`
5. Click Apply (and even run `update-desktop-database
~/.local/share/applications/` and `kbuildsycoca6` manually).
6. Press the shortcut key combination (`Meta+Num+Del`).

OBSERVED RESULT
Even though `~/.local/share/applications/net.local.flatpak.desktop` shows the
updated line:
`Exec=/home/user/.local/bin/speechnote-ler.sh --ditar`
Pressing the shortcut still spawns the old cached command (`flatpak run
net.mkiol.SpeechNote --action start-listening-active-window`) directly via
systemd transient scope (`app-flatpak-net.mkiol.SpeechNote-*.scope`),
completely bypassing the updated `Exec=` script.

Calling `qdbus6 org.kde.kglobalaccel` or running `kbuildsycoca6` does not flush
the in-memory `Exec=` string held by `kwin_wayland` until the shortcut is
completely deleted and recreated under a new `.desktop` ID (or until the
Wayland session is restarted).

EXPECTED RESULT
Modifying the `Exec=` command of a custom shortcut in `kcm_keys` and clicking
"Apply" should immediately invalidate the cached `KService` action inside
`kglobalaccel` (`kwin_wayland`) and execute the newly configured command on the
very next key press without requiring a session logout or deleting/recreating
the shortcut.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 6.8.2 (Wayland session)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to