openSUSEa suomeksi
openSUSE => Turvallisuus ja laitteisto => Aiheen aloitti: SuperOscar - 03.09.2024 - klo:20:53
-
Sain taannoin kohtuuhinnalla ErgoSlider Plus (https://www.verkkokauppa.com/fi/product/126109/Ergoslider-Plus-hiiriohjain-musta) -merkkisen ”palikkahiiren” (en tosin Verkkokaupasta, minne linkki vie; tuolla oli vain sopivasti kuva).
Laite toimii muuten mukavasti, mutta ongelmana on hiiriosoittimen jatkuva liike kirjoittaessani: peukaloni valahtavat juuri sen verran alas, että osuvat hiirtä liikuttavaan palikkaan.
Laitteella ei ole omaa ajuria eikä siksi myöskään mitään säätöjä. Harvinaisuutensa takia tällaisille laitteille ei ole mitään yleistä tukea Linuxin graafisissa käyttöympäristöissä. Laite kuitenkin käyttää tuiki tavallista libinput-ajuria, kuten tästä näkyy:
tn@kant% grep "input driver" /var/log/Xorg.0.log
…
[ 17.955] (II) Using input driver 'libinput' for 'Ergoslider Mouse'
…
[ 18.003] (II) Using input driver 'libinput' for 'Ergoslider System Control'
[ 18.029] (II) Using input driver 'libinput' for 'Ergoslider Keypad'
[ 18.065] (II) Using input driver 'libinput' for 'Ergoslider Consumer Control'
(poistin epäolennaisuuksia).
Keksisikö joku keinon, millä voisin jollakin tavoin komentaa hiiren ohjelmallisesti pysymään paikallaan? Sen voisi sitten vaikka kytkeä pikanäppäimeen. Ikään kuin ”hiiri seis” / ”hiiri liikkeelle”?
-
Ubuntu-foorumin ohjeen avulla löytyi ratkaisu. Kytkin Super+K-pikanäppäimen tämmöiseen häthätää kyhättyyn skriptiin:
#!/bin/sh
MOUSE="Ergoslider Mouse"
STATEFILE=/tmp/ergoslider
if [ ! -e $STATEFILE ]; then
xinput --disable "$MOUSE"
touch $STATEFILE
else
xinput --enable "$MOUSE"
rm $STATEFILE
fi
Tyhjä /tmp/ergoslider-tiedosto toimii siis vain tilan lippuna, koska en keksinyt, miten xinput osaisi lukea laitteen senhetkisen tilan.
MUOKS: Löysin keinon selvittää tila, vaikka se edellyttää greppaamista pitkästä listasta:
#!/bin/sh
MOUSE="Ergoslider Mouse"
if xinput --list-props "$MOUSE" | grep "Device Enabled" | grep -q '1$'; then
xinput --disable "$MOUSE"
else
xinput --enable "$MOUSE"
fi
-
Toistaiseksi lyhin versio:
#!/bin/sh
MOUSE="Ergoslider Mouse"
xinput list-props "$MOUSE" | grep -Eq "Device Enabled.+1\$" && xinput disable "$MOUSE" || xinput enable "$MOUSE"