X.Org에서 마우스 가속 비활성화 (Linux)


11

이것은 Mac OS X에서 마우스 가속 비활성화 질문 의 Linux 버전입니다 . 이번에는 답변을 드리겠습니다.

마우스 가속에 지쳤으며 완전히 선형적인 마우스 응답을 원합니다. 이것은 포인터 가속 에 대한 X.Org 위키 페이지 의 5 개 정도의 메소드 (일부 미묘하게 암시)를 통해 쉽게 달성 할 수 있습니다 . 그러나 속도 스케일링도 비활성화 합니다.

장치와 화면 좌표 사이의 1 : 1 매핑을 원하지 않습니다. N은 상수 인 1 : N 매핑을 원합니다 . 어떤 아이디어?

답변:


15

내가 찾은 유일한 방법 (그리고 우분투에서만 시도한 방법)xinput명령을 사용하는 것입니다.

먼저 변경하려는 마우스의 장치 번호를 식별해야합니다.

# xinput list
â¡ Virtual core pointer                         id=2    [master pointer  (3)]
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
â   â³ Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)   id=10   [slave  pointer  (2)]
⣠Virtual core keyboard                        id=3    [master keyboard (2)]
    â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
    â³ Power Button                             id=6    [slave  keyboard (3)]
    â³ Power Button                             id=7    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=8    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=9    [slave  keyboard (3)]
    â³ IR-receiver inside an USB DVB receiver   id=11   [slave  keyboard (3)]

이제이 예에서는 Microsoft 마우스로 게임을합니다. id = 10

이제이 장치가 처리 할 수있는 속성을 살펴 보겠습니다.

# xinput list-props 10
Device 'Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)':
    ... cruft cut ...
    Device Accel Profile (259):     3
    ... cruft cut ...

이 값은 운전자가 가속을 처리하는 방법입니다.

-1 : 속도 의존 포인터 가속 또는 감속이 없습니다. 일정한 감속도 사용되지 않으면 모션 처리가 억제되어 일부 사이클이 절약됩니다.

0 : 클래식 (기본값)은 이전 동작과 유사하지만 더 예측 가능합니다. 임계 값 = /! = 0을 기준으로 '다항식'과 '단순'중에서 선택합니다.

1 : 하드웨어 드라이버가 설치하면 장치에 따라 다릅니다 . 시냅스가 올 수 있습니다.

2 : 다항식 스케일 다항식 : 속도는 계수로 작용하며 가속은 지수입니다. 매우 유용한 권장 프로필입니다.

3 : 부드러운 선형 스케일은 대부분 선형이지만 부드러운 (비선형) 시작입니다.

4 : 가속 / 가속화 사이의 간단한 전환, 그러나 부드러운 전환 범위. 이것은 가속도가 속도와 독립적으로 유지되는 두 개의 니베에서 가속하는 근본적인 문제가 있습니다. 그러나 전통적으로 기본값입니다.

5 : 전원 기능에 의해 전원이 가속됩니다. 여기서 속도는 지수입니다. 임계 값을 준수합니다. 쉽게 제어하기 어려울 수 있으므로 속도 추정을 올바르게 조정하는 것이 중요합니다.

6 : 속도와 가속도에 선형입니다. 간단하고 깨끗합니다.

7 : 제한 은 가속으로 부드럽게 올라가 임계 값에서 최대로 올라가 평평 해집니다 (제한됨).

따라서이 속성을 -1로 설정하면 가속이 완전히 비활성화됩니다.

$ xinput set-prop 10 259 -1

이제 우리는 가속이 없지만 그것이 원하는 것입니까? 마우스가 조금 느려졌습니다. 슬프게도 그 방법입니다. 가속을 비활성화하면 마우스와 디스플레이 사이에 1 : 1 관계가 있습니다. 마우스를 한 왼쪽으로 움직이고 마우스 포인터를 한 픽셀 왼쪽으로 움직입니다. 입력 움직임에 2를 곱하는 방법이 있다면, 각 축의 다른 모든 픽셀은 마우스에 접근 할 수 없습니다. 그것은 마우스의 정확한 위치를 꽤 어렵게 만듭니다. 일부 GUI 마우스 제어판의 '민감도'설정은 실제로 예상 한 것과 반대로 작동합니다. 가장 민감한 것은 1 : 1 비율입니다. 가속도가 너무 빨라 보입니다.

따라서 더 빠른 움직임을 원하지만 가속을 원하지 않습니다. 그렇게 할 수있는 유일한 방법은 하드웨어입니다. 기본적으로 더 민감한 마우스를 구입해야합니다. DPI가 높은 제품을 찾으십시오 (1 인치당 도트 수-프린터와 동일). 내 오래된 Microsoft IntelliEye는 가속 기능을 사용할 수 없을 정도로 민감합니다.

아니면 마우스가 너무 민감합니까? 가속이 비활성화되어 있어도 원하는 속도가 너무 빠릅니까? 글쎄, 그 곳은

Device Accel Constant Deceleration (260):      1.0000

일정한 감속비 (또는 건조) 비율입니다. 기본적으로 1 : 1이지만 그보다 많은 수 (분수)가 필요합니다. 마우스를 약간 느리게하려면 :

$ xinput set-prop 10 260 1.2

또는 정말 섬세한 작업에 대한 엄청난 속도 저하 :

$ xinput set-prop 10 260 10

또는 정상으로 되 돌리십시오.

$ xinput set-prop 10 260 1

이것은 가속 프로파일이 -1 (비활성화)로 설정된 경우에도 작동합니다.


내가 원하는 경우 어떤 일이 발생 높은 DPI 마우스 감도를? 죄송합니다. 1 : 1 매핑은 작동하지 않습니다. 그리고 다음 값은 1 : 2가 아닙니다. 예를 들어 1 : 1.2입니다. 사실, 현재 가속 코드에는 속도를 미세 조정하고 서브 픽셀 해상도를 달성하는 백만 가지의 다른 방법이 있다고 확신합니다. "가속 서브 루틴을 완전히 비활성화"하는 것과 반대로 "가속 없음"프로파일 만있는 경우.
aib

@aib 내 편집 확인
Majenko

죄송합니다. 필요한 포인터 감속이 아닙니다. (그럴 수도 있지만, 마우스 움직임을 확장 한 후 새 마우스를 구입하지 않아도 감사합니다.)
aib

수락해야합니다. 감속이 정수가 아니라 부동 일 수 있음을 알지 못했습니다. 감사! none 프로파일은 윈도우와 달리 가속을 실제로 끕니다.
inf3rno

데비안 스트레치에서는 더 이상 작동하지 않는 것 같습니다. 업그레이드 후 Device Accel Constant Deceleration 속성이 사라지고이 마우스 (xinput --list-props)에 대해 가지고있는 것이 더 이상 영향을 미치지 않는 것 같습니다. 밤 쓸모없는 마우스).
Jubatian

2

사용자 정의 서버와 장난 내 마우스로 약간의 강박 테스트를하고, X.org의 소스를 통해 보면, 나는 안전하게 현재 말할 수 제한 때 프로필 (7)이 달성 threshold값이 0으로 설정되어있는 acceleration값은 속도가됩니다 스케일러 (스칼라?).

그래서:

xinput set-prop <device> "Device Accel Profile" 7
xset m <velocity> 0

두 번째 부분은 데스크탑 환경의 마우스 설정 패널을 사용하여 설정할 수도 있습니다. x/y정수가 아닌 값 (예 : 16/101.6)의 형식 이어야 함을 잊지 마십시오 .

조정할 다른 설정 (감속 등)도 있지만 문제의 최악의 부분을 처리합니다. 일부 구성 파일은 영구성을 위해 편집해야하지만 중요한 것은 가능하다는 것입니다.

편집 : 영속성을 위해 이것을 다음에 추가 할 수 있습니다 xorg.xconf:

Section "InputClass"
        Identifier "Mouse with No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile" "7"
EndSection

위에서 언급했듯이 데스크탑 환경의 마우스 설정을 사용할 수 있습니다. 그러나 완벽한 xorg.conf솔루션 을 원한다면 :

Section "InputClass"
        Identifier "Mouse With No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile"     "7" # "limited" profile
        Option "AccelerationNumerator"   "2" # these adjust the sensitivity
        Option "AccelerationDenominator" "1" # these adjust the sensitivity
        Option "AccelerationThreshold"   "0" # this disables acceleration
                                             # in the "limited" profile
EndSection

<3 감사합니다. 수면 모드에서도 작동합니다.
Simon A. Eugster

0

나는 이것이 오래된 것을 알고 있지만 이미 질문에 대한 답변을 추가하는 것이 좋습니다. XSET 가 귀하를 대신하여 업무를 수행합니다. 내가 달린 명령은 xset m 1 1...

xset에 대한 맨 페이지 내용 은 마우스 옵션을 위해 xset (1) 에서 정리했습니다 .

m 옵션은 마우스 매개 변수를 제어합니다. 'm'으로 축약 될 수 있습니다. 마우스의 매개 변수는 acceleration' and임계 값입니다. 가속도는 정수 또는 간단한 분수로 지정할 수 있습니다. 마우스 또는 머신이 연결된 모든 포인터 acceleration' times as fast when it travels more than는 짧은 시간에 임계 값 픽셀 로 이동 합니다. 이런 방식으로 마우스를 천천히 움직일 때 정확한 정렬을 위해 마우스를 사용할 수 있지만 원하는 경우 손목을 가볍게 두드리면서 화면을 가로 질러 이동하도록 설정할 수 있습니다. m 옵션에 대한 매개 변수 중 하나 또는 둘 다를 생략 할 수 있지만 하나만 제공하면 가속으로 해석됩니다. 매개 변수가 없거나 'default'플래그가 사용되면 시스템 기본값이 설정됩니다.

threshold' parameter is provided and 0, the가속 파라미터가보다 자연스럽고 연속적인 공식의 지수에서 사용될 경우, 슬로우 모션은 정밀하게 제어 할 수 있지만 빠른 모션은 큰 범위로 이동하고 그 사이의 모션은 점진적으로 전환됩니다. 이 경우 권장되는 '가속'값은 3/2 ~ 2이지만 해당 범위로 제한되지 않습니다.

면책 조항 : 이것은 추가적인 속임수없이 재 로그인 / 재부팅 후에도 지속되지 않습니다 ...

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