Отображение эмулируемой кнопки мыши - Linux

353
tecHunt

tl; dr : Как сопоставить физическую кнопку MIDDLE с клавишей, отличной от эмулируемой кнопки MIDDLE? (Emulate3Buttons)

При использовании мыши Kensington Expert как есть, 4 кнопки являются физическими кнопками ВЛЕВО, ВПРАВО, СРЕДНИЙ и НАЗАД. Чтобы получить BACK и FORWARD, можно выполнить простое повторное связывание, добавив соответствующий раздел в xorg.conf (BACK -> FORWARD и MIDDLE -> BACK).

┌─┬─┐ ┌─┬─┐ │M│B│ │B│F│ ├─O─┤ -> ├─O─┤ │L│R│ │L│R│ └─┴─┘ └─┴─┘ 

Если я теперь дополнительно хочу кнопку MIDDLE, на страницах руководства упоминается опция "Emulate3Buttons", которая эмулирует нажатие кнопки MIDDLE путем одновременного нажатия клавиш ВЛЕВО и ВПРАВО.

Моя проблема сейчас заключается в следующем: «Emulate3Buttons» эмулирует физическую кнопку MIDDLE, и, поскольку мне раньше приходилось отображать MIDDLE -> BACK, я просто получу еще одну кнопку BACK.

┌─┬─┐ │B│F│ ├─O─┤ │L│R│ └\┴/┘ B 

Как бы я пошел в конечном итоге с:

┌─┬─┐ │B│F│ ├─O─┤ │L│R│ └\┴/┘ M 
0

1 ответ на вопрос

0
tecHunt

По-видимому, на этот вопрос уже был дан ответ, и исправление даже было объединено с базой кода Linux https://unix.stackexchange.com/questions/314795/xinput-button-mapping-and-middle-button-emulation.

в основном я создал файл /etc/X11/xorg.conf.d/99-kensington.conf (с правами root)

Section "InputClass" Identifier "Kensington Trackball" Driver "evdev" MatchProduct "Kensington Expert Mouse"  Option "ButtonMapping" "1 8 3 4 5 6 7 9 0 2" Option "Emulate3Buttons" "true" Option "Emulate3Button" "10" EndSection 

имя 99-kensington.conf можно изменить до тех пор, пока оно сохраняет тот же формат 'number-text.conf'.

Идентификатор не важен.

MatchProduct является подстрокой имени устройства. Вы получите его, выполнив «xinput --list» (между ↳ и id =). Если у вас есть только одна мышь, вам это не нужно.

ButtonMapping должен быть хорошо известен, вторая цифра - это физический MIDDLE, который отображается на BACK (8). С Emulate3Button вы можете указать, какую физическую кнопку следует эмулировать, в данном случае физическую 10. Поэтому 10-е число в ButtonMapping - MIDDLE (2). (0 означает, что кнопка отключена)

Если вам нужна дополнительная информация: https://www.systutorials.com/docs/linux/man/4-evdev/

Похожие вопросы