xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys - очень универсальная программа, которая позволяет легко переназначить ключи. Он использует конфигурационный файл, мой по умолчанию расположенный в вашем домашнем каталоге, для изменения привязок клавиш к определенным командам.
Чтобы создать конфигурационный файл по умолчанию, вы используете команду:
xbindkeys --defaults
Распечатывает файл конфигурации по умолчанию. Поэтому, если вы хотите создать файл, содержащий значения по умолчанию, которые вы использовали бы:
xbindkeys --defaults > $HOME/.xbindkeysrc
Что печатает значения по умолчанию в скрытый файл с именем .xbindkeysrc
, расположенный в доме ( ~
).
Теперь, чтобы на самом деле изменить привязки ключей, нам сначала нужно знать, что такое имя или keysym этих ключей. xbindkeys
позволяет нам использовать обработчик -k
, чтобы найти имя ключа или комбинации клавиш. Выполнить:
xbindkeys -k
И нажмите клавишу или комбинацию клавиш. На вашем выходе будет выглядеть что-то , подобное этому (при нажатии space ):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
сообщает нам, что в настоящее время никакая команда не связана с ключом Space . Р>
m:0x10 + c:65
Mod2 + space
Это имя комбинации клавиш / клавиш. Р>
конфигурационный файл.
Позволяет открыть файл конфигурации, который вы сделали ранее:
gedit .xbindkeysrc
Вот выдержка из файла конфигурации по умолчанию:
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
Каждая строка, начинающаяся с #
, является комментарием и не будет считана или запущена xbindkeys
. Р>
Пока единственная строка, которая не закомментирована:
"xbindkeys_show"
control+shift + q
В этой выдержке показан основной синтаксис команд xbindkeys
:
"Command to run (in quotes)"
key to associate with command (no quotes)
Итак, как вы можете видеть:
"xbindkeys_show"
control+shift + q
Запускает команду xbindkeys_show
при нажатии Ctrl + Shift + q . Р>
связывать ключи с командами.
Теперь попробуйте привязать несколько ключей. Я рекомендую очистить весь файл по умолчанию, чтобы он был пустым. Он содержит предустановленные привязки клавиш, которые вы, вероятно, не хотите. Р>
Теперь скажем, что вы хотите использовать Ctrl + b , чтобы открыть браузер. Сначала вам нужно знать, что такое имя или keysym из Ctrl + b . Как упоминалось ранее, вы можете использовать xbindkeys -k
, чтобы найти имя ключа или ключей, но есть более простой способ. Для простых комбинаций, таких как Ctrl + b , вы можете просто использовать:
Control+b
Гораздо проще, не так ли?
Теперь найдите команду для своего любимого браузера:
Помните синтаксис ранее? Команда xbindkeys
для запуска Firefox (или другого любимого браузера) при нажатии Ctrl + b :
"firefox"
Control+b
Теперь поместите это в свой файл конфигурации и сохраните его. Теперь вы можете заметить, что ваша команда еще не работает, потому что xbindkeys
не работает. Чтобы запустить его, просто запустите xbindkeys
с терминала. Теперь ваш Ctrl + b должен запустить ваш браузер!
привязать ключи к другим клавишам.
Если вы хотите, чтобы клавиша на клавиатуре вызывала другой ключ на клавиатуре, вам понадобится дополнительная часть программного обеспечения, так как xbindkeys
не поддерживает это самостоятельно. Я знаю две программы, которые мы можем использовать, xdotool
и xte
. Я предпочитаю xte
, поэтому я буду использовать это.
Установите его:
sudo apt-get install xautomation
Синтаксис для xte
выглядит следующим образом:
xte 'command key/mousebutton/xyCoordinates'
Примеры:
-
Для вызова одной клавиши нажмите: xte 'key keyName'
-
Чтобы вызвать комбинацию клавиш: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
-
Чтобы вызвать кнопку мыши: xte 'mouseclick buttonNumber'
(мы немного поговорим о том, чтобы найти номера кнопок)
-
Чтобы переместить мышь: xte 'mousemove xCoordinate yCoordinate'
-
И еще! Прочитать man xte
Теперь, когда вы знаете команду для имитации нажатия клавиш, вы можете вызвать ее из своего скрипта xbindkeys
, например:
"xte 'key b'"
Control+b
Как вы могли догадаться, это вызывает xte 'key b'
, когда мы нажимаем Ctrl + b , который вводит b в любой документ, который вы возможно, в настоящее время работает. Р>
Я должен отметить, однако, что xbindkeys
и xte
не всегда работают очень хорошо вместе. Иногда вам нужно нажимать клавиши точно одновременно, чтобы получить выход, в других случаях это работает отлично. Это может быть связано или не связано с конфигурацией системы и / или аппаратным обеспечением. Я не уверен. См. ответ maggotbrain для более надежного способа привязки ключей к другим клавишам.
привязать кнопки мыши к командам.
Вы также можете использовать xbindkeys
для привязки кнопок мыши к командам (и оттуда сочетания клавиш, см. выше). Основной формат кнопок мыши должен быть вам знаком:
" [command to run] "
b:n
Где [command to run]
- это команда, которую вы хотите запустить, и n
- номер кнопки мыши, которую вы хотите использовать для этой команды.
Если вы не знаете номер своей кнопки мыши, вы можете использовать xev
, чтобы узнать, что это такое:
xev | grep button
Результат будет примерно таким:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Когда я нажимаю каждую из кнопок мыши.Р>
Например:
" firefox "
b:2
Запускает firefox, когда я нажимаю среднюю кнопку мыши.