Вимкнення прискорення миші в X.Org (Linux)


11

Це версія Linux мого відключення миші прискорення в Mac OS X питання. Сподіваюся, цього разу я отримаю відповідь.

Я втомився від прискорення миші і хочу отримати абсолютно лінійну відповідь миші. Це легко досягти за допомогою будь-якого з 5-ти методів (які дещо маються на увазі) на сторінці вікі X.Org щодо прискорення покажчика . Однак вони також відключають масштабування швидкості .

Я не хочу 1: 1 зіставлення координат пристрою та екрана. Я хочу 1: N відображення, де N - константа . Будь-які ідеї?

Відповіді:


15

Єдиний спосіб, коли я виявив, що працює (і я пробував лише Ubuntu), - це 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 (Dots per Inch - так, як і принтер). Я вважаю, що мій старий 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 Перевір мою
редакцію

Вибачте, мені не потрібне уповільнення указки. (Ну, може, і є, але після того, як я змінив масштаб руху миші вгору і не купуючи нову мишу, дякую.)
аїб

Це слід прийняти. Я не усвідомлював, що уповільнення може бути плавним, а не просто цілим. Спасибі! Жоден профіль насправді не вимикає прискорення (на відміну від вікон).
inf3rno

У Debian Stretch вони більше не працюють: після оновлення властивість Device Accel Constant Deceleration зникла, і те, що я маю для цієї миші (xinput --list-props), схоже, більше не впливає на це (залишаючи мене з нічна марна миша).
Джубатіан

2

Переглядаючи джерела X.org, граючи з користувальницьким сервером і роблячи нав'язливі тестування за допомогою миші, я сміливо можу сказати, що поточний обмежений профіль (7) досягає цього, коли thresholdзначення встановлюється на 0. accelerationЗначення потім стає швидкістю. скалер (скаляр?).

Так:

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

Другу частину можна також встановити за допомогою панелі налаштувань миші на робочому столі. Не забувайте, що він повинен бути у x/yформі для не цілих значень, наприклад 16/10для 1.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 Дякую Навіть працює в режимі сну.
Саймон А. Егстер

0

Я знаю, що це старе, але я думаю, що варто додати відповідь на вже задане питання. XSET зробить роботу найімовірніше. Команда, яку я виконував, була xset m 1 1...

Вміст чоловічої сторінки для xset Я для вас запропонував варіанти xset (1) для варіантів миші:

миша

Параметр m керує параметрами миші; це може бути скорочено до 'm'. Параметри для миші - acceleration' andпоріг '. Прискорення можна вказати як ціле число, або як простий дріб. Миша або будь-який вказівник, до якого підключена машина, acceleration' times as fast when it travels more thanза короткий час перейде до порога пікселів. Таким чином, миша може бути використана для точного вирівнювання, коли вона рухається повільно, але вона може бути налаштована для переміщення по екрану в момент руху зап'ястя. Один або обидва параметри для параметра m можуть бути опущені, але якщо задано лише один, він буде інтерпретуватися як прискорення. Якщо не використовуються параметри або прапорець «за замовчуванням», система буде встановлена ​​за замовчуванням.

Якщо параметр threshold' parameter is provided and 0, theприскорення '> буде використовуватися в експоненті більш природної і безперервної> формули, даючи точний контроль за повільним рухом, але великий обсяг для швидкого> руху, і прогресивний перехід для рухів між ними. Рекомендоване значення "прискорення" в цьому випадку становить 3/2 до 2, але не обмежується цим діапазоном.

Відмова: це не переживе перегляд / перезавантаження без додаткових хитрощів ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.