У меня есть Logitech M720 Mouse, что я надеюсь связать боковую кнопку (обычно страница вперед) к кнопке щелчка средней кнопкой - что-то, что я сделал в своем Windows с Logitech Options.
После исследования я нашел, что должен буду сделать это через xbindkeys
и xautomation
.
Я проверил нажатия клавиш с xev
и найденный, который боковая кнопка button 9
, и середина scrollwheel кнопка button 2
.
Я затем сделал мой .xbindkeysrc
файл как таковой:
"xte 'mouseclick 2'"
b:9
Однако после переопроса емкостно-резистивного файла на xbindkeys
, ключ связывает, не распознан нигде в моей системе и выполнении xev
протестируйте возвращает специфический результат:
РЕЗУЛЬТАТ USUALS ПРИ УГНЕТЕНИИ КНОПКИ 9
ButtonPress event, serial 37, synthetic NO, window 0x4a00001,
root 0x1dd, subw 0x0, time 38400097, (160,106), root:(160,169),
state 0x0, button 9, same_screen YES
ButtonRelease event, serial 37, synthetic NO, window 0x4a00001,
root 0x1dd, subw 0x0, time 38400237, (160,106), root:(160,169),
state 0x0, button 9, same_screen YES
РЕЗУЛЬТАТЫ ПОСЛЕ МОДИФИКАЦИИ ФАЙЛА XBINDKEYSRC (КНОПКА 9)
KeymapNotify event, serial 37, synthetic NO, window 0x0,
keys: 4294967261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
даже после убирания моего .xbindkeysrc
файл, вывод является все еще тем же и только возвратится к нормальному после того, как я killall xbindkeys
и перезапуск путем ввода xbindkeys
в терминале.
Я нашел этот этот поток с потенциальным решением, но к сожалению не работал на меня.
Привязка нажатия кнопки к чему-либо еще, например, "xte 'key a'"
работы как ожидалось.
Кто-либо с какими-либо указателями, что я мог бы делать неправильно?
Удачи.
Я думаю, что Вам нужна третья строка для каждого из Ваших ярлыков. Возможно, это не необходимость, но я смотрю на примеры, которые я настроил:
"pactl set-sink-volume @DEFAULT_SINK@ +5%"
m:0x4 + c:112
Control + Prior
"pactl set-sink-volume @DEFAULT_SINK@ -10%"
m:0x4 + c:117
Control + Next
# xautomation package
# Print Date
'"xte "keyup Super_L" "keyup Insert" "str `date +%Y.%m.%d`" "usleep 10" "keydown Super_L""'
m:0x40 + c:118
Mod4 + Insert
Так, каждая из моих записей имеет третью строку, которая определяет ярлык. Кроме того, мы должны отпустить нажатые клавиши сами, и обычно перед командой, которую мы выполняем. Это далее сложно со Сдвигом, поскольку я нашел, что Сдвиг выпуска вызывает проблемы.
Как правило, xbindkeys
используется для сложной привязки, или выполнять сценарии/команды. Вы могли дать modmap
попытка, которая могла бы быть ближе к ядру того, что Вы пытаетесь выполнить. Используя xev
, или evtest
, можно определить Код клавиши, который используется мышью, и затем скажите X интерпретировать его как другой Код клавиши.
~/.Xmodmap
keycode 97 = Control_R NoSymbol Control_R
~/.xinitrc
[[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap
Это говорит X, как обработать Код клавиши 97 (случайный, немышь) при нормальном нажатии, или с модификаторами (Сдвиг, Высокий звук, и т.д.). У Вас были бы отображения в ~/.Xmodmap
и загрузите его через $ modmap ~/.Xmodmap
, обычно рядом X, таким образом, в ~/.xinitrc
. evtest
'лучше', чем xev
в этом это поможет Вам найти устройство, которое Вы хотите протестировать, по сравнению с заставляют Вас возиться вокруг системы, находящей его в /dev
списки.
Другое решение состоит в том, чтобы использовать udev
/evdev
, и иметь систему выполняют этот перевод, независимо от того, если/когда Вы запускаете X, и с каждым соединением устройства. Это немного более сложно, но после того как Вы привыкаете к некоторым настройкам, можно работать для миграции их здесь.
Пользовательские правила являются местами в /etc/udev/hwdb.d/
Это - аппаратная база данных [конфигурация] каталог. Они загружаются в порядке, таким образом, файлы обычно снабжаются префиксом две цифры, но это только имеет значение, когда более поздние правила перезаписывают более ранние правила. Это - список устройств, Шиной USB, устройством и идентификаторами поставщика. Этот метод идеален, потому что можно повторно отобразить ключи для определенной клавиатуры и не всех клавиатур.
/etc/udev/hwdb.d/99-myMouse.hwdb
evdev:input:bIDvIDpID1*
KEYBOARD_KEY_210=menu
evdev:input:bIDvIDpID2*
KEYBOARD_KEY_210=menu
Этот пример находит два устройства ввода данных, на той же Шине USB, и от того же Поставщика, но с различными идентификаторами. Обе карты Код клавиши 210 к Кнопке меню. Можно учиться повторно отображать ключи мыши этот путь также.
Система будет иметь hwdb
файлы в другом каталоге, /usr/lib/udev/hwdb.d
. Эти файлы не должны быть отредактированы, но можно использовать их в качестве примеров для помощи по пути.
После внесения изменений должна быть обновлена база данных:
sudo systemd-hwdb update