
Я использую 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 &