Vô hiệu hóa tăng tốc chuột trong X.Org (Linux)


11

Đây là phiên bản Linux của tính năng tăng tốc chuột của tôi trong câu hỏi về Mac OS X. Hy vọng lần này tôi sẽ nhận được câu trả lời.

Tôi mệt mỏi với việc tăng tốc chuột và muốn có một phản ứng chuột hoàn toàn tuyến tính. Điều này có thể dễ dàng đạt được thông qua bất kỳ phương pháp nào trong số 5 phương pháp (một số ngụ ý tinh tế) trên trang wiki X.Org về tăng tốc con trỏ . Tuy nhiên, họ cũng vô hiệu hóa quy mô vận tốc .

Tôi không muốn ánh xạ 1: 1 giữa tọa độ thiết bị và màn hình. Tôi muốn ánh xạ 1: N trong đó N là hằng số . Có ý kiến ​​gì không?

Câu trả lời:


15

Cách duy nhất tôi thấy rằng nó hoạt động (và tôi chỉ thử trên Ubuntu) là với xinputlệnh.

Trước tiên, bạn phải xác định số thiết bị cho chuột bạn muốn thay đổi:

# 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)]

Bây giờ, trong ví dụ này tôi sẽ chơi với con chuột Microsoft của tôi. id = 10

Bây giờ hãy xem những thuộc tính nào mà thiết bị này có thể xử lý:

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

Giá trị này là cách trình điều khiển tăng tốc:

-1: không có gia tốc hoặc giảm tốc con trỏ phụ thuộc vào vận tốc. Nếu giảm tốc liên tục cũng không được sử dụng, xử lý chuyển động bị triệt tiêu, tiết kiệm một số chu kỳ.

0: cổ điển (mặc định) tương tự như hành vi cũ, nhưng dễ dự đoán hơn. Chọn giữa 'đa thức' và 'đơn giản' dựa trên ngưỡng = /! = 0.

1: phụ thuộc vào thiết bị khả dụng nếu trình điều khiển phần cứng cài đặt nó. Có thể đến cho synap.

2: đa thức Cân đa thức: vận tốc đóng vai trò là hệ số, gia tốc là số mũ. Rất có thể sử dụng, hồ sơ đề nghị.

3: quy mô tuyến tính trơn tru chủ yếu là tuyến tính, nhưng với một khởi đầu trơn tru (phi tuyến tính).

4: Chuyển đổi đơn giản giữa tăng tốc / không tương thích, nhưng với phạm vi chuyển tiếp trơn tru. Điều này có vấn đề cơ bản là tăng tốc trên hai niveaus, trong đó gia tốc không phụ thuộc vào vận tốc. Theo truyền thống, mặc định.

5: công suất tăng tốc bởi một chức năng. vận tốc là số mũ ở đây. Tuân thủ ngưỡng. Sẽ dễ dàng khó kiểm soát, vì vậy điều quan trọng là bạn đã điều chỉnh đúng ước tính vận tốc của mình.

6: tuyến tính chỉ tuyến tính đến vận tốc và gia tốc. Đơn giản và sạch sẽ.

7: giới hạn trơn tru khi tăng tốc, tăng tối đa ở ngưỡng, nơi nó trở nên bằng phẳng (bị giới hạn).

Vì vậy, từ đó chúng ta có thể thấy rằng nếu chúng ta đặt thuộc tính này thành -1 thì nó sẽ vô hiệu hóa hoàn toàn gia tốc.

$ xinput set-prop 10 259 -1

Vì vậy, bây giờ chúng tôi không có gia tốc, nhưng đó có phải là những gì chúng tôi muốn? Con chuột bây giờ hơi chậm. Đáng buồn thay, nó là như thế. Khi tăng tốc bị vô hiệu hóa, bạn có được mối quan hệ 1: 1 giữa chuột và màn hình. Bạn di chuyển chuột sang trái một chấm và con trỏ chuột di chuyển một pixel trái. Nếu có một cách để nhân chuyển động đầu vào (giả sử là 2) thì mọi pixel khác trên mỗi trục sẽ không thể truy cập được vào chuột. Điều đó sẽ làm cho việc định vị chính xác của chuột khá khó khăn. Cài đặt 'độ nhạy' trong một số bảng điều khiển chuột GUI thực sự trái ngược với những gì bạn mong đợi - độ nhạy nhất là tỷ lệ 1: 1 - đó là khả năng tăng tốc khiến nó dường như nhanh hơn rất nhiều.

Vì vậy, bạn muốn chuyển động nhanh hơn, nhưng bạn không muốn tăng tốc. Cách duy nhất bạn có thể làm là trong phần cứng. Về cơ bản, bạn sẽ cần mua một con chuột nhạy cảm hơn. Hãy tìm loại có DPI cao hơn (Dots Per Inch - có, giống như máy in). Tôi thấy Microsoft IntelliEye cũ của tôi đủ nhạy cảm với khả năng tăng tốc bị vô hiệu hóa để có thể sử dụng được.

Hoặc có thể con chuột của bạn quá nhạy cảm? Ngay cả khi tăng tốc bị vô hiệu hóa, nó quá nhanh so với sở thích của bạn? Vâng, đó là nơi

Device Accel Constant Deceleration (260):      1.0000

cài đặt đi vào. Đây là một tỷ lệ giảm tốc (hoặc giải mẫn cảm) không đổi. Theo mặc định, đó là 1: 1 nhưng sẽ lấy bất kỳ số nào (thậm chí là phân số) trên đó. Để có được một chút chậm chuột:

$ xinput set-prop 10 260 1.2

Hoặc một sự chậm lại lớn cho công việc thực sự tinh tế:

$ xinput set-prop 10 260 10

Hoặc đưa nó trở lại bình thường:

$ xinput set-prop 10 260 1

Điều này hoạt động ngay cả khi cấu hình tăng tốc được đặt thành -1 (Đã tắt).


Điều gì xảy ra nếu tôi muốn độ nhạy thấp hơn với chuột có DPI cao? Không, xin lỗi, ánh xạ 1: 1 không hoạt động. Và giá trị tiếp theo không phải là 1: 2, bạn có thể làm, giả sử, 1: 1.2. Trên thực tế, tôi khá chắc chắn rằng mã tăng tốc hiện tại có hàng triệu cách khác nhau để tinh chỉnh tốc độ và đạt được độ phân giải pixel phụ. Nếu chỉ có một hồ sơ "không tăng tốc" - trái ngược với "vô hiệu hóa hoàn toàn các chương trình con tăng tốc".
aib

@aib Kiểm tra chỉnh sửa của tôi
Majenko

Tôi xin lỗi, tôi không cần giảm tốc con trỏ. (Vâng, có lẽ nó được, nhưng sau khi tôi đã có quy mô chuột của tôi di chuyển lên, và không mua một con chuột mới, cảm ơn bạn.)
Aib

Điều này nên được chấp nhận. Tôi đã không nhận thức được rằng việc giảm tốc có thể là float và không chỉ là số nguyên. Cảm ơn! Không có cấu hình nào thực sự tắt tăng tốc (không giống như trong các cửa sổ).
inf3rno

Trong Debian Stretch, chúng không còn hoạt động nữa: sau khi nâng cấp, thuộc tính Giảm tốc liên tục của thiết bị bị mất và những gì tôi có cho con chuột này (xinput --list-props) dường như không còn ảnh hưởng đến nó nữa (để lại cho tôi một con chuột vô dụng đêm).
Jubatian

2

Nhìn qua các nguồn của X.org, chơi xung quanh với một máy chủ tùy chỉnh và thực hiện một số thử nghiệm ám ảnh bằng chuột của tôi, tôi có thể nói rằng cấu hình giới hạn hiện tại (7) đạt được điều này khi thresholdgiá trị được đặt thành 0. accelerationGiá trị sau đó trở thành vận tốc thang đo (vô hướng?).

Vì thế:

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

Phần thứ hai cũng có thể được đặt bằng bảng cài đặt chuột của môi trường máy tính để bàn của bạn. Đừng quên rằng nó cần phải ở x/ydạng cho các giá trị không nguyên, ví dụ: 16/101.6.

Ngoài ra còn có một số cài đặt khác (giảm tốc, v.v.) để điều chỉnh, nhưng điều này quan tâm đến phần tồi tệ nhất của vấn đề. Một số tệp cấu hình nên được chỉnh sửa lâu dài, nhưng một lần nữa, điều quan trọng là nó có thể.

Chỉnh sửa: Để lâu dài, bạn có thể thêm phần này vào xorg.xconf:

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

Từ đó trở đi, bạn có thể sử dụng cài đặt chuột của môi trường máy tính để bàn của mình, như tôi đã đề cập. Tuy nhiên, nếu bạn muốn một xorg.confgiải pháp hoàn chỉnh :

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 Cảm ơn bạn. Thậm chí hoạt động cho chế độ ngủ.
Simon A. Eugster

0

Tôi biết điều này đã cũ, nhưng tôi nghĩ rằng nó có giá trị để thêm một câu trả lời cho một câu hỏi đã được hỏi. XSET sẽ làm công việc cho bạn rất có thể. Lệnh tôi chạy là xset m 1 1...

Nội dung trang man cho xset tôi đã tuyển chọn ở đây từ xset (1) cho bạn về các tùy chọn chuột:

chuột

Tùy chọn m điều khiển các tham số chuột; nó có thể được viết tắt là 'm'. Các tham số cho chuột là acceleration' andngưỡng '. Gia tốc có thể được chỉ định là một số nguyên hoặc là một phần đơn giản. Chuột, hoặc bất kỳ con trỏ nào mà máy được kết nối, sẽ đi đến acceleration' times as fast when it travels more thanpixel 'trong một thời gian ngắn. Bằng cách này, chuột có thể được sử dụng để căn chỉnh chính xác khi nó được di chuyển chậm, nhưng nó có thể được đặt để di chuyển trên màn hình trong một cái búng tay khi muốn. Một hoặc cả hai tham số cho tùy chọn m có thể được bỏ qua, nhưng nếu chỉ có một tham số, nó sẽ được hiểu là gia tốc. Nếu không có tham số hoặc cờ 'mặc định' được sử dụng, mặc định hệ thống sẽ được đặt.

Nếu threshold' parameter is provided and 0, thetham số gia tốc '> sẽ được sử dụng theo cấp số nhân của công thức> tự nhiên và liên tục hơn, điều khiển chính xác cho chuyển động chậm nhưng tầm với lớn cho chuyển động nhanh> và chuyển tiếp lũy tiến cho các chuyển động ở giữa. Giá trị 'tăng tốc' được đề xuất trong trường hợp này là 3/2 đến 2, nhưng không giới hạn trong phạm vi đó.

Tuyên bố từ chối trách nhiệm: điều này không tồn tại trong một relogin / khởi động lại mà không có thêm một số mánh khóe ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.