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
xinputentrambi TouchpadAND 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
zenityper 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 imwheelquando si utilizza un touchpad, poiché imwheelaltrimenti 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 zenityparte 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
grepesed. Puoi facilmente consolidare i due ased -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.