
私は自分のマシンでセットアップを使用しているKDE+i3
ため、i3-config でキーを適切にバインドしているので、KDE が提供するすべてのグローバル ホットキーを無効にしたいと考えています。API を
調べてみるとqdbus
、コマンドが Plasma セッションごとに機能することがわかりました。
qdbus org.kde.kglobalaccel /kglobalaccel blockGlobalShortcuts true
問題
問題は、自動化をどのように開始するかです。問題は次のとおりです。
- グローバルキーは、寝る、ロックPlasma を再起動するなど。
- 私は使ったことがある
今のところは Plasma が再起動するまでしか機能しません。exec --no-startup-id qdbus org.kde.kglobalaccel /kglobalaccel \ blockGlobalShortcuts true
これを実装するにはどうすればいいでしょうか?
答え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 &