我在我的机器上使用了一个KDE+i3
设置,因此我想禁用 KDE 提供的所有全局热键,因为我已经在我的 i3-config 中正确绑定了这些键。
在探索qdbus
API 后,我发现该命令适用于每个 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 &