Як прив’язати кнопки миші до клавіш?


19

У мене є лазерна миша Logitech MX400, яка має 5 кнопок + 4 для вертикальної / горизонтальної прокрутки. Мені б хотілося, щоб він налаштований, тому замість горизонтальної прокрутки натискаючи праворуч на колесо прокрутки, надішлемо Ctrl+, Tabа ліворуч надішлемо Ctrl+ Shift+ Tab, що дозволить мені переходити через вкладки в браузерах.

Крім того, було б непогано, якби я міг перевстановити середню кнопку до однієї з тих, хто стоїть збоку, оскільки її дуже важко натиснути.

Ще одним бонусом було б, якби я міг написати сценарій, який дозволяє мені визначати, які кнопки роблять те, що залежить від того, яке вікно в даний момент активне.

Я спробував використовувати, xmodmapале я міг бачити, як переставляти кнопки, не дозволяючи їм надсилати ключові сигнали.

Заздалегідь спасибі.


Карта кнопок (за допомогою xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9

Відповіді:


18

У xbindkeys і ХТА можуть допомогти вам.

Наприклад, мій .xbindkeysrc файл виглядає так:

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9

Це фантастично і розширюється, велике спасибі
Callum Rogers

1
Щоб отримати xte на Ubuntu 16.x, вам доведеться встановити xautomation від apt .
1111161171159459134

Це працює не так добре, як мені подобається, тому що воно не працює так само, якщо я натискаю кнопку. У моєї старої миші була кнопка, яка дозволяє колесо прокрутки вільно обертатися, що чудово, якщо я просто хочу запустити, щоб він рухався реально швидко і прокручував довгий шлях. Але у моєї нової цього немає, тому я прив’язав дві кнопки збоку (я думаю, вони розроблені як кнопки назад / вперед для веб-перегляду) до клавіш PgUp / PgDn. Але мені доведеться натискати на них кілька разів, якщо хочу продовжувати прокручування; Я не можу їх просто затримати. Як змусити його утримувати клавішу, поки я утримую кнопку?
flarn2006

5

Дякую всім за рішення. Ось більш надійний / комбінований посібник (зроблено на Xubuntu 18.04).

  1. Відкрийте термінал (наприклад, xterm / terminal / terminator), станьте root ( sudo su -) або використовуйте sudo перед командою:

    apt install xbindkeys xautomation
  2. Перевірте відображення кнопок за допомогою xev, для цього вам не потрібен дозвіл root, тому вийдіть із кореневого сеансу (з exit) або відкрийте інший термінал як користувач.

    xev | grep button
  3. З'явиться невелике вікно. Вам потрібно перенести мишку у це вікно і натиснути кнопку, яку ви хочете перезаписати. Прикладом виводу в терміналі буде:

    state 0x0, button 8, same_screen YES

    Це друга бічна кнопка на миші, яку я хочу використовувати як PAGE_DOWN.

    state 0x0, button 9, same_screen YES

    Це перша (так, замовлення зворотна) бічна кнопка, яку я хочу використовувати як PAGE_UP.

  4. Коли у вас є всі кнопки, які ви хочете зробити перезавантаження, ви можете закрити невелике вікно xev. Відкрийте улюблений редактор (наприклад, gedit / vi / nano) та відредагуйте файл конфігурації.

    vi .xbindkeysrc
  5. Якщо у вас вже є якийсь вміст у файлі, подивіться, чи вже є прив'язка, як це (навряд чи, не за замовчуванням) та додайте в кінці.

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release

    Примітка: вам потрібно два записи, один для натискання кнопки та один для випуску.

  6. Кнопки 8 + 9 будуть відображені на клавіші "Далі" (що становить PAGE_DOWN) та "Prior" (PAGE_UP). Якщо ви хочете зіставити різні клавіші, ви можете знайти клавішу з символом xev.

    xev | grep keysym
  7. Як і раніше, запустіть його в терміналі, перемістіть мишку до маленького вікна і натисніть потрібну клавішу.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. Збережіть і вбийте xbindings.

    killall xbindkeys ; xbindkeys

Тепер ви можете використовувати додаткові бічні кнопки миші. Параметр завантажується автоматично при наступному перезавантаженні / вході. killall [...]Команда потрібна лише згори, якщо ви змінили налаштування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.