如何禁用 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 &

相关内容