如何停用 KDE Plasma 中的所有全域熱鍵?

如何停用 KDE Plasma 中的所有全域熱鍵?

我在我的機器上使用了一個KDE+i3設置,因此我想停用 KDE 提供的所有全域熱鍵,因為我已經在我的 i3-config 中正確綁定了這些鍵。
在探索qdbusAPI 後,我發現該命令適用於每個 Plasma 會話:

qdbus org.kde.kglobalaccel /kglobalaccel blockGlobalShortcuts true

問題

問題是如何開始自動化。存在以下問題:

  • 全域鍵在之後再次開始工作睡覺,等重新啟動 Plasma。
  • 我用過
    exec --no-startup-id qdbus org.kde.kglobalaccel /kglobalaccel \
    blockGlobalShortcuts true
    
    目前,但只能在 Plasma 不重新啟動之前有效。

我應該如何繼續實施這個?

答案1

我找到了一種方法來停用 KDE 的所有全域快捷方式。這就是我所做的:

  • ~/.config/kglobalshortcutsrc熱鍵以分配的形式保存foo=bar
  • 使用sed,替換熱鍵。
  • 重新啟動kglobalaccel以觀察變化。

這是腳本:

#!/bin/sh

hotkeysRC="$XDG_CONFIG_HOME/kglobalshortcutsrc"

# Remove application launching shortcuts.
sed -i 's/_launch=[^,]*/_launch=none/g' $hotkeysRC

# Remove other global shortcuts.
sed -i 's/^\([^_].*\)=[^,]*/\1=none/g' $hotkeysRC

# Reload hotkeys.
kquitapp5 kglobalaccel && sleep 2s && kglobalaccel5 &

現在我終於可以將所有按鍵綁定移至 i3 配置了!

答案2

我稍微修改了 Utkarsh 的腳本,因為它不適用於我的安裝(可能 kglobalshortcutsrc 中的語法已更改):

#!/bin/sh

fl="$HOME/.config/kglobalshortcutsrc"

sed -i 's/=.*,.*,/=none,none,/g' $fl
sed -i 's/Walk Through Windows=.*/Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows/' $fl # return alt+tab

# Reload hotkeys.
kquitapp5 kglobalaccel && sleep 2s && kglobalaccel5 &

相關內容