Jawaban:
Untuk mematikan panel sentuh:
synclient TouchpadOff=1
Untuk mengaktifkannya kembali:
synclient TouchpadOff=0
Setidaknya ada dua metode (yang saya tahu) yang bisa Anda coba.
Jika laptop Anda dilengkapi dengan touchpad Synaptics (atau ALPS), Anda memang dapat menggunakannya synclient
sebagaimana telah disebutkan oleh Shutupsquare. Saya menjalankan Ubuntu 14.04 dan pada mesin saya diinstal secara default.
Uji apakah sinkronisasi diinstal: synclient -V
(harus melaporkan nomor versi)
Aktifkan touchpad: synclient TouchpadOff=0
Matikan touchpad: synclient TouchpadOff=1
Saya belum mengujinya sendiri, tetapi jika tujuan Anda adalah untuk tidak menggerakkan mouse saat lengan Anda diletakkan di atas bantalan sentuh, ini mungkin membantu.
Nyalakan deteksi telapak tangan: synclient PalmDetect=1
Nonaktifkan deteksi telapak tangan: synclient PalmDetect=0
Secara umum Anda dapat mengkonfigurasi properti apa pun dari touchpad Synaptics Anda dengan synclient property=value
. Di mana properti adalah salah satu properti yang tersedia ditunjukkan olehsynclient -l
ubuntu - comminity help wiki - SynapticsTouchpad
archlinux - wiki - Touchpad Synaptics
ask ubuntu - Bagaimana cara membuat pengaturan sinkronisasi saya tetap? - Ubuntu
Jika Anda tidak ingin atau tidak dapat menggunakan sinkronisasi, Anda juga bisa menggunakan xinput
. Prosedurnya agak mirip.
daftar semua perangkat xinput: xinput
Bagian dari ouput dapat terlihat seperti ini:
⎡ 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)]
Dalam kasus khusus ini touchpad saya memiliki id = 17 dan nama lengkapnya adalah "ETPS / 2 Elantech Touchpad".
Perintah untuk mengatur properti adalah xinput set-prop
. Properti untuk mengaktifkan atau menonaktifkan touchpad adalahDevice Enabled
, jadi untuk mengaktifkan atau menonaktifkannya ketik:
Aktifkan touchpad: xinput set-prop <id> "Device Enabled" 1
(di mana <id>
id perangkat Anda, dalam kasus saya 17)
Matikan touchpad: xinput set-prop <id> "Device Enabled" 0
Nyalakan deteksi telapak tangan: xinput set-prop <id> "Palm Detection" 1
Nonaktifkan deteksi telapak tangan: xinput set-prop <id> "Palm Detection" 0
Untuk menanyakan properti yang tersedia: xinput list-props <id>
ATAU xinput list-props <full-name>
, ini harus cukup serupa synclient -l
.
Saat mengatur properti melalui salah satu xinput
atau synclient
properti tidak diatur ke alat lain. Mereka juga tidak diatur di pusat kontrol kesatuan.
synclient
tidak bekerja untukku, xinput
tidak.
xinput
id dapat berubah saat dimulai ulang. Jadi mengandalkan id ini dalam skrip atau pintasan tidak akan berfungsi.
synclient
benar-benar berfungsi di Arch Linux. Terima kasih begitu banyak !!!
xinput <enable/disable> <id>
, karena pengaturan TouchpadOff
via synclient
tidak efektif.
xinput
. Saya agak acar dengan keyboard bawaan saya dan tombol trackpoint yang tampaknya mengirimkan input buruk yang mengganggu input dari keyboard eksternal. Ini memungkinkan saya untuk menonaktifkan perangkat bawaan. Tepuk tangan! :)
synclient
dan xinput
tidak akan berfungsi jika Anda menggunakan lingkungan gnome (atau unity, cinnamon), karena itu akan mengesampingkan pengaturan, jadi jika Anda ingin synclient
atau xinput
mengambil alih pengaturan ini, Anda harus menonaktifkannya terlebih dahulu:
instal dconf-editor
jika tidak diinstal:
apt-get install dconf-editor
menjalankan dconf-editor
dconf-editor
buka direktori /org/gnome/settings-daemon/plugins/mouse/
atau /org/cinnamon/settings-daemon/plugins/mouse/
, dan hapus centang pada kotak centang untuk active
.
logout
atau reboot
Ini seharusnya membuat synclient
atau xinput
bekerja.
Daftar perangkat input Anda:
xinput list
Dalam kasus saya, saya memiliki daftar ini:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Nonaktifkan touchpad Anda dengan memberikan ID
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
dan xinput disable [device]
langsung. Namun ketika scripting, menggunakan set-prop [device] "Device Enabled" [value]
mungkin sedikit lebih mudah, seperti dalam jawaban Pengembang Python Dunia.
Saya menulis sepotong kode python sehingga Anda dapat menggunakan xinput
teknik tanpa melakukan semua pekerjaan manual. Copyleft, SEBAGAIMANA ADANYA, tanpa jaminan, gunakan dengan risiko Anda sendiri. Berfungsi bagus untuk saya: dan jika Anda menggunakan gnome, cukup petakan ke pintasan kunci seperti 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()
Di Gnome, tombol fungsi saya untuk mengaktifkan touchpad tidak berfungsi karena beberapa alasan, jadi saya membuat skrip menggunakan gsettings.
xinput
solusi sepenuhnya menonaktifkan touchpad seperti yang diharapkan. Jika seperti saya, satu-satunya masalah Anda adalah Anda secara tidak sengaja memindahkan kursor saat mengetik, meskipun, itu sudah cukup.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()
Ini juga harus bekerja pada Unity, tetapi saya belum menguji.