Muis

Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux

Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan invoergebeurtenissen op zowel Wayland als X verwerken en kan verschillende invoerapparaten aan, waaronder touchscreen-displays en styluspennen.

In dit artikel wordt uitgelegd hoe u verschillende opties kunt wijzigen voor een invoerapparaat dat wordt afgehandeld door de libinput-bibliotheek. Om de beschikbare opties te controleren en te configureren, wordt een opdrachtregelprogramma met de naam "xinput" gebruikt.

Merk op dat deze handleiding alleen werkt met de X-displayserver. Voor Wayland moet je vertrouwen op de systeeminstellingen die door de distributie worden geleverd of een gecentraliseerd configuratiehulpprogramma gebruiken zoals gsettings.

Lijst invoerapparaten

Xinput is standaard voorgeïnstalleerd op Ubuntu. Als het om de een of andere reden niet op uw systeem is geïnstalleerd, voert u de onderstaande opdracht uit om het te installeren:

$ sudo apt install xinput

Voer de onderstaande opdracht uit om alle ingebouwde en externe invoerapparaten weer te geven die op uw systeem zijn aangesloten:

$ xinput --lijst

U ziet wat uitvoer in terminal als volgt:

De vermelding onder "Virtuele kernaanwijzer" (gemarkeerd door rode pijlen) is een bedrade USB-muis die is aangesloten op mijn systeem. U moet de exacte naam of id gebruiken die wordt weergegeven in de bovenstaande schermafbeelding om de muis- of touchpad-instellingen te configureren via de xinput-opdrachtregeltool.

Merk op dat in de bovenstaande schermafbeelding xinput eigenschappen toont van apparaten die op mijn systeem zijn aangesloten. Apparaatnamen en ID's verschillen voor uw systeem, afhankelijk van uw hardwareconfiguratie en externe apparaten die zijn aangesloten via USB, Bluetooth of draadloze ontvangers.

Eigenschappen van een aangesloten apparaat bekijken

Om de huidige status en verschillende actieve opties voor het hierboven genoemde apparaat te zien, voert u een opdracht uit in de volgende indeling:

$ xinput --list-props "id"

Voor de hierboven genoemde Dell-muis zou de opdracht zijn:

$ xinput --list-props 8

Er is een beperking aan het gebruik van deze opdracht. ID's die worden weergegeven in de uitgang van de terminal veranderen meestal wanneer u een vermeld apparaat op een andere poort aansluit. Omdat de ID's steeds veranderen, bestaat er altijd een kans dat instellingen voor een ander apparaat per ongeluk worden gewijzigd. Om dit probleem op te lossen, is het beter om de volledige apparaatnaam als identifier te gebruiken in plaats van de id. Dus voor de hierboven genoemde Dell-muis zou de betere opdracht zijn:

$ xinput --list-props "PixArt Dell MS116 USB optische muis"

Het hieronder in rode rechthoek gemarkeerde gebied toont de huidige configuratie voor het apparaat. U kunt alleen opties wijzigen die worden weergegeven in de uitvoer. Afhankelijk van de mogelijkheden van uw apparaat, kunnen sommige extra opties worden vermeld, terwijl andere helemaal kunnen worden weggelaten.

Eigenschappen van een aangesloten apparaat wijzigen

Nu u weet hoe u de eigenschappen van een aangesloten invoerapparaat moet controleren, kunnen de instellingen ervoor eenvoudig worden gewijzigd met enkele eenvoudige opdrachten.

Om bijvoorbeeld natuurlijk scrollen in of uit te schakelen, moet u opdrachten in de volgende indeling uitvoeren:

$ xinput set-prop "PixArt Dell MS116 USB optische muis" 285 0
$ xinput set-prop "PixArt Dell MS116 USB optische muis" 285 1

"285" is de id voor natuurlijk scrollen, zoals weergegeven in de bovenstaande schermafbeelding. "0" schakelt natuurlijk scrollen uit, terwijl "1" dit inschakelt. Nogmaals, het gebruik van ID's is geen betrouwbare manier om deze instellingen te wijzigen. Een betere benadering is om de volledige eigenschap-ID te gebruiken.

$ xinput set-prop "PixArt Dell MS116 USB optische muis"
"libinput natuurlijk scrollen ingeschakeld" 0
$ xinput set-prop "PixArt Dell MS116 USB optische muis"
"libinput natuurlijk scrollen ingeschakeld" 1

Houd er rekening mee dat het niet de bedoeling is dat u eigenschap-ID's met het woord "Standaard" erin aanraakt. Dit zijn referentie-terugvalwaarden en elke poging om ze te wijzigen zal ertoe leiden dat xinput een fout genereert.

Ga naar het volgende voor meer informatie over andere opties en de opties die worden vermeld in de terminaluitvoer hierboven: bladzijde.

De wijzigingen blijvend maken

De hierboven uitgelegde methode wijzigt de instellingen alleen voor actieve sessie. Wanneer u het systeem opnieuw opstart, zijn deze wijzigingen verdwenen. Om ze persistent te maken, kunnen twee benaderingen worden gebruikt:.

De eerste methode vereist dat u deze opdrachten toevoegt aan opstarttoepassingen. Je kunt zoveel items toevoegen als je wilt met behulp van een mooie grafische interface. Er zijn geen root-rechten vereist om deze items te maken, en het is supereenvoudig om ze later te wijzigen.

Om de opdracht toe te voegen aan opstarttoepassingen, start u de app "Opstarttoepassingen" vanuit het startprogramma voor toepassingen. Klik op de knop "Toevoegen" om een ​​item toe te voegen. Stel een beschrijving in en voer de juiste xinput-opdracht in volgens uw behoeften. Zorg ervoor dat het selectievakje is aangevinkt nadat u het item hebt opgeslagen.

Dat is alles, het xinput-commando dat u hebt ingevoerd, wordt automatisch uitgevoerd bij het opstarten van het systeem. Ik heb een beetje vertraging toegevoegd aan de opdracht om te wachten tot de sessie correct is geladen. Ter referentie, hier is de opdracht die hieronder in de onderstaande schermafbeelding wordt gebruikt:

$ sleep 3 && xinput set-prop "PixArt Dell MS116 USB optische muis"
"libinput natuurlijk scrollen ingeschakeld" 1

De tweede methode vereist dat je een aantal commando's als root uitvoert en een tekstbestand bewerkt. Het voordeel van het gebruik van deze methode is dat u geen afzonderlijke vermeldingen hoeft te maken voor elke optie in een GUI en dat alles gewoon in één tekstbestand staat, waardoor het gemakkelijker is om het tussen apparaten te delen.

Voer de onderstaande opdrachten uit om de vereiste map en het conf-bestand te maken:

$ sudo mkdir -p /etc/X11/xorg.conf.d
$ sudo touch /etc/X11/xorg.conf.d/99-libinput.conf

Let op het "99"-gedeelte in de bestandsnaam. Het geeft de laadvolgorde aan van de bestanden die bestaan ​​in “xorg.conf.d” map. Een bestand met het hoogste nummer als voorvoegsel wordt als laatste geladen, waarbij alle opties die in eerdere bestanden zijn opgegeven, worden genegeerd in het geval er duplicaten zijn. Door "99" of een ander nummer als prefix op te geven, kunt u ervoor zorgen dat het na andere bestanden wordt geladen.

Open "99-libinput".conf" bestand met root-toegang in uw favoriete teksteditor. Voer het onderstaande codefragment in nadat u de nodige wijzigingen hebt aangebracht volgens uw vereisten.

Sectie "InputClass"
Identificatiecode "Dell Mouse"
MatchProduct "PixArt Dell MS116 USB optische muis"
Optie "NaturalScrolling" "true"
Eindsectie

Waar:

Door "MatchProduct" correct op te geven, kunt u de configuratie-opties beperken tot alleen een specifiek apparaat. Wijzigingen in het configuratiebestand worden van kracht wanneer u de volgende keer opnieuw opstart. U kunt een willekeurig aantal opties toevoegen in het gedeelte "InputClass". Er is een lijst beschikbaar met verschillende opties die aan het bestand kunnen worden toegevoegd hier.

Conclusie

De hierboven uitgelegde methode is vooral handig als u configuratieregels per apparaat wilt gebruiken. De standaard interface voor systeeminstellingen in GNOME en KDE biedt slechts enkele van de meest gebruikte opties die beschikbaar zijn voor verschillende invoerapparaten. Om geavanceerde opties voor een invoerapparaat te configureren, hebt u geen andere keuze dan "xinput" te gebruiken of een speciaal configuratiebestand te maken.

POSIX-leesfunctie in C-programmering
In traditionele POSIX-compatibele besturingssystemen, om informatie te krijgen uit een document in een bestandssysteem, gebruikte een programma de lee...
Posix Mutex met C-programmering
Het artikel van vandaag zal gericht zijn op het gebruik van Posix Mutex met C-programmering in Linux Mint 20. Voordat we echter verder gaan met ons be...
POSIX-semaforen met C-programmering
POSIX verwijst naar de draagbare interface van het besturingssysteem, een IEEE-standaard die is ontwikkeld om de overdraagbaarheid van verschillende t...