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, коли натискаю середню кнопку миші.