Câu trả lời:
Để tắt bàn phím cảm ứng:
synclient TouchpadOff=1
Để bật lại:
synclient TouchpadOff=0
Có ít nhất hai phương pháp (mà tôi biết) bạn có thể thử.
Nếu máy tính xách tay của bạn được trang bị bàn di chuột Synaptics (hoặc ALPS), bạn thực sự có thể sử dụng synclient
như đã được đề cập bởi Shutupsapes. Tôi đang chạy Ubuntu 14.04 và trên máy của tôi, nó được cài đặt theo mặc định.
Kiểm tra nếu synclient được cài đặt: synclient -V
(cần báo cáo số phiên bản)
BẬT bàn di chuột: synclient TouchpadOff=0
TẮT bàn di chuột: synclient TouchpadOff=1
Tôi đã không tự mình kiểm tra điều này, nhưng nếu mục tiêu của bạn là không di chuyển chuột khi cánh tay của bạn nằm trên bàn di chuột, điều này có thể giúp ích.
Bật phát hiện lòng bàn tay: synclient PalmDetect=1
Tắt phát hiện lòng bàn tay: synclient PalmDetect=0
Nói chung, bạn có thể định cấu hình bất kỳ thuộc tính nào trên bàn di chuột Synaptics của mình synclient property=value
. Trong đó tài sản là một trong những thuộc tính có sẵn được hiển thị bởisynclient -l
ubfox - commality trợ wiki - SynapticsTouchpad
archlinux - wiki - Synaptics
hỏi ubfox - Làm cách nào để cài đặt đồng bộ hóa của tôi? - Ubuntu
Nếu bạn không muốn hoặc không thể sử dụng synclient, bạn cũng có thể sử dụng xinput
. Thủ tục có phần giống nhau.
liệt kê tất cả các thiết bị xinput: xinput
Một phần của ouput có thể trông như thế này:
⎡ 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)]
Trong trường hợp cụ thể, bàn di chuột của tôi có id = 17 và tên đầy đủ của nó là "ETPS / 2 Elantech Touchpad".
Lệnh để đặt một thuộc tính là xinput set-prop
. Thuộc tính để bật hoặc tắt bàn di chuột là Device Enabled
, vì vậy, để bật hoặc tắt loại này:
BẬT bàn di chuột: xinput set-prop <id> "Device Enabled" 1
( <id>
id thiết bị của bạn ở đâu, trong trường hợp của tôi 17)
TẮT bàn di chuột: xinput set-prop <id> "Device Enabled" 0
Bật phát hiện lòng bàn tay: xinput set-prop <id> "Palm Detection" 1
Tắt phát hiện lòng bàn tay: xinput set-prop <id> "Palm Detection" 0
Để truy vấn các thuộc tính có sẵn: xinput list-props <id>
HOẶC xinput list-props <full-name>
, điều này sẽ khá giống với synclient -l
.
Khi cài đặt thuộc tính thông qua một trong hai xinput
hoặc synclient
thuộc tính không được đặt thành công cụ khác. Họ cũng không được đặt trong trung tâm kiểm soát thống nhất.
synclient
đã không làm việc cho tôi, xinput
đã làm.
xinput
id có thể thay đổi khi khởi động lại. Vì vậy, việc dựa vào các id này trong tập lệnh hoặc phím tắt sẽ không hoạt động.
synclient
hoàn toàn hoạt động trên Arch Linux. Cảm ơn bạn rất nhiều !!!
xinput <enable/disable> <id>
, như thiết lập TouchpadOff
thông qua synclient
là không hiệu quả.
xinput
. Tôi đã có một chút khó khăn với bàn phím dựng sẵn và các nút theo dõi dường như gửi các đầu vào xấu gây cản trở đầu vào từ bàn phím ngoài. Điều này cho phép tôi vô hiệu hóa các thiết bị dựng sẵn. Chúc mừng! :)
synclient
và xinput
sẽ không hoạt động nếu bạn đang sử dụng môi trường gnome (hoặc unity, quế), vì nó sẽ ghi đè cài đặt, vì vậy nếu bạn muốn synclient
hoặc xinput
tiếp quản các cài đặt này, trước tiên bạn nên tắt nó:
cài đặt dconf-editor
nếu không cài đặt:
apt-get install dconf-editor
chạy dconf-editor
dconf-editor
mở thư mục /org/gnome/settings-daemon/plugins/mouse/
hoặc /org/cinnamon/settings-daemon/plugins/mouse/
và bỏ chọn hộp kiểm cho active
.
logout
hoặc là reboot
Điều này nên làm synclient
hoặc xinput
làm việc.
Liệt kê các thiết bị đầu vào của bạn:
xinput list
Trong trường hợp của tôi, tôi có danh sách này:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Vô hiệu hóa bàn di chuột của bạn bằng cách chuyển ID
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
và xinput disable [device]
trực tiếp. Khi viết kịch bản, việc sử dụng set-prop [device] "Device Enabled" [value]
có thể dễ dàng hơn một chút, như trong câu trả lời của World Python Developer.
Tôi đã viết một đoạn mã trăn để bạn có thể sử dụng xinput
kỹ thuật mà không cần thực hiện tất cả các công việc thủ công. Copyleft, AS-IS, không có bảo hành, sử dụng có nguy cơ của riêng bạn. Hoạt động rất tốt cho tôi: và nếu bạn đang sử dụng gnome, chỉ cần ánh xạ nó tới một phím tắt như thế nào 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()
Trên Gnome, phím chức năng của tôi để chuyển đổi bàn di chuột không hoạt động vì một số lý do, vì vậy tôi đã tạo một tập lệnh bằng gsinstall.
xinput
giải pháp này hoàn toàn vô hiệu hóa bàn di chuột như mong đợi. Nếu giống như tôi, vấn đề duy nhất của bạn là bạn vô tình di chuyển con trỏ trong khi gõ, tuy nhiên, điều đó là đủ.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()
Nó cũng sẽ hoạt động trên Unity, nhưng tôi chưa thử nghiệm.