Odpowiedzi:
Aby wyłączyć panel dotykowy:
synclient TouchpadOff=1
Aby ponownie włączyć:
synclient TouchpadOff=0
Istnieją co najmniej dwie metody (o których wiem), które możesz wypróbować.
Jeśli Twój laptop jest wyposażony w touchpad Synaptics (lub ALPS), możesz z niego korzystać, synclient
jak już wspomniano w Shutupsquare. Używam Ubuntu 14.04 i na moim komputerze został on domyślnie zainstalowany.
Sprawdź, czy synclient jest zainstalowany: synclient -V
(powinien podać numer wersji)
Włącz touchpad: synclient TouchpadOff=0
Wyłącz touchpad: synclient TouchpadOff=1
Sam tego nie testowałem, ale jeśli Twoim celem jest nie poruszanie myszą, gdy twoje ręce spoczywają na tabliczce dotykowej, może to pomóc.
Włącz wykrywanie dłoni: synclient PalmDetect=1
WYŁĄCZ wykrywanie dłoni: synclient PalmDetect=0
Zasadniczo możesz skonfigurować dowolną właściwość touchpada Synaptics przez synclient property=value
. Gdzie właściwość jest jedną z dostępnych właściwości pokazanych przezsynclient -l
ubuntu - wiki wiki pomocy - SynapticsTouchpad
archlinux - wiki - Touchpad Synaptics
ask ubuntu - Jak ustawić moje ustawienia synclient? - Ubuntu
Jeśli nie chcesz lub nie możesz używać synclient, możesz również użyć xinput
. Procedura jest nieco podobna.
wyświetl wszystkie urządzenia xinput: xinput
Część danych wyjściowych może wyglądać następująco:
⎡ 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)]
W tym konkretnym przypadku mój touchpad ma id = 17, a jego pełna nazwa to „ETPS / 2 Elantech Touchpad”.
Poleceniem ustawienia właściwości jest xinput set-prop
. Właściwością włączania lub wyłączania touchpada jest Device Enabled
, więc aby włączyć lub wyłączyć, wpisz:
Włącz touchpad: xinput set-prop <id> "Device Enabled" 1
(gdzie <id>
jest identyfikator twojego urządzenia, w moim przypadku 17)
Wyłącz touchpad: xinput set-prop <id> "Device Enabled" 0
Włącz wykrywanie dłoni: xinput set-prop <id> "Palm Detection" 1
WYŁĄCZ wykrywanie dłoni: xinput set-prop <id> "Palm Detection" 0
Aby wyszukać dostępne właściwości: xinput list-props <id>
LUB xinput list-props <full-name>
, powinno to być całkiem podobne do synclient -l
.
Podczas ustawiania właściwości za pomocą jednego z nich xinput
lub synclient
właściwości nie są ustawione na inne narzędzie. Nie są też osadzeni w centrum kontroli jedności.
synclient
nie działało dla mnie xinput
.
xinput
identyfikatory mogą się zmieniać po ponownym uruchomieniu. Dlatego poleganie na tych identyfikatorach w skryptach lub skrótach nie będzie działać.
synclient
całkowicie działa na Arch Linux. Dziękuję tak dużo !!!
xinput <enable/disable> <id>
, ponieważ ustawienie TouchpadOff
za pomocą synclient
było nieskuteczne.
xinput
. Byłem trochę zakłopotany dzięki wbudowanej klawiaturze i przyciskom trackpointa, najwyraźniej wysyłając złe dane wejściowe, które zakłócały wejście z zewnętrznej klawiatury. To pozwoliło mi wyłączyć wbudowane urządzenia. Twoje zdrowie! :)
synclient
i xinput
nie będzie działać, jeśli używasz środowiska gnome (lub jedności, cynamonu), ponieważ zastąpi ono ustawienia, więc jeśli chcesz synclient
lub xinput
przejmiesz te ustawienia, powinieneś je najpierw wyłączyć:
zainstaluj, dconf-editor
jeśli nie jest zainstalowany:
apt-get install dconf-editor
biegać dconf-editor
dconf-editor
otwórz katalog /org/gnome/settings-daemon/plugins/mouse/
lub /org/cinnamon/settings-daemon/plugins/mouse/
i odznacz pole wyboru dla active
.
logout
lub reboot
To powinno działać synclient
lub xinput
działać.
Wymień swoje urządzenia wejściowe:
xinput list
W moim przypadku mam tę listę:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Wyłącz touchpad, przekazując identyfikator
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
i xinput disable [device]
bezpośrednio. Podczas pisania skryptów korzystanie set-prop [device] "Device Enabled" [value]
może być nieco łatwiejsze, jak w odpowiedzi na pytanie World Python Developer's.
Napisałem fragment kodu Pythona, abyś mógł użyć tej xinput
techniki bez wykonywania całej pracy ręcznej. Copyleft, AS-IS, bez gwarancji, używa na własne ryzyko. Działa świetnie dla mnie: a jeśli używasz gnome, po prostu zamapuj go na skrót klawiszowy, taki jak 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()
W Gnome mój klawisz funkcyjny do przełączania touchpada z jakiegoś powodu nie działał, więc stworzyłem skrypt za pomocą gsettings.
xinput
rozwiązanie całkowicie dezaktywuje touchpad zgodnie z oczekiwaniami. Jeśli tak jak ja, twoim jedynym problemem jest to, że nieumyślnie poruszasz kursorem podczas pisania, ale to wystarczy.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()
Powinien również działać na Unity, ale nie testowałem.