xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys - це дуже універсальна програма, яка дозволяє вам легко перевпорядковувати клавіші. Він використовує конфігураційний файл, який за замовчуванням знаходиться у вашому домашньому каталозі, щоб змінити прив’язки клавіш до певних команд.
Щоб створити конфігураційний файл за замовчуванням, ви використовуєте команду:
xbindkeys --defaults
Який друкує конфігураційний файл за замовчуванням. Отже, якщо ви хочете створити файл, який містить значення за замовчуванням, які ви використовуєте:
xbindkeys --defaults > $HOME/.xbindkeysrc
Який друкує значення за замовчуванням у прихований файл, названий .xbindkeysrcу будинку ( ~).
Тепер, щоб насправді змінити прив’язку клавіш, ми спочатку повинні знати, що таке ім’я або ключовий ключ цих клавіш. 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+ 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
Синтаксис for 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, коли натискаю середню кнопку миші.