Емуляція клацання миші за допомогою клавіатури


13

Я хочу зробити кнопку на клавіатурі, щоб діяти як клацання миші, бажано за допомогою xmodmap. Як це зробити?

Запуск Ubuntu 10.10.


setxkbmap -option keypad:pointerkeysзробив би те, що ти хочеш. Потім зсув-нумелок.
peterh

Відповіді:


6

Наступні кроки допоможуть вам переключити клавіші клавіатури на кнопки миші.

  1. Визначте клавішу клавіатури за допомогою xevутиліти.

    Запуск утиліти xev та натискання клавіші клавіатури, яку потрібно перемотати, виведе щось подібне

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Зверніть увагу на код ключа, який буде перейменований.

  2. Запустіть утиліту xkbset

    xkbset m

  3. Перейдіть за допомогою утиліти xmodmap.

    У нижченаведеному випадку клавіша меню перевстановлена ​​в праву кнопку миші.

    xmodmap -e "keycode 135 = Pointer_Button3"


дивіться мій сценарій superuser.com/questions/313926/… Використовуйте клавіші для кнопок миші на Linux. Альтернатива AHK?
Руссо

4

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

Подивіться у файлі /usr/include/X11/keysymdef.h для точного написання та написання великої літери, але має бути можливість відобразити клавішу клавіатури на кнопку миші (1,2,3 тощо), навіть подвійне клацання ( переглянути файл заголовка біля рядка 460 або близько того)

keysym W = Pointer_Button1

МОЖЕ працювати, змушуючи клавішу W діяти як ліву кнопку миші. Я рекомендую використовувати інший ключ, якщо ви не використовуєте жоден W, але все, що працює для вас. (ні, я не збираюся сам пробувати це, мені потрібні мої W!)

Також перегляньте сторінку man для xmodmap та, звичайно, вміст /usr/include/X11/keysymdef.h, щоб правильність написання написала. Відкиньте префікс XK_, щоб використовувати імена ключів для xmodmap.

Схоже, це (keysymdef.h) в пакеті x11-proto-core-dev для моєї системи Debian ... можливо, ви захочете шукати файл та його вміст в Інтернеті, сумніваєтесь, що хочете встановити всі задіяні файли -dev просто дістань ЦЕ. GIYF.

Щось лоскоче в моїй голові про інший спосіб зробити це, але зараз нічого не доходить до мене.

О! Залежно від ваших потреб, ви можете заглянути в емуляцію миші з клавіатури, перетворюючи цифрову клавіатуру в повнофункціональну мишу з двома кнопками (без колеса прокрутки!).


1
Для інформації читачів про "Емуляція миші клавіатури": en.linuxreviews.org/… Комбінація клавіш для ввімкнення цього режиму була вимкнена за замовчуванням з давнього часу і тепер потребує Option XkbOptions "keypad:pointerkeys". Якщо натиснути клавіші, це не єдиний спосіб увімкнути це: xkbset mчи це робиться відповідно до crunchbang.org/forums/viewtopic.php?id=27937 , і може контролювати неприємний тайм-аут, а також вимикати його з cmdline.
imz - Іван Захарящев

3

Вбудований режим "Емуляція миші клавіатури" може це робити та /, але має попередньо налаштовані комбінації клавіш для емуляції різних клацань і натискань миші (для перетягування).

(FYI: Комбінація клавіш для його ввімкнення була видалена з типової картки за замовчуванням з деякого часу тому і тепер потрібна Option XkbOptions "keypad:pointerkeys".)

Натискання клавіші - не єдиний спосіб увімкнути цей режим:

xkbset m

робить це відповідно до http://crunchbang.org/forums/viewtopic.php?id=27937 , і може керувати неприємним тайм-аутом, а також вимкнути його з cmdline. Щоб вимкнути неприємний тайм-аут:

xkbset exp =m

Отже, xkbsetце дійсно зручніше (ніж мати клавішу лише для ввімкнення цього режиму), оскільки xkbsetдає більше контролю над бажаним тайм-аутом і т.д.

Використовується numpad. Деякі основні комбінації (докладніше на веб-сайті http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -Призначено для вибору вліво, середньої або правої кнопки;
  • 5призначений для натискання вибраною кнопкою;
  • 0і .призначені для натискання та звільнення вибраної кнопки (для перетягування тощо)

Примітки щодо проблем із "Емуляцією миші клавіатури" завжди ввімкнено

  1. Я не міг зробити так, щоб "Емуляція миші клавіатури" завжди була включена. Тому я покладався на спеціальний ключ (як у keypad:pointerkeys) для цього.

  2. Я з'ясував, що Xfce возився з цими налаштуваннями також під час запуску, тому якщо xkbset mзапускається перед Xfce, то налаштування не активне. Тому мені довелося змінити налаштування в конфігурації Xfce, щоб відповідати моєму загальному бажанню, а саме: Налаштування Xfce: Доступність: Миша: включення емуляції . (Джерелом, яким я дізнався про існування такого варіанту Xfce, було: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Це, мабуть, допомогло. (Я також відключаю свій сенсорний панель xinput float ...; це зіпсовано перемиканням між консолями Linux, але можна попрацювати ще раз, відключивши цей пристрій хоча б у налаштуваннях Xfce.)

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