libinput으로 스크롤 속도 변경


16

마우스 휠이 너무 느리게 스크롤되므로 각 스크롤 "틱"의 줄 수를 늘리고 싶습니다. Evdev Scrolling Distancewith 을 설정하면 이것이 가능하다는 것을 읽었 xinput지만 사용 libinput하고 있으며 스크롤 거리와 관련된 것은 보이지 않습니다.

xinput list-props내 마우스의 출력 :

Device Enabled (139):   1                                                                                                       
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (275): -0.640000                                                                                           
libinput Accel Speed Default (276): 0.000000                                                                                    
libinput Accel Profiles Available (277):    1, 1                                                                                
libinput Accel Profile Enabled (278):   1, 0                                                                                    
libinput Accel Profile Enabled Default (279):   1, 0                                                                            
libinput Natural Scrolling Enabled (280):   0                                                                                   
libinput Natural Scrolling Enabled Default (281):   0                                                                           
libinput Send Events Modes Available (259): 1, 0                                                                                
libinput Send Events Mode Enabled (260):    0, 0                                                                                
libinput Send Events Mode Enabled Default (261):    0, 0                                                                        
libinput Left Handed Enabled (282): 0                                                                                           
libinput Left Handed Enabled Default (283): 0                                                                                   
libinput Scroll Methods Available (284):    0, 0, 1                                                                             
libinput Scroll Method Enabled (285):   0, 0, 0                                                                                 
libinput Scroll Method Enabled Default (286):   0, 0, 0                                                                         
libinput Button Scrolling Button (287): 2                                                                                       
libinput Button Scrolling Button Default (288): 274                                                                             
libinput Middle Emulation Enabled (289):    0                                                                                   
libinput Middle Emulation Enabled Default (290):    0                                                                           
Device Node (262):  "/dev/input/event1"                                                                                         
Device Product ID (263):    1133, 50487                                                                                         
libinput Drag Lock Buttons (291):   <no items>                                                                                  
libinput Horizonal Scroll Enabled (264):    1                                                  

스크롤 속도는 어떻게 변경합니까? Arch Linux, Xfce 4.12에서 실행 중입니다.


1
편지가 기능 요청 이 (의 호의 구현하는 libinput에 대한 @clel은 ).
n.st

답변:


4

libinput 장치의 스크롤 속도를 변경하기위한 현재 API는 없지만 이 블로그 에서는 마우스 휠 클릭이 systemd의 udev 구성 파일에서 마우스 당 변경할 수있는 이동 각도에 어떻게 대응하는지 설명합니다 /usr/lib/udev/hwdb.d/70-mouse.hwdb. MOUSE_WHEEL_CLICK_ANGLE이 파일의 시작 부분 에 대한 주석을 읽으십시오 .

로컬로 변경하려면 새 파일을 작성하십시오.

 /etc/udev/hwdb.d/71-mouse-local.hwdb

우선 적용 규칙을 추가하십시오. 예를 들어 ImExPS / 2 마우스를 사용하는 경우 클릭당 기본 15도를 30 도로 두 배로 늘릴 수 있습니다.

# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250
 MOUSE_WHEEL_CLICK_ANGLE=30

udev 데이터베이스를 다시로드

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1

1
There is no current api for changing the scroll speed for libinput devices: 그때 이후로 바뀌 었습니까?
orschiro 2016 년

1
@orschiro 나는 API가 의도가 아니라는 인상을받습니다. 모든 장치가 udev에서 올바르게 식별되고 구성되어 사용자 구성이 필요하지 않기를 바랍니다. 모든 libinput 블로그를 확인하십시오 . 특히 1.4 는 libinput의 초기 TODO 목록을 마무리하는 것에 해당합니다.
meuh

4
Ubuntu 16.10에서 시스템 udev conf는 /lib/udev/hwdb.d/70-mouse.hwdb에 있습니다.
Jonas Berlin

2
어쨌든 터치 패드로 동일하게 수행합니까?
프란체스코

1
@daboross 예. 고려해야 할 두 가지 측면이 있습니다. 위의 대답은 장치의 출력을 정상화하려고 시도하기 때문에 사용자가 두 개의 다른 마우스에서 같은 양의 움직임을 할 때 시스템은 보고서에도 불구하고 동등한 것으로 계산할 수 있습니다 하드웨어가 다릅니다. 두 번째 측면은 이것이 얼마나 많은 스크린 움직임을 나타내는 지이며, 이는 그래픽 툴킷, 윈도우 시스템, 화면의 dpi 등과 같이 사용자가 직면 한 복잡한 소프트웨어 양에 의해 결정됩니다.
meuh

3

리빈 풋 은 공통 파티로서 " 모든 휠 스크롤에 대해 n 라인 /도 수행"개념을 가지고 있지 않습니다. 일부 Logitech 에는 Evdev Scrolling Distance (278)"이전"과 함께 제공되는 매개 변수가 있으므로 설정은 장치에 따라 다릅니다. Evdev 드라이버가 포함되어 있습니다.

이것은 내 의견으로는 사용자 경험에 대한 회귀 로 간주됩니다. 처음에는 구성 가능한 마우스 스크롤 감도를 공통 툴킷 (libinput)에 포함시키는 것이 거부되었으며 이제는 향후 버전 에 대한 풀 요청의 일부입니다 – 아마도 모든 데스크탑 환경에서 함수 호출을 구현해야합니다.

이러한 문제를 해결할 가능성은 많지만 Linux 배포판에 따라 다릅니다.

  1. 운이 좋으면서 드라이버 고유의 스크롤 감도를 가지십시오 – 스크롤 변수로 모든 입력을 검색하여 확인하십시오 :

    xinput 목록 | 컷 -f2 | 컷 -f2 -d '='| \
                xargs -d $ '\ n'-I '{}'sh -c "xinput list-props '{}'| grep -iq 스크롤 && \
                                        (에코 리스팅 개발자 ID '{}'; xinput list-props '{}') "
    로 특정 변수를 설정합니다 . 여기서 장치 이름 이 될 수 있고 설정 이름이 될 수 있습니다.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. 일반적인 해결책은 libinput 코드를 다시 패치 하고 재 구축하는 것 입니다.

  3. X11을 사용하여 udevadm / evdev 인터페이스로 롤백 한 후 X11 변수 MOUSE_WHEEL_CLICK_ANGLE 을 시도 할 수 있습니다.

  4. 에서 마지막 항목의 참조 , 그 수는 사용하는 imwheel다중 값 에뮬레이션 마우스 스크롤 클릭에.

    # Should use imwheel --kill --buttons "4 5" to restart imwheel,
    # if the mouse has back/forward buttons, otherwhise imwheel --kill is enough.
    # imwheel must be set to autostart in your DE tools.
    #Edit ~/.imwheelrc to include, where '3' is a multiplier
    ".*"
    None,      Up,   Button4, 3
    None,      Down, Button5, 3
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    
  5. Chrome SmoothScrollFirefox SmoothWheel ref 와 같은 마우스 휠 감도에 대한 특정 애플리케이션 설정이 있습니다 .


1
Libinput 전환은 여러 가지면에서 UX 회귀 분석으로 거의 모든 하드웨어 동작을 사용자가 제어 할 수있게되었습니다.
Douglas Gaskell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.