Vraag Zorg dat de xinput-instellingen blijven bestaan ​​nadat de usb-muis is uitgeschakeld (nog steeds verbonden)


Ik wil de Xinput-instellingen voor mijn USB-muis behouden nadat deze is in- en uitgeschakeld. Hoe kan ik dit evenement volgen?

Dit werkt niet, omdat ik nooit de USB-ontvanger loskoppeld: Hoe de Xinput-instellingen blijven bestaan ​​nadat apparaten zijn losgekoppeld, opnieuw zijn aangesloten en na afsluiten, herstarten, enz.?

Voor zover ik begrepen heb, kan udev worden gebruikt voor HW-detectietoepassingen, maar het lijkt niet in staat om statuswijzigingen in het apparaat te detecteren, zoals een Logitech Unifying-ontvanger.

Ik denk dat de sleutel om dit opgelost te krijgen is om met succes gebeurtenissen in de ontvanger bij te houden en een script te schrijven om de opdracht xinput uit te voeren. Zou iemand weten hoe ik deze gebeurtenis kan detecteren? Solaar kan dit natuurlijk wel detecteren, maar dat betekent niet dat het eenvoudig is voor een niet-deskundige Linux-gebruiker.

Bedankt!


2
2017-10-13 11:35


oorsprong


Ik heb hetzelfde probleem. Wanneer ik de muis loskoppel en opnieuw verbind, moet ik de xinput-opdracht opnieuw uitvoeren. Ik ben al weken op zoek naar een oplossing zonder succes. Geplaatst op unix stack exchange, linux mint, en alle antwoorden hier behandelen dit niet. - David Parks
Wat is het exacte xinput opdracht die u gebruikt en de instellingen die u instelt? Ik denk dat ik een script voor dat doel kan schrijven - Sergiy Kolodyazhnyy
Ik heb een Logitech MX Pro Mouse en een Logitech K800-toetsenbord met achtergrondverlichting aangesloten op een verenigde ontvanger en het is zonder problemen om de muis uit en weer in of uit te schakelen of om de USB-dongle los te koppelen en weer aan te sluiten. Er zijn geen speciale kernelmodules geïnstalleerd, alles werkte gewoon uit de doos. Wat voor soort muis heb je? - WinEunuuchs2Unix
@ WinEunuuchs2Unix heeft u de toetsen opnieuw toegewezen met xinput? Blijven deze hoofdtoewijzingen behouden wanneer het apparaat wordt losgekoppeld en opnieuw wordt aangesloten? - David Parks


antwoorden:


Ik heb dit probleem opgelost op basis van een suggestie die afkomstig was van een andere post in unix stack exchange.

In een notendop heb ik een achtergrond-shell-script dat elke 2 seconden lust om naar een verandering in de muis te zoeken, wanneer het een vindt, wordt de xinput-opdracht opnieuw uitgevoerd.

De originele (en eenvoudigere) oplossing wordt hier gepost:

https://unix.stackexchange.com/questions/332573/how-to-make-xinput-commands-permanent/340594#340594

Dit is het script dat ik binnenloop ~/.xinitrc:

# Map mouse button 8 (top right) to button 2 (top left) and vice versa, run when changes to the mouse occur
while true; do
        NEW_MOUSEID=$(xinput | grep "Expert Mouse" | grep -o -E '[0-9]+' | head -n 1)
        if [ "$MOUSEID" != "$NEW_MOUSEID" ]; then
                MOUSEID=$NEW_MOUSEID
                if [ "$MOUSEID" != "" ]; then
                        xinput --set-button-map $MOUSEID 1 8 3 4 5 6 7 2 9 10 11 12
                fi
        fi
        sleep 2
done &

Basis structuur:

  • Kijk naar veranderingen in de USB-ID vanaf xinput elke 2 seconden
  • Als de muis-ID leeg is, is deze niet verbonden, voer xinput niet uit (u krijgt een foutmelding als u dit doet)
  • Het ontleden van de xinput commando retourneert gewoon de USB-apparaat-ID voor muis "Expert Mouse", ex: "14"

Merk op dat het originele antwoord suggereert monitoring voor veranderingen in lsusb en dan het commando opnieuw uitvoeren, dat werkt net zo goed.


0
2018-01-27 17:22