Hvordan endre innstillinger for mus og berøringsflekker ved hjelp av XInput i Linux

Hvordan endre innstillinger for mus og berøringsflekker ved hjelp av XInput i Linux
De fleste Linux -distribusjoner leveres med “Libinput” -bibliotek som standard for å håndtere inngangshendelser på et system. Den kan behandle inngangshendelser på både Wayland og X og kan håndtere en rekke inngangsenheter, inkludert berøringsskjermdisplay og pennpenner.

Denne artikkelen forklarer å endre forskjellige alternativer for en inngangsenhet som blir håndtert av Libinput -biblioteket. For å sjekke og konfigurere tilgjengelige alternativer, vil et kommandolinjeverktøy kalt "XInput" bli brukt.

Merk at denne guiden kun fungerer med X Display Server. For Wayland må du stole på systeminnstillinger levert av distribusjonen eller bruke et sentralisert konfigurasjonsverktøy som GSettings.

Liste inn inngangsenheter

XInput kommer forhåndsinstallert som standard på Ubuntu. Hvis det av en eller annen grunn ikke er installert på systemet ditt, kjør kommandoen nedenfor for å installere det:

$ sudo apt install xinput

For å liste opp alle innebygde og eksterne inngangsenheter koblet til systemet ditt, kjør kommandoen nedenfor:

$ xInput --list

Du vil se noen utgang i terminalen som dette:

Oppføringen under “Virtual Core Pointer” (uthevet av Red Arrows) er en kablet USB -mus koblet til systemet mitt. Du må bruke nøyaktig navn eller ID som vises på skjermdumpen ovenfor for å konfigurere innstillinger.

Merk at i skjermbildet over viser XInput egenskaper til enheter koblet til systemet mitt. Enhetsnavn og ID -er vil være forskjellige for systemet ditt, avhengig av maskinvarekonfigurasjon og eksterne enheter koblet via USB, Bluetooth eller trådløse mottakere.

Se egenskapene til en tilkoblet enhet

For å se gjeldende status og forskjellige alternativer som er aktive for enheten som er oppført ovenfor, kjør en kommando i følgende format:

$ xInput-List-Props “ID”

For Dell -musen som er oppført ovenfor, ville kommandoen være:

$ xInput-List-Props 8

Det er en begrensning med å bruke denne kommandoen. ID -er vist i terminalutgangen har en tendens til å endre seg når du kobler en listet enhet til en annen port. Når ID -ene fortsetter å endre seg, er det alltid en sjanse for å endre innstillinger ved et uhell for en annen enhet. For å overvinne dette problemet, er det bedre å bruke fullt enhetsnavn som identifikator i stedet for IDen. Så for Dell -musen som er oppført ovenfor, ville den bedre kommandoen være:

$ xInput-List-props "Pixart Dell MS116 USB Optical Mouse"

Området fremhevet nedenfor i rødt rektangel viser gjeldende konfigurasjon for enheten. Du kan bare endre alternativer som vises i utdataene. Avhengig av mulighetene til enheten din, kan noen ekstra alternativer være oppført mens andre kan utelates helt.

Endre egenskaper til en tilkoblet enhet

Nå som du vet hvordan du kan sjekke egenskapene til en tilkoblet inngangsenhet, kan innstillinger for den enkelt endres ved hjelp av noen enkle kommandoer.

For å aktivere eller deaktivere naturlig rulling, må du for eksempel kjøre kommandoer i følgende format:

$ xInput Set-Prop "Pixart Dell MS116 USB Optical Mouse" 285 0
$ xInput set-prop "Pixart Dell MS116 USB Optical Mouse" 285 1

“285” er ID for naturlig rulling, som vist på skjermdumpen ovenfor. “0” deaktiverer naturlig rulling mens “1” aktiverer det. Nok en gang er det ikke en pålitelig måte å endre disse innstillingene. En bedre tilnærming er å bruke full eiendomsidentifikator.

$ xInput Set-Prop "Pixart Dell MS116 USB Optical Mouse"
"Libinput Natural Rulling Aktivert" 0
$ xInput Set-Prop "Pixart Dell MS116 USB Optical Mouse"
"Libinput Natural Rulling Aktivert" 1

Merk at du ikke skal berøre eiendomsidentifikatorer som har ordet "standard" i det. Dette er referanseavfallsverdier, og ethvert forsøk på å endre dem vil resultere i at XInput kaster en feil.

For å vite mer om andre alternativer og de som er oppført i terminalutgangen ovenfor, besøk følgende side.

Gjør endringene vedvarende

Metoden forklart ovenfor endrer innstillinger for kun aktiv økt. Når du starter på nytt systemet, vil disse endringene være borte. For å gjøre dem vedvarende, kan to tilnærminger brukes.

Den første metoden krever at du legger til disse kommandoene til oppstartsapplikasjoner. Du kan legge til så mange oppføringer du vil bruke et fint grafisk grensesnitt. Ingen rotstillatelser er pålagt å lage disse oppføringene, pluss å endre dem senere er superenkelt.

For å legge til kommandoen til oppstartsapplikasjoner, lanserer du "Startup Applications" -appen fra applikasjonslandstøtten. Klikk på "Legg til" -knappen for å legge til en oppføring. Angi en beskrivelse og skriv inn passende XInput -kommando i henhold til dine behov. Forsikre deg om at avkrysningsruten er avmerket når du har lagret oppføringen.

Det er det, XInput -kommandoen du har skrevet inn, kjøres automatisk på systemstart. Jeg har lagt litt forsinkelse til kommandoen for å vente på at økten skal laste ordentlig. For referanse er her kommandoen som brukes nedenfor på skjermdumpen nedenfor:

$ Sleep 3 && xInput Set-Prop "Pixart Dell MS116 USB Optical Mouse"
"Libinput Natural Rulling Aktivert" 1

Den andre metoden krever at du kjører noen kommandoer som root og redigerer en tekstfil. Fordelen med å bruke denne metoden er at du ikke trenger å lage separate oppføringer for hvert alternativ i en GUI og alt bare ligger i en tekstfil, noe som gjør det lettere å dele den mellom enheter.

Kjør kommandoene nedenfor for å opprette nødvendig katalog og Conf -filen:

$ sudo mkdir -p/etc/x11/xorg.konf.d
$ sudo touch/etc/x11/xorg.konf.D/99-LibInput.konf

Legg merke til “99” -delen i filnavnet. Det indikerer lastordren til filene som finnes i “Xorg.konf.d ”-mappe. En fil som har det høyeste antallet som prefiks vil bli lastet sist, og overstyrer alternativene som er spesifisert i tidligere filer i tilfelle det er duplikater. Ved å spesifisere “99” eller noe annet nummer som et prefiks, kan du sikre at det er lastet etter andre filer.

Åpne “99-LibInput.Conf ”-fil med rottilgang i din favoritt tekstredigerer. Skriv inn kodebiten nedenfor etter å ha gjort nødvendige endringer i henhold til dine krav.

Avsnitt "InputClass"
Identifikator "Dell Mouse"
Matchproduct "Pixart Dell MS116 USB Optical Mouse"
Alternativ "NaturalScrolling" "True"
Endeseksjon

Hvor:

  • Identifikator “Dell Mouse” kan være et hvilket som helst navn du tildeler enheten for å identifisere den (endre etter behov)
  • Matchproduct “Pixart Dell MS116 USB Optical Mouse” er det nøyaktige enhetsnavnet du fant i “XInput -List” -kommandoen brukt ovenfor (Endre etter behov)
  • Alternativ “NaturalScrolling” “True” muliggjør naturlig rullesystem bredt (endre etter behov)

Ved å spesifisere “MatchProduct” riktig, vil du bare kunne begrense konfigurasjonsalternativene til en bestemt enhet bare. Endringer i Conf -filen trer i kraft når du starter på nytt neste gang. Du kan legge til et hvilket som helst antall alternativer i delen "InputClass". En liste over forskjellige alternativer som kan legges til filen er tilgjengelig her.

Konklusjon

Metoden forklart ovenfor er spesielt nyttig når du vil bruke per enhetskonfigurasjonsregler. Standard systeminnstillingsgrensesnitt i GNOME og KDE gir bare noen av de mest brukte alternativene som er tilgjengelige for forskjellige inngangsenheter. For å konfigurere avanserte alternativer for en inndataenhet, har du ikke noe annet valg enn å enten bruke “XInput” eller opprette en dedikert konfigurasjonsfil.