xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys - очень универсальная программа, которая позволяет очень легко переназначать ключи. Он использует конфигурационный файл, мой по умолчанию, расположенный в вашем домашнем каталоге, чтобы изменить привязки клавиш на определенные команды.
Для создания файла конфигурации по умолчанию вы используете команду:
xbindkeys --defaults
Который печатает файл конфигурации по умолчанию. Поэтому, если вы хотите создать файл, содержащий значения по умолчанию, вы должны использовать:
xbindkeys --defaults > $HOME/.xbindkeysrc
Который печатает значения по умолчанию в скрытый файл с именем, .xbindkeysrc
расположенный в home ( ~
).
Теперь, чтобы реально изменить привязки клавиш, нам сначала нужно узнать, как называется или называется ключ этих клавиш. 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чтобы открыть браузер. Во-первых, вам нужно знать, как называетсяCtrl + или keyym of + 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, когда я нажимаю среднюю кнопку мыши.