Touchpad aktivieren / deaktivieren

17

Ich habe es geschafft, Ubuntu 16.04 auf meinem asus ux501 vw zu installieren, aber einige meiner Verknüpfungen funktionieren nicht. Ich möchte nicht alle Probleme beheben, sondern nur eine: die Verknüpfung, mit der ich das Touchpad aktivieren oder deaktivieren kann, damit ich mit der Arbeit über das Touchpad lange Dokumente schreiben kann.

Ich habe versucht, es auf Google zu finden, aber ich habe nichts bekommen.

Kann mir jemand erklären, wie man das bitte behebt? Vielen Dank !

Rei
quelle

Antworten:

24

Ich habe dieses Bash-Skript aus der Antwort von Negusp erstellt . Es findet und schaltet das TouchPad-Gerät um. Sie können eine benutzerdefinierte Verknüpfung dazu in den Systemeinstellungen konfigurieren.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

Ich gründe Ctrl+ Shift+ F9für Toggle - Touchpad zu aktivieren und deaktivieren wie folgt aus :

Bildbeschreibung hier eingeben

Bearbeiten: Möglicherweise müssen Sie Ihr Skript mit dem Befehl chmod + x Dateiname oder Eingabe / bin / bash / Dateipfad zum Befehlsfeld des benutzerdefinierten Verknüpfungsfensters ausführbar machen .

Almas Dusal
quelle
2
Es gibt selten eine Notwendigkeit zu verketten grepund sed. Sie können die beiden problemlos zu konsolidieren sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
David Foerster
3
Eine kleine Korrektur im Skript für Ubuntu 17.10, nachdem die
Fehlerzeile
1
Geniale Antwort! Meine einzigen Ergänzungen sind das Hinzufügen von zenity --info --text "Touchpad DISABLED" --timeout=2und zenity --info --text "Touchpad ENABLED" --timeout=2zu Ihren ifbzw. elseBlöcken, um ein Fenster zu öffnen, das den neuen Status meldet und dann in 2 Sekunden automatisch schließt.
Gabriel Staples
1
Siehe meine geringfügige Änderung hier: askubuntu.com/a/1109515/327339
Gabriel Staples
1
Update: Einige Systeme werden Touchpadnicht TouchPadin der Ausgabe von angezeigt xinput, daher habe ich meine Antwort aktualisiert, um nach beiden zu suchen. Außerdem habe ich es richtig gemacht, das Problem mit dem langsamen Scrollrad mit zu beheben imwheel. Siehe auch hier: askubuntu.com/questions/844151/enable-disable-touchpad/…
Gabriel Staples
11

Sie möchten eine Verknüpfung, können aber problemlos 2 Skripte auf dem Desktop ablegen und ausführen.

Gehen Sie zuerst zum Terminal. Typ xinput. Ausgabebeispiel:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys 

Suchen Sie das Touchpad. In diesem Beispiel wird das Touchpad als id = 12 aufgeführt

Erstellen Sie das erste Skript mit diesem Befehl:

#!/bin/bash
xinput enable 12

Speichern und benennen Sie es und touchpadenable.shmarkieren Sie es im Terminal als ausführbar mit:

chmod +x touchpadenable.sh

Wiederholen Sie genau das Gleiche, aber benennen Sie die Datei um als touchpaddisable.sh(oder was auch immer) und anstelle von

xinput enable 12

Verwenden Sie den Befehl

xinput disable 12

Speichern Sie die Datei, markieren Sie sie als ausführbar, und Sie sollten in der Lage sein, die Skripte vom Desktop aus auszuführen. Hinweis: Möglicherweise müssen Sie mit der rechten Maustaste auf die Skripts klicken, auf Eigenschaften klicken und die Ausführung zulassen.

negusp
quelle
Hey danke für die Antwort! Ich werde so etwas verwenden! Nur eine Sache, denkst du, es wäre möglich, wenn ich es auf 1 Skriptdatei mache, damit ich die gleiche Verknüpfung verwenden kann?
Rei
@ Thomas Siehe diese Antwort: askubuntu.com/questions/597395/…
Negusp
6

Sie müssen die Antwort von negusp akzeptieren , indem Sie zuerst Ihr Touch-Gerät überprüfen und Folgendes anzeigen :

~ $ xinput
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)]
⎜ ↳ XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)]
⎜ ↳ PixArt Dell MS116 Optische USB-Maus id = 10 [Slave-Zeiger (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad-ID = 14 [Slave-Zeiger (2)]
⎜ ⎜ DLLC6B2: 00 06CB: 75BF Touchpad-ID = 12 [Slave-Zeiger (2)]
⎣ ID der virtuellen Kerntastatur = 3 [Mastertastatur (2)]
    ↳ XTEST-Tastatur-ID des virtuellen Kerns = 5 [Slave-Tastatur (3)]
    ↳ Einschaltknopf-ID = 6 [Slave-Tastatur (3)]
    ↳ Videobus-ID = 7 [Slave-Tastatur (3)]
    ↳ Einschaltknopf-ID = 8 [Slave-Tastatur (3)]
    ↳ Sleep-Button-ID = 9 [Slave-Tastatur (3)]
    ↳ Integrated_Webcam_HD id = 11 [Slave-Tastatur (3)]
    ↳ AT Übersetztes Set 2 Tastatur-ID = 13 [Slave-Tastatur (3)]
    ↳ Dell WMI-Hotkeys id = 15 [Slave-Tastatur (3)]
    ↳ DELL Wireless Hotkeys ID = 16 [Slave-Tastatur (3)]

In meinem Fall ist das Gerät mit der ID = 12, erstelle jetzt ein Bash-Skript mit dem Namen "toggle-touch" in deinem Desktop-Ordner unter dem Ordner "bin", wäre "~ / Desktop / bin" und kopiere den nächsten Code, überprüfe Die Gerätevariable zeigt auf meine Touch-ID = 12. Fixieren Sie sie mit Ihrem Fall:

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

Auf diese Skriptausführungsberechtigung festlegen:

chmod 775 /Desktop/bin/toggle-touch

Zum Schluss können Sie diesen Pfad aus Ihrem Home-Ordner in die ".bashrc" einfügen. Fügen Sie einfach diese Zeile am Ende der Datei hinzu:

PATH=$PATH:~/Desktop/bin

aktualisiere den Pfad mit:

. .bashrc

Dann können Sie dieses Skript von jedem Ort aus ausführen, ich hoffe diese Hilfe.

Hermeslm
quelle
1

In meinem Ubuntu 18.04 hat die Antwort von Almas Dusal nicht funktioniert, bis ich das 'p' TouchPadin der folgenden Zeile seines Codes in Kleinbuchstaben geändert habe :

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

Danach wurde das Touchpad erfolgreich durch das Skript deaktiviert und aktiviert, was sich jedoch nicht im Einstellungsbildschirm für Maus und Touchpad widerspiegelte . Ich habe das folgende neue Skript erstellt, mit dem das Touchpad beim Aktualisieren der Einstellungsansicht umgeschaltet wird.

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi
Samuli Asmala
quelle
1

Getestet und funktioniert unter Ubuntu 14.04, 16.04 und 18.04.

Machen Sie es wie @Almas Dusal Antwort , die tut wie @ negusp Antwort , außer Gebrauch meine modifizierte Skript stattdessen da es 3 zusätzliche Vorteile ( UPDATE: Vorteile 1 und 3 wurden die unten 12. September 2019 hinzugefügt ):

  1. Es durchsucht die Ausgabe von xinputbeiden nach TouchpadUND TouchPad, da bei einigen Systemen das P aktiviert ist, bei anderen nicht. Dadurch ist mein Skript mit mehr Systemen kompatibel (hoffentlich ALLEN Systemen).
  2. Es werden 2 Sekunden lang automatisch schließende Popup-Fenster zenityhinzugefügt, um anzuzeigen, ob Ihr Touchpad jetzt AKTIVIERT oder DEAKTIVIERT ist. Screenshots dieser Popup-Fenster finden Sie unten.
  3. Es korrigiert die Geschwindigkeit Ihres Scrollrads richtig und aktiviert imwheel( wodurch das Problem mit dem langsamen Scrollrad in Ubuntu / Linux bei Verwendung eines Maus-Scrollrads behoben wird), wenn Sie eine Maus verwenden, während das Deaktivieren imwheelbei Verwendung eines Touchpads imwheeldas Scrollen des Touchpads ansonsten sehr unangenehm macht wenn aktiviert.
#!/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

Beachten Sie, dass das Imwheel-Element nur erforderlich ist, wenn Sie diese Antwort befolgen, um auch die Geschwindigkeit Ihres Scrollrads festzulegen: Chrome- Scrollgeschwindigkeit dauerhaft festlegen .

Weisen Sie ihm nun eine Tastenkombination von Ctrl+ Alt+ zu P(oder was auch immer Sie wählen [das 'P' steht in meinem Fall für touch'P'ad]). Mein Zusatz zum obigen Skript ist das sich zenityselbst schließende Popup-Fenster, das ich in meiner Antwort hier näher beschreibe ( /superuser//a/1310142/425838 ).

Wenn ich jetzt die obige Verknüpfung verwende, sehe ich dieses Popup-Fenster, das sich nach 2 Sekunden automatisch schließt:

Bildbeschreibung hier eingeben

Und wenn ich es erneut drücke, erhalte ich dieses Popup-Fenster, das sich nach 2 Sekunden automatisch schließt:

Bildbeschreibung hier eingeben

Perfekt!

Als zusätzlichen Bonus, wenn Sie ein schwerer Mausbenutzer sind, fügen Sie einfach den Befehl, der Ihr Skript oben aufruft, zu Ihren Startprogrammen in Ubuntu hinzu, damit das Trackpad bei jedem Start Ihres Computers ausgeführt und deaktiviert wird! Ich habe dieses Set, damit ich aufhören kann, das Trackpad mit der Basis meiner Hand zu berühren und Dinge die ganze Zeit versehentlich zu löschen! Wenn meine Hand gegen das Trackpad stößt, passiert nichts, weil es deaktiviert ist. :)

Hinweis: Dies funktioniert sowohl in Ubuntu 18.04 als auch in älteren Versionen. Ich habe es in Ubuntu 18.04 und Ubuntu 14.04 getestet. Hier ist ein Screenshot aus dem Einstellungsfenster für Verknüpfungen in 18.04:

Bildbeschreibung hier eingeben

Verbunden:

  1. Chrome-Bildlaufgeschwindigkeit dauerhaft korrigieren
Gabriel Staples
quelle
Kann auf meinem HP Probook nicht wieder aktiviert werden. Es befinden sich 2 Artikel in xinput SynPS/2 Synaptics TouchPadund SYNA306A:00 06CB:CD0B Touchpad. Die erste Ausführung deaktiviert eine, die zweite die andere. Von dort wird die zweite umgeschaltet, aber niemals die erste.
Floß
0

Ich lasse mein Skript hier (mehr oder weniger dasselbe wie oben). Funktioniert ohne vorherige Überprüfung der Geräte-ID.

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state
erosb
quelle
0

Erstellen Sie ein Shell-Skript, fügen Sie den folgenden Code ein und nennen Sie es touchPadDisable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

Erstellen Sie ein anderes Shell-Skript, fügen Sie den folgenden Code ein und nennen Sie es touchPadEnable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

Das erste Skript deaktiviert das Touchpad und das zweite das Touchpad.

Sie können dieses Skript zu benutzerdefinierten Tastaturkürzeln hinzufügen.

Shrinivas Kulkarni
quelle