Я хочу сделать кнопку на клавиатуре, чтобы она действовала как щелчок мышью, предпочтительно используя xmodmap. Как мне это сделать?
Запуск Ubuntu 10.10.
Следующие шаги помогут вам перенести ваши клавиши клавиатуры на кнопки мыши.
Определите клавиатуру с помощью утилиты 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
Обратите внимание на код ключа, который будет переназначен.
Запустите утилиту xkbset
xkbset m
Переопределите с помощью утилиты xmodmap.
В приведенном ниже случае кнопка меню переназначается на правую кнопку мыши.
xmodmap -e "keycode 135 = Pointer_Button3"
Я полагаю, что вы могли бы сделать это, используя 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.
Что-то щекотно в моей голове о другом способе сделать это, но ничего не приходит ко мне только сейчас.
ОЙ! В зависимости от ваших потребностей, вы можете взглянуть на эмуляцию клавиатуры, с помощью которой цифровая клавиатура превращается в полнофункциональную двухкнопочную (без колеса прокрутки!) мышь.
Это можно сделать с помощью встроенного режима "Эмуляция клавиатуры" и / или с предварительно настроенными комбинациями клавиш для эмуляции различных щелчков мыши и нажатий (для перетаскивания).
(К вашему сведению: комбинация клавиш для включения этого была удалена из таблицы ключей по умолчанию некоторое время назад и теперь нуждается в 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
а .
предназначены для нажатия и отпускания выбранной кнопки (для перетаскивания и т. д.)Я не всегда мог включить "Эмуляцию клавиатуры". Поэтому для этого я использовал специальную клавишу (как в keypad:pointerkeys
).
Я обнаружил, что Xfce тоже при запуске запускал эти настройки, поэтому, если xkbset m
запускается до Xfce, то настройка не активна. Поэтому мне пришлось изменить настройку в конфигурации Xfce, чтобы она соответствовала моему общему желанию, а именно: Настройки Xfce: Доступность: Мышь: включить эмуляцию. (Источник, о котором я узнал о существовании такой опции Xfce, был: https://bugzilla.xfce.org/show_bug.cgi?id=3860.) Это, похоже, помогло. (Я также отключаю сенсорную панель с помощью xinput float ...
; это запутано переключением между консолями Linux, но можно обойти его снова, отключив это устройство по крайней мере в настройках Xfce.)