Configure os botões extras do mouse em Wayland

8

Eu uso um mouse de 10 botões (Logitech M705). No X11, eu consegui configurar um dos botões extras para se comportar como um segundo clique do meio, modificando arquivos em etc/X11/xorg.conf.d .

Sob Wayland, isso não funciona mais. Minha pesquisa mostra que preciso fazer algo com libinput . Eu pensei que isso seria um problema comum, mas não consegue encontrar uma resposta em nenhum lugar.

Alguém pode explicar como remapear os botões do mouse ou explicar por que isso não pode ser feito?

    
por Kyle 27.11.2016 / 15:49

2 respostas

7

Remapear os botões se você estiver usando o Wayland pode ser feito assim:

  1. Execute xev | grep button para registrar eventos de clique do mouse e obter o número do evento clicando na janela. No meu caso, o botão do meio é:

    state 0x10, button 2, same_screen YES
    

    e quero mapeá-lo em:

    state 0x10, button 13, same_screen YES
    
  2. Em seguida, execute xinput --list e encontre seu dispositivo de ponteiro, o meu é:

    Logitech Performance MX  id=9  [slave pointer  (2)]
    
  3. xinput get-button-map 9 retorna:

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

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

OBSERVAÇÃO: substitua o número 9 do número retornado por id=

E se o comportamento dessa chave for definido, seu evento será mapeado. Se não for, isso é um problema um pouco diferente. Sob Wayland TBH Eu não encontrei uma maneira de executar um comando em um evento (o que é muito fácil com xbindkeys do Xorg) e, portanto, totalmente personalizando o comportamento do evento key e mouse .. Eu acredito que Wayland está tentando ser mais > secure e desativa este comportamento.

De qualquer forma, você ainda tem a oportunidade de mudar para o Xorg facilmente e aproveitar a funcionalidade.

    
por 03.10.2017 / 22:03
2

Eu fiz um pequeno script shell + arquivo unitário systemd que eu chamo de wayland-mouse-mapper .

excerto mathportillo / wayland-mouse-mapper

A small script for mapping mouse buttons to keystrokes on Wayland.

I made for myself to use my mouse extra buttons for useful stuff. It's tested and works with Logitech MX Master 2S on Fedora 27 using Gnome, and works it on my old Logitech Performance MX too. It probably works on any Wayland and Any Logitech mouse (or any mouse if you edit mappings) because no other method (xdotools, xbindkeys, etc.) seemed to work.

It works by reading from libinput debug-events and triggering key events using evemu depending on the recognized button from the recognized device.

Buttons

These are just the default settings, you can customize them at the start of the mousemapper.sh script.

  • Forward: Move to workspace above (Super+Page up)
  • Back: Move to workspace below (Super+Page down)
    
por 10.08.2018 / 16:28