Antworten:
So schalten Sie das Touchpad aus:
synclient TouchpadOff=1
So schalten Sie es wieder ein:
synclient TouchpadOff=0
Es gibt mindestens zwei Methoden (die ich kenne), die Sie ausprobieren können.
Wenn Ihr Laptop mit einem Synaptics-Touchpad (oder ALPS-Touchpad) ausgestattet ist, können Sie in der Tat synclient
das von Shutupsquare bereits erwähnte verwenden. Ich verwende Ubuntu 14.04 und auf meinem Computer wurde es standardmäßig installiert.
Teste ob der Synclient installiert ist: synclient -V
(er sollte die Versionsnummer angeben )
Touchpad einschalten: synclient TouchpadOff=0
Touchpad ausschalten: synclient TouchpadOff=1
Ich habe dies selbst nicht getestet, aber wenn Sie die Maus nicht bewegen möchten, während Ihre Arme auf dem Touchpad ruhen, kann dies hilfreich sein.
Handflächenerkennung einschalten: synclient PalmDetect=1
Handflächenerkennung ausschalten: synclient PalmDetect=0
Im Allgemeinen können Sie jede Eigenschaft Ihres Synaptics-Touchpads über konfigurieren synclient property=value
. Wobei die Eigenschaft eine der verfügbaren Eigenschaften ist, die von angezeigt werdensynclient -l
ubuntu - comminity help wiki - SynapticsTouchpad
archlinux - wiki - Touchpad Synaptics
ubuntu fragen - Wie kann ich meine Synchronisierungseinstellungen beibehalten? - Ubuntu
Wenn Sie synclient nicht verwenden möchten oder können, können Sie auch verwenden xinput
. Die Vorgehensweise ist etwas ähnlich.
liste alle xinput Geräte auf: xinput
Ein Teil der Ausgabe könnte folgendermaßen aussehen:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=13 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=17 [slave pointer (2)]
In diesem speziellen Fall hat mein Touchpad die ID = 17 und der vollständige Name lautet "ETPS / 2 Elantech Touchpad".
Der Befehl zum Festlegen einer Eigenschaft lautet xinput set-prop
. Die Eigenschaft zum Aktivieren oder Deaktivieren des Touchpads lautet wie folgt Device Enabled
:
Touchpad einschalten: xinput set-prop <id> "Device Enabled" 1
(Wo <id>
ist Ihre Geräte-ID, in meinem Fall 17)
Touchpad ausschalten: xinput set-prop <id> "Device Enabled" 0
Handflächenerkennung einschalten: xinput set-prop <id> "Palm Detection" 1
Handflächenerkennung ausschalten: xinput set-prop <id> "Palm Detection" 0
Um verfügbare Eigenschaften abzufragen: xinput list-props <id>
ODER xinput list-props <full-name>
, dies sollte ziemlich ähnlich sein synclient -l
.
Beim Festlegen von Eigenschaften über xinput
oder werden synclient
die Eigenschaften nicht auf das andere Werkzeug festgelegt. Sie sind auch nicht im Unity-Control-Center eingestellt.
synclient
hat nicht für mich gearbeitet, xinput
hat.
xinput
IDs bei einem Neustart ändern können. Wenn Sie sich also in Skripten oder Verknüpfungen auf diese IDs verlassen, funktioniert dies nicht.
synclient
funktioniert völlig auf Arch Linux. Vielen Dank so viel !!!
xinput <enable/disable> <id>
, da die Einstellung TouchpadOff
über synclient
ineffektiv war.
xinput
. Ich war mit meiner eingebauten Tastatur und den Trackpoint-Tasten ziemlich fertig und habe anscheinend schlechte Eingaben gesendet, die die Eingabe von der externen Tastatur störten. Dadurch konnte ich die eingebauten Geräte deaktivieren. Prost! :)
synclient
und wird xinput
nicht funktionieren , wenn Sie mit gnome (oder Einheit, Zimt) Umwelt, weil es Einstellungen außer Kraft setzen wird, so dass , wenn Sie möchten , synclient
oder um xinput
diese Einstellungen zu übernehmen, sollten Sie diese zuerst deaktivieren:
Installieren, dconf-editor
wenn nicht installiert:
apt-get install dconf-editor
Lauf dconf-editor
dconf-editor
Öffnen Sie das Verzeichnis /org/gnome/settings-daemon/plugins/mouse/
oder /org/cinnamon/settings-daemon/plugins/mouse/
und deaktivieren Sie das Kontrollkästchen für active
.
logout
oder reboot
Das sollte klappen synclient
oder xinput
klappen.
Listen Sie Ihre Eingabegeräte auf:
xinput list
In meinem Fall habe ich diese Liste:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Deaktivieren Sie Ihr Touchpad, indem Sie die ID übergeben
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
und xinput disable [device]
direkt verwenden. Bei der Skripterstellung ist die Verwendung set-prop [device] "Device Enabled" [value]
möglicherweise etwas einfacher, wie in der Antwort von World Python Developer.
Ich habe ein Python-Stück Code geschrieben, damit Sie die xinput
Technik anwenden können, ohne die ganze manuelle Arbeit zu erledigen. Copyleft, AS-IS, keine Garantie, Verwendung auf eigenes Risiko. Funktioniert hervorragend für mich: Wenn Sie Gnome verwenden, ordnen Sie es einfach einer Tastenkombination wie CtrlShiftT.
#!/usr/bin/python2
# -*- coding: utf-8 -*-
'''Program to toggle Touchpad Enable to Disable or vice-versa.'''
import commands
import re
def current_id():
""" Search through the output of xinput and find the line that has the
word TouchPad. At that point, I believe we can find the ID of that device."""
props = commands.getoutput("xinput").split("\n")
match = [line for line in props if "TouchPad" in line]
assert len(match) == 1, "Problem finding Touchpad string! %s" % match
pat = re.match(r"(.*)id=(\d+)", match[0])
assert pat, "No matching ID found!"
return int(pat.group(2))
def current_status(tpad_id):
"""Find the current Device ID, it has to have the word TouchPad in the line."""
props = commands.getoutput("""xinput list-props %d""" % tpad_id).split('\n')
match = [line for line in props if "Device Enabled" in line]
assert len(match) == 1, "Can't find the status of device #%d" % tpad_id
pat = re.match(r"(.*):\s*(\d+)", match[0])
assert pat, "No matching status found!"
return int(pat.group(2))
def flop(tpad_id, status):
"""Change the value of status, and call xinput to reverse that status."""
if status == 0:
status = 1
else:
status = 0
print "Changing Device #%d Device Enabled %d" % (tpad_id, status)
commands.getoutput("""xinput set-prop %d "Device Enabled" %d""" % (tpad_id, status))
def main():
"""Get curent device id and status, and flop status value."""
tpad = current_id()
stat = current_status(tpad)
flop(tpad, stat)
main()
Unter Gnome funktionierte meine Funktionstaste zum Umschalten des Touchpads aus irgendeinem Grund nicht. Ich erstellte ein Skript mit gsettings.
xinput
Lösung das Touchpad wie erwartet vollständig deaktiviert. Wenn Sie wie ich sind, besteht Ihr einziges Problem darin, dass Sie den Cursor versehentlich bewegen, während Sie tippen. Dies ist jedoch ausreichend.toggle_touchpad_gsettings.py
#!/usr/bin/python3.6
import sys
import subprocess
gsettings_schema, gsettings_key = "org.gnome.desktop.peripherals.touchpad", "send-events"
def get_touchpad_send_events():
send_events_value = subprocess.check_output(["gsettings", "get", gsettings_schema, gsettings_key])
return send_events_value.strip()
def toggle_touchpad():
# string returned from get is a repr including quotes,
# but string sent with set does not need to have quotes
if get_touchpad_send_events() == b"'enabled'":
newval = 'disabled'
else:
newval = 'enabled'
subprocess.Popen(["gsettings", "set", gsettings_schema, gsettings_key, newval])
print(f"Set {gsettings_schema}:{gsettings_key} to {newval}")
def main():
toggle_touchpad()
if __name__ == '__main__':
main()
Es sollte auch auf Unity funktionieren, aber ich habe es nicht getestet.