Эмуляция щелчка мышью с помощью клавиатуры


13

Я хочу сделать кнопку на клавиатуре, чтобы она действовала как щелчок мышью, предпочтительно используя xmodmap. Как это сделать?

Запуск Ubuntu 10.10.


setxkbmap -option keypad:pointerkeysбудет делать то, что вы хотите. Затем смена номера.
Петер - Восстановить Монику

Ответы:


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. Альтернатива АХК?
Руссо

4

Я полагаю, что вы могли бы сделать это, используя xmodmap и раскладку Pointer_Button1.

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

keysym W = Pointer_Button1

МОЖЕТ работать, в результате чего клавиша W действует как левая кнопка мыши. Я бы порекомендовал использовать другой ключ, если вы не используете W, но все, что вам подходит. (нет, я не собираюсь пробовать это сам, мне нужны мои W!)

Также посмотрите справочную страницу для xmodmap и, конечно же, содержимое /usr/include/X11/keysymdef.h, чтобы получить правильное написание. Удалите префикс XK_, чтобы использовать имена keysym для 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 и может контролировать неприятное время ожидания, а также отключать его из командной строки .
imz - Иван Захарьящев

3

Это можно сделать с помощью встроенного режима «Эмуляция клавиатуры» и / но с предварительно настроенными комбинациями клавиш для эмуляции различных щелчков мыши и нажатий (для перетаскивания).

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

Нажатие на клавишу - не единственный способ включить этот режим:

xkbset m

делает это в соответствии с http://crunchbang.org/forums/viewtopic.php?id=27937 и может контролировать неприятное время ожидания, а также отключать его из командной строки. Чтобы отключить неприятный таймаут:

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.