Відповіді:
Щоб вимкнути сенсорну панель:
synclient TouchpadOff=1
Щоб увімкнути його:
synclient TouchpadOff=0
Є щонайменше два методи (які я знаю), які ви можете спробувати.
Якщо ваш ноутбук оснащений сенсорною панеллю Synaptics (або ALPS), ви дійсно можете використовувати, synclient
як уже згадував Shutupsquare. Я запускаю Ubuntu 14.04 і на моїй машині він був встановлений за замовчуванням.
Перевірте, чи встановлено синхронієнт: synclient -V
(він повинен повідомляти про номер версії)
Увімкніть тачпад: synclient TouchpadOff=0
Вимкніть тачпад: synclient TouchpadOff=1
Я сам цього не перевіряв, але якщо ваша мета - не рухати мишкою, коли ваші руки опираються на сенсорну панель, це може допомогти.
Увімкніть розпізнавання долоні: synclient PalmDetect=1
Вимкніть розпізнавання долоні: synclient PalmDetect=0
Як правило, ви можете налаштувати будь-яке властивість сенсорної панелі Synaptics за допомогою synclient property=value
. Якщо властивість є однією з доступних властивостей, показаної вsynclient -l
ubuntu - вікі довідки щодо спільноти - SynapticsTouchpad
archlinux - wiki - Synaptics тачпада
Попроси ubuntu - Як зробити так, щоб мої налаштування синхронізації дотримувалися? - Ubuntu
Якщо ви не хочете або не можете використовувати synclient, ви також можете використовувати xinput
. Процедура дещо схожа.
перерахуйте всі пристрої xinput: xinput
Частина виходу може виглядати так:
⎡ 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)]
У цьому конкретному випадку моя тачпад має id = 17, а її повна назва "ETPS / 2 Elantech Touchpad".
Команда встановити властивість є xinput set-prop
. Властивість увімкнення та відключення тачпада є Device Enabled
, тому для її ввімкнення або відключення введіть:
Увімкніть тачпад: xinput set-prop <id> "Device Enabled" 1
(де <id>
ідентифікатор вашого пристрою, в моєму випадку 17)
Вимкніть тачпад: xinput set-prop <id> "Device Enabled" 0
Увімкніть розпізнавання долоні: xinput set-prop <id> "Palm Detection" 1
Вимкніть розпізнавання долоні: xinput set-prop <id> "Palm Detection" 0
Для запиту доступних властивостей: xinput list-props <id>
АБО xinput list-props <full-name>
, це має бути досить подібним synclient -l
.
При встановленні властивостей через один xinput
або synclient
властивості не встановлені для іншого інструменту. Вони також не встановлені в центрі єдності-контролю.
synclient
не працював для мене, xinput
зробив.
xinput
ідентифікатори можуть змінюватися під час перезавантаження. Тож покладатися на ці ідентифікатори у скриптах чи ярликах не вийде.
synclient
повністю працює на Arch Linux. Дякую так багато !!!
xinput <enable/disable> <id>
, оскільки налаштування TouchpadOff
через synclient
було неефективним.
xinput
. Я трохи переймався моїми вбудованими клавішами клавіатури та шляхової точки, мабуть, посилаючи погані входи, які заважали вводу з зовнішньої клавіатури. Це дозволило відключити вбудовані пристрої. Ура! :)
synclient
і xinput
не працюватиме, якщо ви використовуєте середовище gnome (або єдність, кориця), оскільки це буде перекривати налаштування, тому, якщо ви хочете synclient
або xinput
перейдете на ці налаштування, слід спочатку вимкнути це:
встановити, dconf-editor
якщо не встановлено:
apt-get install dconf-editor
бігати dconf-editor
dconf-editor
відкрийте каталог /org/gnome/settings-daemon/plugins/mouse/
або /org/cinnamon/settings-daemon/plugins/mouse/
зніміть прапорець для цього active
.
logout
або reboot
Це має зробити synclient
чи xinput
працювати.
Перерахуйте пристрої введення:
xinput list
У моєму випадку я маю цей список:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Вимкніть тачпад, передавши ідентифікатор
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
та xinput disable [device]
безпосередньо. Хоча в сценаріях використання, set-prop [device] "Device Enabled" [value]
можливо, буде трохи простіше, як у відповіді розробника World Python.
Я написав фрагмент коду python, щоб ви могли використовувати xinput
техніку, не виконуючи всіх ручних робіт. Copyleft, AS-IS, гарантії немає, використовуйте на свій страх і ризик. Для мене це чудово підходить: і якщо ви використовуєте gnome, просто нанесіть його на ключовий ярлик, як-от 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()
У Gnome моя функціональна клавіша для переключення тачпада чомусь не працювала, тому я створив сценарій за допомогою gsettings.
xinput
рішення повністю деактивує тачпад, як очікувалося. Якщо ви, як я, ваша єдина проблема полягає в тому, що ви ненавмисно переміщаєте курсор під час набору, проте цього буде достатньо.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()
Він також повинен працювати на Unity, але я не пройшов тестування.