Отображение эмулируемой кнопки мыши - Linux
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
1 ответ
По-видимому, на этот вопрос уже дан ответ, и исправление даже было объединено с базой кода 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/