시뮬레이션된 수직 및 수평 스크롤 사용libinput

시뮬레이션된 수직 및 수평 스크롤 사용libinput

저는 엄지 손가락 아래에 트랙볼이 있는 사용자 정의 키보드를 만들었고 바로 가기 키(예: 왼쪽 Alt)를 누르고 공을 회전할 때 스크롤처럼 동작하도록 스크롤 동작을 매핑하고 싶습니다. 저는 여기서 Xorg를 사용하고 있지만 X와 Wayland(솔루션에 디스플레이 서버가 관련된 경우)에 대한 솔루션을 찾는 데 매우 관심이 있습니다.

답변1

시뮬레이션된 수직 및 수평 스크롤 사용libinput

운전사 evdev는 출신이다덱터스답변은 수직 스크롤 시뮬레이션만 지원합니다. (나처럼) 가로로 스크롤하고 싶다면 libinput드라이버를 사용하여 다음을 수행할 수 있습니다.

  1. 자세한 내용은 다음 맨페이지에 나와 있습니다 libinput(4).

    옵션 "스크롤버튼" "int"

    버튼을 스크롤 버튼으로 지정합니다. 만약에스크롤 모드단추논리적으로 버튼을 누르고 있는 동안 x/y 축 이동은 스크롤 이벤트로 변환됩니다.

    옵션 "ScrollMethod" "문자열"

    스크롤 방법을 활성화합니다. 허용되는 값은없음, 두 손가락, 가장자리, 버튼. 모든 옵션이 모든 장치에서 지원되는 것은 아니며, 옵션이 지원되지 않으면 장치의 기본 스크롤 옵션이 사용됩니다.

  2. 예를 들어:

    Section "InputClass"
      Identifier "Some Trackball"
      # ... Stuff to match your trackball, see xorg.conf(5)
      Driver "libinput"
      Option "ScrollMethod" "button"
      Option "ScrollButton" "4" # Or whatever button suits your needs
    EndSection
    

답변2

트랙볼을 사용하여 마우스 휠 시뮬레이션

기존 드라이버 구성 옵션을 사용하여 원하는 것과 유사한 작업을 수행하거나 고유한 드라이버를 작성할 수 있습니다.

이것로지텍 M570USB 수신기를 갖춘 무선 트랙볼입니다. 즉, 다음과 같이 표시됩니다. 고압 가스 방전관장치 및 마우스 이벤트가 전달됩니다.입력하다커널 계층에 위치하며 해당 /dev/event장치에서 읽을 수 있습니다.

그러면 X 드라이버는 evdev드라이버를 사용하여 이 계층에서 이벤트를 읽고 이를 X 이벤트로 변환합니다. 저는 Wayland에 대해 잘 모르지만 그곳에서도 비슷하게 작동할 것이라고 생각합니다.

1) evdev드라이버에는 트랙볼에서 마우스 휠을 시뮬레이션하는 옵션이 이미 포함되어 있습니다 man evdev. 을 참조하십시오. 가장 중요한 것은

옵션 "EmulateWheel" "부울"

"휠" 시뮬레이션을 활성화/비활성화합니다. 스크롤 휠 에뮬레이션은 특정 실제 버튼을 누르는 동안 마우스를 움직일 때 버튼 누름/해제 이벤트를 시뮬레이션하는 것을 의미합니다. 휠 버튼 이벤트(보통 버튼 4와 5)는 일반적으로 스크롤에 사용됩니다. 휠 시뮬레이션은 트랙볼을 사용하여 휠과 같은 동작을 얻는 데 유용합니다.

옵션 "EmulateWheelButton" "정수"

휠 시뮬레이션 모드를 활성화하려면 어떤 버튼을 눌러야 하는지 지정합니다. 이 버튼을 누르면 X 및/또는 Y 포인터 이동으로 인해 XAxisMapping 및 YAxisMapping 설정에 지정된 버튼 누름/해제 이벤트가 생성됩니다. 버튼이 0이고 EmulateWheel이 켜져 있으면 장치의 모든 움직임이 휠 이벤트로 변환됩니다. 기본값: 4.

따라서 이는 키보드 단축키 대신 트랙볼 버튼을 사용하여 작동하며(드라이버는 키보드가 아닌 마우스에서만 이벤트를 볼 수 있기 때문에) 변환됩니다.이동하다대신 휠 이벤트에돌아서 다.

2) 여러 기존 드라이버를 수정하여 자신만의 드라이버를 작성합니다. 키를 눌러 휠 시뮬레이션을 실행하려면 키보드와 마우스 드라이버의 조합이 필요합니다.

소스 코드커널 입력 레이어drivers/input커널 트리에 위치합니다 .

소스 코드evdevX 드라이버가 들어있습니다.xorg/driver/xf86-input-evdev/tree/src/evdev.c.

키보드 드라이버는 사용 중인 키보드 유형에 따라 다릅니다.

관련 정보