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 ответ1

0

По-видимому, на этот вопрос уже был дан ответ, и исправление даже было объединено с базой кода 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 - СРЕДНИЙ (2). (0 означает, что кнопка отключена)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .