Я пытаюсь реализовать привязки клавиш Emacs в моем браузере.
В настоящее время у меня есть .xbindkeysrc
и этот аккорд
"if [[ "$(xdotool getwindowfocus getwindowname)" =~ "Chrome" ]]; then xdotool key --window "$(xdotool getactivewindow)" Left; fi"
control+b
Он хорошо работает в Chrome, если я нажму ctrl + b
, курсор переместится назад, но затем у меня будет странный эффект: я могу ' Я больше не использую ctrl + b
в моем терминале (Терминал Gnome).
Кроме того, я не знаю, почему это происходит, есть ли способ предотвратить блокировку ключей xbindkeys в определенной программе?
Если нет, думаете ли вы о другом способе решения этой проблемы?
Заранее спасибо.
Дополнительные примечания :
Терминале Gnome
, но также в rxvt
и xterm
. И если я удалю условную часть и наберу только "xdotool key --window "$(xdotool getactivewindow)" Left"
control+b
, аккорд все равно будет заблокирован в терминалах (и даже в Gedit), когда я ожидаю, что это сработает. Это меня действительно смущает.
Я также пробовал xmodmap , но таблица keyyms не включает управляющий ключ, тогда это невозможно.
Я все еще пытаюсь заставить его работать, используя xbindkeys
и xdotool
, если бы вы могли мне помочь, я был бы очень признателен.
Проблема, похоже, связана с Xorg , потому что попытка того же сценария в контексте Wayland работает.
Если вас интересует этот вопрос, вот как я наконец это сделаю.
Вместо того, чтобы напрямую включать условную часть в .xbindkeysrc
, я сделал отдельный сценарий, который будет зацикливаться достаточно быстро, чтобы запустить или убить демон xbindkey
#!/usr/bin/sh
while true
do
if [[ "$(xdotool getwindowfocus getwindowname)" =~ "Chrome" ]]
then
xbindkeys 2>/dev/null
else
killall xbindkeys 2>/dev/null
fi
sleep 0.5
done
Затем в моем .xbindkeysrc
Я пишу все аккорды Emacs.
А еще я использую systemd
для запуска скрипта при запуске.
Надеюсь, это вам помогло.