Come modificare le impostazioni di mouse e touchpad utilizzando Xinput in Linux

Come modificare le impostazioni di mouse e touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni di Linux viene fornita con libreria "Libinput" per impostazione predefinita per gestire gli eventi di input su un sistema. Può elaborare eventi di input su Wayland e X e può gestire una varietà di dispositivi di input tra cui display touchscreen e penne stilo.

Questo articolo spiega la modifica di varie opzioni per un dispositivo di input gestito dalla libreria Libinput. Per controllare e configurare le opzioni disponibili, verrà utilizzato uno strumento di riga di comando chiamato "Xinput".

Si noti che questa guida funziona solo con X display Server. Per Wayland, è necessario fare affidamento sulle impostazioni di sistema fornite dalla distribuzione o utilizzare un'utilità di configurazione centralizzata come Gsettings.

Elenca dispositivi di input

Xinput viene preinstallato per impostazione predefinita su Ubuntu. Se per qualche motivo non è installato sul sistema, eseguire il comando di seguito per installarlo:

$ sudo APT Installa Xinput

Per elencare tutti i dispositivi di input integrati ed esterni collegati al sistema, eseguire il comando di seguito:

$ xinput -list

Vedrai un po 'di output in terminale come questo:

La voce in "Puntatore del core virtuale" (evidenziato da Red Arrows) è un mouse USB cablato collegato al mio sistema. Dovrai utilizzare il nome esatto o l'ID mostrato nella schermata sopra per configurare le impostazioni del mouse o touchpad tramite lo strumento di riga di comando Xinput.

Si noti che nello screenshot sopra, Xinput mostra le proprietà dei dispositivi collegati al mio sistema. I nomi e gli ID dei dispositivi saranno diversi per il sistema a seconda della configurazione hardware e dei dispositivi esterni collegati tramite ricevitori USB, Bluetooth o wireless.

Visualizza le proprietà di un dispositivo collegato

Per visualizzare lo stato corrente e le varie opzioni attive per il dispositivo sopra elencato, eseguire un comando nel seguente formato:

$ xinput-list-props "id"

Per il mouse Dell sopra elencato, il comando sarebbe:

$ xinput-list-props 8

C'è una limitazione con l'utilizzo di questo comando. Gli ID mostrati nell'uscita del terminale tendono a modificare quando si collega un dispositivo elencato a una porta diversa. Mentre gli ID continuano a cambiare, c'è sempre la possibilità di cambiare accidentalmente le impostazioni per un dispositivo diverso. Per superare questo problema, è meglio utilizzare il nome del dispositivo completo come identificatore anziché il suo ID. Quindi, per il mouse Dell sopra elencato, il comando migliore sarebbe:

$ xinput-list-props "Pixart Dell MS116 USB Optical Mouse"

L'area evidenziata di seguito nel rettangolo rosso mostra la configurazione corrente per il dispositivo. È possibile modificare solo le opzioni mostrate nell'output. A seconda delle funzionalità del dispositivo, potrebbero essere elencate alcune opzioni extra mentre altre possono essere omesse del tutto.

Modificare le proprietà di un dispositivo connesso

Ora che sai come controllare le proprietà di un dispositivo di input connesso, le impostazioni possono essere facilmente modificate utilizzando alcuni comandi semplici.

Ad esempio, per abilitare o disabilitare lo scorrimento naturale, è necessario eseguire comandi nel seguente formato:

$ xinput set-prop "pixart dell ms116 mouse ottico USB" 285 0
$ xinput set-prop "pixart dell ms116 mouse ottico USB" 285 1

"285" è l'ID per lo scorrimento naturale, come mostrato nello screenshot sopra. "0" disabilita lo scorrimento naturale mentre "1" lo consente. Ancora una volta, usare IDS non è un modo affidabile per modificare queste impostazioni. Un approccio migliore è utilizzare l'identificatore di proprietà completa.

$ xinput set-prop "pixart dell ms116 mouse ottico USB"
"Libinput Natural Scrolling abilitato" 0
$ xinput set-prop "pixart dell ms116 mouse ottico USB"
"Libinput Natural Scrolling abilitato" 1

Nota che non dovresti toccare gli identificatori di proprietà con la parola "predefinito". Questi sono valori di fallback di riferimento e qualsiasi tentativo di cambiarli comporterà un errore di Xinput.

Per saperne di più su altre opzioni e quelle elencate nell'output del terminale sopra, visita la pagina seguente.

Rendere persistenti i cambiamenti

Il metodo spiegato sopra le impostazioni delle modifiche solo per la sessione attiva. Quando si riavvia il sistema, queste modifiche saranno sparite. Per renderli persistenti, è possibile utilizzare due approcci.

Il primo metodo richiede di aggiungere questi comandi alle applicazioni di avvio. Puoi aggiungere tutte le voci che vuoi usando una bella interfaccia grafica. Non sono necessarie autorizzazioni di radice per creare queste voci, oltre a cambiarle in seguito è super facile.

Per aggiungere il comando alle applicazioni di avvio, avvia l'app "Avvio delle applicazioni" dal lancio dell'applicazione. Fai clic sul pulsante "Aggiungi" per aggiungere una voce. Imposta una descrizione e inserisci il comando Xinput appropriato secondo le tue esigenze. Assicurati che la casella di controllo sia verificata una volta che hai salvato la voce.

Ecco, il comando Xinput che hai inserito verrà eseguito automaticamente all'avvio del sistema. Ho aggiunto un po 'di ritardo al comando per attendere che la sessione si carichi correttamente. Per riferimento, ecco il comando usato di seguito nello screenshot seguente:

$ sleep 3 && xinput set-prop "pixart dell ms116 mouse ottico USB"
"Libinput Natural Scrolling abilitato" 1

Il secondo metodo richiede di eseguire alcuni comandi come root e modificare un file di testo. Il vantaggio di utilizzare questo metodo è che non è necessario creare voci separate per ciascuna opzione in una GUI e tutto risiede in un file di testo, rendendo più facile condividerlo tra i dispositivi.

Esegui i comandi di seguito per creare la directory richiesta e il file conf:

$ sudo mkdir -p/etc/x11/xorg.conf.D
$ sudo touch/etc/x11/xorg.conf.D/99-Libinput.conf

Notare la parte "99" nel nome file. Indica l'ordine di caricamento dei file esistenti in "Xorg.conf.cartella d ”. Un file che ha il numero più alto come prefisso verrà caricato per ultimo, sovrascrivendo qualsiasi opzione specificata nei file precedenti nel caso in cui vi siano duplicati. Specificando "99" o qualsiasi altro numero come prefisso, è possibile assicurarsi che venga caricato dopo altri file.

Apri “99-Libinput.Conf ”file con accesso alla root nel tuo editor di testo preferito. Immettere lo snippet di codice di seguito dopo aver apportato le modifiche necessarie secondo i requisiti.

Sezione "Inputclass"
Identificatore "Dell Mouse"
MatchProduct "Pixart Dell MS116 USB Optical Mouse"
Opzione "naturalscrolling" "True"
Fine

Dove:

  • L'identificatore "Dell Mouse" può essere qualsiasi nome assegnato al dispositivo per identificarlo (modifica secondo necessità)
  • MatchProduct "Pixart Dell MS116 USB Optical Mouse" è il nome esatto del dispositivo che hai trovato nel comando "Xinput -List" utilizzato sopra (modifica secondo necessità)
  • Opzione "NaturalsCrolling" "True" consente l'ampio sistema di scorrimento naturale (modifica secondo necessità)

Specificando correttamente "MatchProduct", sarai in grado di limitare le opzioni di configurazione a un solo dispositivo specifico. Le modifiche apportate nel file conf avranno effetto quando si riavvia la prossima volta. È possibile aggiungere qualsiasi numero di opzioni nella sezione "inputclass". Un elenco di varie opzioni che possono essere aggiunte al file è disponibile qui.

Conclusione

Il metodo spiegato sopra è particolarmente utile quando si desidera utilizzare per regole di configurazione del dispositivo. L'interfaccia delle impostazioni di sistema predefinite in GNOME e KDE fornisce solo alcune delle opzioni più comunemente utilizzate disponibili per vari dispositivi di input. Per configurare le opzioni avanzate per un dispositivo di input, non hai altra scelta che utilizzare "Xinput" o creare un file di configurazione dedicato.