Testato e funziona su Ubuntu 14.04, 16.04 e 18.04.
Fai come la risposta di @Almas Dusal , che gradisce la risposta di @ negusp , tranne usa invece il mio script modificato poiché ha 3 vantaggi aggiuntivi ( AGGIORNAMENTO: i vantaggi 1 e 3 di seguito sono stati aggiunti il 12 settembre 2019 ):
- Cerca l'output di
xinput
entrambi Touchpad
AND TouchPad
, poiché alcuni sistemi hanno la P maiuscola mentre altri no. Questo rende il mio script compatibile con più sistemi (speriamo TUTTI i sistemi).
- Aggiunge le finestre popup a chiusura automatica di 2 secondi tramite
zenity
per mostrare se il touchpad è ora ABILITATO o DISATTIVATO. Vedi schermate di queste finestre popup di seguito.
- Corregge correttamente la velocità della rotellina di scorrimento, abilitando
imwheel
(che risolve il problema della rotella di scorrimento lenta in Ubuntu / Linux quando si utilizza una rotellina del mouse) quando si utilizza un mouse, mentre disabilita imwheel
quando si utilizza un touchpad, poiché imwheel
altrimenti rende lo scorrimento del touchpad davvero glitch quando abilitato. Assicurati di decommentare le rispettive linee per farlo funzionare. Es: # imwheel -b "4 5"
e # killall imwheel
.
#!/bin/bash
# GS_toggle_touchpad.sh
# - toggle the touchpad on and off
# Gabriel Staples
# Written: 2 Apr. 2018
# Updated: 12 Sept. 2019
# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!
# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )
echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"
if [ "$state" -eq '1' ];then
xinput --disable "$TouchPadDeviceId"
zenity --info --text "Touchpad DISABLED" --timeout=2
# Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here:
# /ubuntu//a/991680/327339
# imwheel -b "4 5"
else
xinput --enable "$TouchPadDeviceId"
zenity --info --text "Touchpad ENABLED" --timeout=2
# Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here:
# /ubuntu//a/991680/327339
# killall imwheel
fi
Nota che la cosa imwheel è necessaria solo se stai seguendo questa risposta per correggere anche la velocità della rotella di scorrimento: Correggi in modo permanente la velocità di scorrimento di Chrome .
Ora assegnagli un tasto scorciatoia di Ctrl+ Alt+ P(o qualunque cosa tu scelga [la 'P' sta per touch'P'ad nel mio caso]). La mia aggiunta allo script sopra è la zenity
parte della finestra popup a chiusura automatica, che descrivo di più nella mia risposta qui ( /superuser//a/1310142/425838 ).
Ora, quando uso il collegamento sopra, vedo questa finestra popup, che si chiude automaticamente dopo 2 secondi:
E se lo premo di nuovo ottengo questa finestra popup, che si chiude automaticamente dopo 2 secondi:
Perfetto!
Come bonus aggiuntivo, se sei un utente di mouse pesante, aggiungi semplicemente il comando che chiama lo script sopra ai tuoi programmi di avvio in Ubuntu in modo che venga eseguito e disabiliti il trackpad ogni volta che il computer si avvia! Ho questo set in modo da poter smettere di urtare il trackpad con la base della mia mano e di eliminare roba accidentalmente tutto il tempo! Ora, quando la mia mano batte il trackpad, non succede nulla perché è disabilitato. :)
Nota: tutto funziona alla grande in Ubuntu 18.04 e nelle versioni precedenti. L'ho provato in Ubuntu 18.04 e Ubuntu 14.04. Ecco uno screenshot dalla finestra delle impostazioni del collegamento in 18.04:
Relazionato:
- Correggi in modo permanente la velocità di scorrimento di Chrome
grep
esed
. Puoi facilmente consolidare i due ased -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'
.