Используйте клавиши для кнопок мыши на linux. Альтернатива AHK?

на windows у меня есть скрипт autohotkey, который:

  • работает только при включенной caps lock
  • генерирует левую, среднюю и правую кнопки мыши события, когда левый контроль, меню и клавиши alt нажаты
  • позволяет удерживать клавиши вниз (для перетаскивания объектов)

есть ли простой способ дублирования этой функциональности в linux?

7
задан Gilles
30.03.2023 22:42 Количество просмотров материала 2962
Распечатать страницу

3 ответа

X имеет встроенный механизм управления курсором мыши с помощью клавиатуры. Нажмите кнопку Pointer_EnableKeys ключ для того чтобы активировать этот режим (режим ключей мыши); он обычно прыгнут к Shift+NumLock.

в режиме клавиш мыши стрелки клавиатуры перемещают указатель, а другие клавиши клавиатуры эмулируют кнопки (/*- левый, средний, правый соответственно;+ остается двойным щелчком мыши, и 0 и . левая пресса и выпускать.)

посмотреть клавиши мыши для получения дополнительной информации. Кстати, этот режим можно включить на Windows тоже.

2
отвечен Gilles 2023-04-01 06:30

вы, вероятно, могли бы сделать то же самое с Tcl ('tickle').

0
отвечен paradroid 2023-04-01 08:47

Keymapping - мыши - щелчок средней кнопкой мыши Как сопоставить кнопки мыши с клавишами клавиатуры

во-первых, отключить клавиатуру управления мышью, так что xev может захватить код ключа Затем введите команду:

$ xev

затем переместите мышь в маленькое новое окно, которое появляется. Нажмите кнопку мыши, чтобы узнать название этой кнопки: Смотрите ниже, я нашел одну из моих кнопок мыши называется "кнопка 1"

ButtonPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x6200002, time 2427401, (31,41), root:(652,407),
    state 0x0, button 1, same_screen YES

затем узнать, какие клавиши вы хотите карту, которая кнопку мыши: Нажмите клавишу клавиатуры и найдите код.

при нажатии клавиши "пробел" на клавиатуре, терминал показывает:

KeyPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x0, time 2152399, (398,60), root:(1019,426),
    state 0x0, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

сверху, мы обнаружили, что ключ-код для клавиши пробела 65 Таким образом, вам нужно найти коды клавиш, на которые вы хотите сопоставить кнопки мыши...

следующий шаг:

$ sudo apt-get install xkbset

затем скопируйте приведенный ниже скрипт и сохраните его в файл с именем keymap_mouse2kb.sh

конечно менять клавиатурные коды клавиш для тех, которые вы хотите

#!/bin/bash
# set XKB layout
setxkbmap -layout us
# turn on mousekeys
xkbset m
# stop mousekeys expiring after a timeout
xkbset exp =m
# map keysym to other keysym
#xmodmap -e "keysym Menu = Pointer_Button2"
# this also works
 xmodmap -e "keycode 66 = Pointer_Button2"
 xmodmap -e "keycode 133 = Pointer_Button1"
 xmodmap -e "keycode 88 = Pointer_Button3"

затем сделайте этот файл исполняемым

$ sudo chmod u+x keymap_mouse2kb.sh

затем запустить его, когда вам это нужно... например, при загрузке

$ ./keymap_mouse2kb.sh
0
отвечен Russo 2023-04-01 11:04

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх