Kirjoittaja Aihe: "Roller mouse" ja näppäimistön käyttö [YKSI RATKAISU LÖYTYNYT]  (Luettu 2170 kertaa)

SuperOscar

  • Käyttäjä
  • Viestejä: 4060
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Sain taannoin kohtuuhinnalla ErgoSlider Plus -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:

Koodia: [Valitse]
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”?
« Viimeksi muokattu: 04.09.24 - klo:18.45 kirjoittanut SuperOscar »
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: "Roller mouse" ja näppäimistön käyttö
« Vastaus #1 : 04.09.24 - klo:09.09 »
Ainakin tasohiirille noita ohjeita on eli yrittäisin hakea sellaisia. Archin wiki ainakin neuvoo käyttämään xinput-komentoa, jonka voi sitten yhdistää pikanäppäimeen (xinput disable ja xinput enable komennot siis omiin näppäimiinsä tai skriptillä samaan). https://wiki.archlinux.org/title/Libinput#Using_xinput

Tasohiirille yleensä käytössä on myös käytöstä poisto kirjoittaessa, mutta en tiedä osaako libinput tehdä niin mielivaltaiselle osoitinlaitteelle. Voisi ainakin koittaa tehdä tätä hiirtä vastaavan osion X:n asetustiedostoon ja laittaa tuon DisableWhileTyping arvoon 1. https://wiki.archlinux.org/title/Libinput#Enable_the_touchpad_while_typing
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

SuperOscar

  • Käyttäjä
  • Viestejä: 4060
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: "Roller mouse" ja näppäimistön käyttö
« Vastaus #2 : 04.09.24 - klo:18.32 »
Ainakin tasohiirille noita ohjeita on eli yrittäisin hakea sellaisia. Archin wiki ainakin neuvoo käyttämään xinput-komentoa, jonka voi sitten yhdistää pikanäppäimeen (xinput disable ja xinput enable komennot siis omiin näppäimiinsä tai skriptillä samaan).

Ainakin tähän asti toimii! Komento

Koodia: [Valitse]
xinput disable "Ergoslider Mouse"
poistaa hiiren onnistuneesti käytöstä ja enable-vaihtoehto palauttaa sen käyttöön. Kokeilen ensin tätä vaihtoehtoa.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

SuperOscar

  • Käyttäjä
  • Viestejä: 4060
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: "Roller mouse" ja näppäimistön käyttö
« Vastaus #3 : 04.09.24 - klo:18.43 »
Tuonnempana voin kokeilla vielä hienostuneempia ratkaisuja, mutta nyt kytkin Super+K-pikanäppäimen tällaiseen skriptiin:

Koodia: [Valitse]
#!/bin/sh

MOUSE="Ergoslider Mouse"
STATEFILE=/tmp/ergoslider
if [ ! -e $STATEFILE ]; then
    xinput --disable "$MOUSE"
    touch $STATEFILE
else
    xinput --enable "$MOUSE"
    rm $STATEFILE
fi

Tuossa siis käytetään /tmp-kansioon sijoitettua tyhjää tiedostoa lippuna, koska en keksinyt tapaa ottaa xinput-komennolla selville laitteen senhetkistä tilaa.

Muoks: tila löytyykin komennolla --list-props, jota pitää grepata.

Koodia: [Valitse]
#!/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
« Viimeksi muokattu: 04.09.24 - klo:19.19 kirjoittanut SuperOscar »
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11