Налаштуйте додаткові кнопки миші під Wayland


10

Я використовую мишу з 10 кнопками (Logitech M705). Під X11 мені вдалося налаштувати одну з додаткових кнопок, яка вела себе як друге середнє клацання, змінивши файли в etc/X11/xorg.conf.d.

У Вейленді це більше не працює. Мої дослідження показують, що мені потрібно щось робити libinput. Я думав, що це буде загальною проблемою, але відповіді не можу ніде знайти.

Чи може хтось пояснити, як перевстановити кнопки миші або пояснити, чому цього не можна зробити?


Я деякий час використовую Wayland, і я не міг знайти спосіб перестановки кнопок.
paulodiovani

Відповіді:


6

Якщо ви керуєте Wayland, перезапущення кнопок можна зробити так:

  1. Запустіть, xev | grep buttonщоб зафіксувати події клацання миші та отримати номер події, натиснувши у вікні. У моєму випадку середня кнопка:

    state 0x10, button 2, same_screen YES
    

    і я хочу відобразити це на:

    state 0x10, button 13, same_screen YES
    
  2. Потім запустіть xinput --listі знайдіть свій покажчик, моє:

    Logitech Performance MX  id=9  [slave pointer  (2)]
    
  3. xinput get-button-map 9 повертає:

    1 2 3 4 ... 20
    
  4. xinput set-button-map:

    $ xinput set-button-map 9  1 13 3 4 .. 12 2 14 .. 20
    

ПРИМІТКА: замініть номер 9для повернутого номераid=

І якщо визначено поведінку цього ключа, ваша подія відображається на карті. Якщо це не так, це трохи інше питання. Під Wayland ТВН я не знайшов спосіб для виконання команди на подію (який досить легко з Xorg - х xbindkeys) і , отже , повністю налаштовуючи поведінку ключа і події миші .. Я вважаю , що Wayland намагається бути більш безпечним і відключає цю поведінку .

У будь-якому випадку, у вас все ще є можливість досить легко перейти на Xorg і насолоджуватися функціоналом.


Працював для мене, але як зробити зміни постійними? Здається, я повинен працювати xinput set-button-mapна кожному новому сеансі Wayland ...
mgalgs

1
Так, запускати її потрібно кожного разу. Щоб автоматизувати це, ви можете помістити це в скрипт і створити сервісний файл, або помістити його в папку init, яка запускається при запуску відповідно до вашого дистрибутива (в ОС на базі системної системи, яка буде /etc/rc.d/init .d /)
ЧермакМ

Ви можете розмістити опцію у файлах xconf: Option "ButtonMapping" "1 2 3 ..."
le hollandais volant

Це змінює лише драйвер введення xorg, а не будь-які додатки, які в основному використовують композицію Wayland, як, наприклад, Gnome Shell або Nautilus
Ray Foss

3

Я створив невеликий скрипт оболонки + файл системного блоку, який я називаю mapland-mouse-mapper .

уривок mathportillo / wayland-mouse-mapper

Невеликий сценарій для відображення кнопок миші на натискання клавіш на Вейленді.

Я зробив для себе використання додаткової кнопки миші для корисних речей. Він перевірений і працює з Logitech MX Master 2S на Fedora 27 за допомогою Gnome, і він працює і на моєму старому Logitech Performance MX. Можливо, він працює на будь-якій миші Wayland та Any Logitech (або будь-якій миші, якщо ви редагуєте відображення), оскільки жоден інший метод (xdotools, xbindkeys тощо), здається, не працює.

Він працює, читаючи з події налагодження libinput та запускаючи ключові події за допомогою evemu залежно від розпізнаної кнопки від розпізнаного пристрою.

Кнопки

Це лише налаштування за замовчуванням, їх можна налаштувати на початку сценарію mousemapper.sh.

  • Вперед: переміщення до робочої області вгорі ( Super+ Page up)
  • Назад: переміщення в робочу область нижче ( Super+ Page down)

0

Спробуйте змінити правила hvdb udev. Це реєструє кнопки миші як клавіатурну клавішу, наприклад Launch8 / F16, і вимикає їх функціональність у всіх програмах, wayland чи інших способах.

# /usr/lib/udev/hwdb.d/71-mouse-local.hwdb

evdev:input:*
 KEYBOARD_KEY_90004=key_f16
 KEYBOARD_KEY_90005=key_f17

тоді як корінь systemd-hwdb update; udevadm triggerі від'єднайте миша потім знову ввімкніть його.

Додаткова перевірка обґрунтованості: sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEYабо запитайте її як таку, systemd-hwdb query "evdev:input:v046dp406a*перегляньте джерело для детальної інформації про витягнення ідентифікатора.

Джерело: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.