Portál AbcLinuxu, 25. dubna 2024 17:20


Dotaz: Zpomalená myš skáče při hraní

30.6.2022 23:14 jejda | skóre: 23 | blog: jejda
Zpomalená myš skáče při hraní
Přečteno: 690×
Odpovědět | Admin
Ahojte! Před nedávnem jsem si pořídil novou myš a ve snu by mě nenapadlo, že levná čínská myš za dvě stovky bude mít brutální 1000 DPI citlivost. Nepoužívám vyšší rozlišení obrazovky jak 1024x768 a výsledek je, že v defaultním nastavení myš lítá jak střelená. Hrátky s programem xset moc nepomáhaly protože xset umí regulovat jenom akceleraci ale ne rychlost jako takovou celkově. Nakonec jsem to vyřešil přes xinput. V .xinitrc mám toto:
xinput set-prop "Logitech USB Optical Mouse" "Coordinate Transformation Matrix" 0.5 0 0 0 0.5 0 0 0 1
Takto se myš chová jakžtakž snesitelně v běžném provozu. No s tímto nastavením zas zlobí v některých wine hrách. Při kliknutí na místě se kurzor přesune asi deset centimerů od místa kliknutí směrem k levému hornímu rohu obrazovky. Na gamesení to musím pokaždé přepnout na defaultní stav kdy kurzor neskáče:
xinput set-prop "Logitech USB Optical Mouse" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
Protože ale hraju v okně a do toho ještě dělám x věcí mimo hru, tak je opruz to neustále ručně přepínat. Celé nastavení myši po zpomalení vypadá takto:
xinput list-props "Logitech USB Optical Mouse"
Device 'Logitech USB Optical Mouse':
        Device Enabled (153):   1
        Coordinate Transformation Matrix (155): 0.500000, 0.000000, 0.000000, 0.000000, 0.500000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (280):       0
        libinput Natural Scrolling Enabled Default (281):       0
        libinput Scroll Methods Available (285):        0, 0, 1
        libinput Scroll Method Enabled (286):   0, 0, 0
        libinput Scroll Method Enabled Default (287):   0, 0, 0
        libinput Button Scrolling Button (288): 2
        libinput Button Scrolling Button Default (289): 2
        libinput Button Scrolling Button Lock Enabled (290):    0
        libinput Button Scrolling Button Lock Enabled Default (291):    0
        libinput Middle Emulation Enabled (292):        0
        libinput Middle Emulation Enabled Default (293):        0
        libinput Accel Speed (294):     0.000000
        libinput Accel Speed Default (295):     0.000000
        libinput Accel Profiles Available (296):        1, 1
        libinput Accel Profile Enabled (297):   1, 0
        libinput Accel Profile Enabled Default (298):   1, 0
        libinput Left Handed Enabled (299):     0
        libinput Left Handed Enabled Default (300):     0
        libinput Send Events Modes Available (265):     1, 0
        libinput Send Events Mode Enabled (266):        0, 0
        libinput Send Events Mode Enabled Default (267):        0, 0
        Device Node (268):      "/dev/input/event7"
        Device Product ID (269):        1133, 49271
        libinput Drag Lock Buttons (282):       <no items>
        libinput Horizontal Scroll Enabled (283):       1
        libinput Scrolling Pixel Distance (301):        15
        libinput Scrolling Pixel Distance Default (302):        15
        libinput High Resolution Wheel Scroll Enabled (284):    1
Nevím, možná tam mám něco blbě. Neexistuje nějaký jinačí způsob jak zpomalit myš? Vím že velké desktopové systémy typu Gnome na to mají nastavovací klikátka no já bych si představoval spíš něco jednoduššího. Ideálně jeden příkaz do .xinitrc.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Fluttershy, yay! avatar 1.7.2022 12:22 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pobavilo.

ve snu by mě nenapadlo, že levná čínská myš za dvě stovky bude mít brutální 1000 DPI citlivost. Nepoužívám vyšší rozlišení obrazovky jak 1024x768

Že pozdravuju zpátky do roku 2002.

Neexistuje nějaký jinačí způsob jak zpomalit myš?

Jo, kluzáky a příp. podložku nahradit něčím s větším koeficientem tření. Třeba suchým zipem.

Tuším, že když si lidé pořizují myší se závažíčky, dělají to z podobných důvodů. Mimochodem, mnoho běžných myší v tom roce 2002 (včetně některých úplně obyčejných logitechů) mělo uvnitř schválně přišroubovanou kovovou cihličku.

Ve skutečnosti je meritem věci snížení citlivosti (a nebylo by od věci zaměřit se také na zrychlení, Device Accel*, potažmo zpomalení). S Coordinate Transformation Matrix jsou hlášené nevyřešené chyby (třeba tahle?).

🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
1.7.2022 13:43 jejda | skóre: 23 | blog: jejda
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Jsem to nemyslel tak, že myš líta fyzicky po stole. Je to přesně naopak. Pohnu myší o dva centimetry a kurzor přeběhne celou obrazovku. Accel Speed se dá nastavit od -1 do 1 ale to má vliv jenom pokud kurzor překovává velikou vzdálenost. Když potřebuju vybrat třeba jeden znak textu tak nesmím pohnout myší víc jak o půl milimetru. Snížení akcelerace na toto nemá vliv. Potřebuju nějak snížit citlivost na malé vzdálenosti.
Fluttershy, yay! avatar 3.7.2022 13:36 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Pohnu myší o dva centimetry a kurzor přeběhne celou obrazovku.

Tak znovu: to je funkce citlivosti a rozlišení senzoru myši jen jedna z více proměnných, které do toho vstupují.

To s podložkou bylo rovněž myšleno vážně. Ilustrovat to lze nejsnáze na „herních“ podložkách, které se vyrábějí z různých materiálů a s různými texturami (např. vzory látky) tak, aby usnadňovaly, nebo naopak brzdily klouzání – často se dokonce podle toho jmenují „Speed“ nebo „Precision“. Pro mě to byl takřka šokující zážitek, když jsem si (kdysi) pořídil za dvě stovky SteelSeries QcK (jedna z těch velmi pomalých podložek) nebo později plastovou 4HD. Samozřejmě netřeba nutně kupovat „herní“ podložku, jde najít i ekvivalentní předměty.

U takové retro konfigurace bych nicméně doporučil buď odpovídající dobovou myš (za velmi nízké ceny lze najít velmi kvalitní kousky), nebo moderní myš s možností nastavení rozlišení/citlivosti hned na úrovni firmwaru (jistě to zvládne i základní „herní“ a4tech/bloody, nebo logitech g* z výprodeje).

No a nebo „git gud“, ostatně někteří lidé si cíleně pořizují myši, se kterými jde přeběhnout 4k obrazovku pohybem myši o centimetr. Nepřijde mi to jako dobrý nápad, ale tak co už…

Pro lidi s parkinsonem nebo jinými potížemi jsou tu zase odlišná fyzická zařízení, např. veliké trackbally.

Když potřebuju vybrat třeba jeden znak textu tak nesmím pohnout myší víc jak o půl milimetru.

Klávesnice.

Snížení akcelerace na toto nemá vliv. Potřebuju nějak snížit citlivost na malé vzdálenosti.

Jsou různé akcelerační křivky, zmínka o zpomalení také nebyla náhodná.

Zároveň ano, citlivost na úrovni kurzoru lze změnit onou transformací, k níž jsem dodal odkaz na příklad implementační chyby.

🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
1.7.2022 15:27 Rovano
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebude jednodušší koupit novou myš a tuto si schovat na kdyby? Prodávaj se myši s HW tlačítky na regulaci citlivosti.
3.7.2022 23:58 jejda | skóre: 23 | blog: jejda
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak nic. Žádné systémově čisté řešení jsem nenašel, tak jsem si na to sestrojil takový provizorní udělátor který hlídá aktivní okno. Když je okno hra, přepne automaticky Matrix na rychlý default a když se nehraje, přepne myš do pomala.
#!/bin/bash
if [ -z "$DISPLAY" ]; then exit 0; fi
if [ $(pgrep -fc "$(basename "$0")") -gt 1 ]; then exit 1; fi
d="Logitech USB Optical Mouse"
m="Coordinate Transformation Matrix"

while sleep 1; do
n=$(xdotool getwindowclassname $(xdotool getwindowfocus))
s=$(xinput list-props "$d" | grep "$m" | cut -c42)
if [ "$n" = "devilutionx" -o "$n" = "wow.exe" ]; then
  if [ $s -eq 0 ]; then
    xinput set-prop "$d" "$m" 1 0 0 0 1 0 0 0 1 && notify-send "$d $m 1"
  fi
elif [ $s -eq 1 ]; then
  xinput set-prop "$d" "$m" 0.5 0 0 0 0.5 0 0 0 1 && notify-send "$d $m 0.5"
fi
echo "$n $s"
done
7.7.2022 19:51 TT
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Co neco z tohohle https://askubuntu.com/questions/766309/how-to-change-mouse-dpi, mne to nastaveni pres klikatko kupodivu ovlivnuje DPI jak je popsane. pripadne je tam xinput parametr, ale ten tady u vas nevidim ...
Fluttershy, yay! avatar 7.7.2022 21:31 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
To je to Device Accel* (zde konkrétně Constant Deceleration|Velocity Scaling|Profile), které OP výše rezolutně zamítl.
🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
8.7.2022 00:05 jejda | skóre: 23 | blog: jejda
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
On to zamítl libinput né já. :-)
xinput set-prop "Logitech USB Optical Mouse" "Device Accel Velocity Scaling" 1
property 'Device Accel Velocity Scaling' doesn't exist, you need to specify its type and format
Stejný error to hlásí i pro Device Accel Constant Deceleration a Device Accel Profile. Nikde se mi nepodařilo najít, jak tu chybějící property vyrobit.
Fluttershy, yay! avatar 8.7.2022 01:20 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Tož tak použijeme dostupné vlastnosti – Accel Speed se zápornou hodnotou.
🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
8.7.2022 00:21 jejda | skóre: 23 | blog: jejda
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Můžeš sem prosimtě dát výstup co ti vypíše xinput list-props "tvoje myš"? Zajímalo by mě co tam máš za možnosti. Mě totiž přijde, že se ty property nějak generujou u každé myši jinačí.
Řešení 1× (jejda (tazatel))
18.3. 11:10 jejda | skóre: 23 | blog: jejda
Rozbalit Rozbalit vše Re: Zpomalená myš skáče při hraní
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem po nějaké době dostal chuť si zahrát něco akčnějšího a zjistil jsem že mi ve hře nefunguje myš. Po krátkém průzkumu se ukázalo že myš odmítá fungovat protože používám posunutý coordinate matrix. Hledal jsem hledal, až jsem objevil už víc jak rok starou novinku která myslím v době kdy jsem zakládal tady ten dotaz ještě neexistovala. Uživatel si teď konečně může vyrobit custom akcelerační křivku z čísel přesně na míru svojim potřebám. Metodou tak trochu pokus-omyl jsem se dobral k tomuto nastavení:
xinput set-prop "Logitech USB Optical Mouse" "libinput Accel Custom Motion Points" 0 2 8 32
xinput set-prop "Logitech USB Optical Mouse" "libinput Accel Custom Motion Step" 4
xinput set-prop "Logitech USB Optical Mouse" "libinput Accel Profile Enabled" 0 0 1
Takto se mi myš chová ideálně. Na krátké vzdálenosti je citlivost malá a na veliké velká.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.