Wayland에서 추가 마우스 버튼 구성


10

10 버튼 마우스 (Logitech M705)를 사용합니다. X11에서는에서 파일을 수정하여 추가 버튼 중 하나를 두 번째 중간 클릭으로 작동하도록 구성 할 수있었습니다 etc/X11/xorg.conf.d.

Wayland에서는 더 이상 작동하지 않습니다. 내 연구에 따르면으로 무언가를해야한다고합니다 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 설정 버튼 맵 :

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

참고 :에서9 반환 한 번호 의 번호 를 바꾸십시오 .id=

해당 키의 동작이 정의되면 이벤트가 매핑됩니다. 그렇지 않은 경우 약간 다른 문제입니다. Wayland TBH에서는 이벤트에서 명령을 실행하는 방법을 찾지 못했습니다 (Xorg의 경우 매우 쉽습니다 xbindkeys). 키와 마우스 이벤트의 동작을 완전히 사용자 정의합니다. Wayland는 더 안전 하고이 동작을 비활성화 하려고한다고 생각 합니다 .

어쨌든 여전히 Xorg로 쉽게 전환하고 기능을 즐길 수있는 기회가 있습니다.


나를 위해 일했지만 어떻게 영구적으로 변경합니까? 내가 실행해야 할 것 같은데 xinput set-button-map... 각각의 새로운 WAYLAND 세션은
mgalgs

1
예, 매번 실행해야합니다. 이것을 자동화하기 위해 이것을 스크립트에 넣고 서비스 파일을 만들거나 배포에 해당하는 시작시 실행되는 init 폴더 (/etc/rc.d/init 인 systemd 기반 OS에서)에 넣을 수 있습니다. .d /)
CermakM

xconf 파일에 옵션을 넣을 수 있습니다 : Option "ButtonMapping" "1 2 3 ..."
le hollandais volant

이것은 그놈 쉘이나 노틸러스와 같이 기본적으로 웨이 랜드 구성을 사용하는 응용 프로그램이 아닌 xorg 입력 드라이버 만 변경합니다.
Ray Foss

3

wayland-mouse-mapper 라는 작은 쉘 스크립트 + systemd 단위 파일을 만들었습니다 .

발췌 mathportillo / wayland-mouse-mapper

Wayland에서 마우스 버튼을 키 입력에 매핑하는 작은 스크립트입니다.

유용한 기능을 위해 마우스 여분의 버튼을 사용했습니다. Gnome을 사용하여 Fedora 27에서 Logitech MX Master 2S와 함께 테스트 및 작동하며 이전 Logitech Performance MX에서도 작동합니다. 다른 방법 (xdotools, xbindkeys 등)이 작동하지 않기 때문에 Wayland 및 모든 Logitech 마우스 (또는 매핑을 편집하는 경우 마우스)에서 작동합니다.

libinput 디버그 이벤트를 읽고 인식 된 장치의 인식 된 버튼에 따라 evemu를 사용하여 주요 이벤트를 트리거하여 작동합니다.

버튼

이것은 기본 설정일뿐입니다. mousemapper.sh 스크립트 시작시 사용자 정의 할 수 있습니다.

  • 앞으로 : 위의 작업 공간으로 이동 ( Super+ Page up)
  • 뒤로 : 아래 작업 공간으로 이동 ( Super+ Page down)

0

hwdb udev 규칙을 수정하십시오. 마우스 버튼을 Launch8 / F16과 같은 키보드 키로 등록하고 모든 프로그램, 웨이 랜드 등에서 기능을 비활성화합니다.

# /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*ID를 가져 오는 것에 대한 자세한 내용은 소스를 참조하십시오.

출처 : https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.