Yanıtlar:
Dokunmatik yüzeyi kapatmak için:
synclient TouchpadOff=1
Tekrar açmak için:
synclient TouchpadOff=0
Deneyebileceğiniz en az iki yöntem var.
Dizüstü bilgisayarınızda bir Synaptics (veya ALPS) touchpad varsa, synclient
Shutupsquare tarafından daha önce belirtildiği gibi kullanabilirsiniz . Ubuntu 14.04 kullanıyorum ve makinemde varsayılan olarak kuruldu.
Synclient'in kurulu olup olmadığını test edin: synclient -V
(sürüm numarasını bildirmelidir)
Dokunmatik ekranı açın: synclient TouchpadOff=0
Dokunmatik ekranı KAPALI konuma getirin: synclient TouchpadOff=1
Bunu kendim test etmedim, ancak hedefiniz fareler dokunmatik yüzey üzerinde dururken fareyi hareket ettirmek değilse, bu yardımcı olabilir.
Avuç içi algılamayı AÇIK konuma getirin: synclient PalmDetect=1
Avuç içi algılamayı KAPALI konuma getirin: synclient PalmDetect=0
Genel olarak Synaptics dokunmatik yüzeyinizin herhangi bir özelliğini, tarafından yapılandırabilirsiniz synclient property=value
. Özelliğin, gösterilen özelliklerden biri olduğu yersynclient -l
ubuntu - comminity yardım wiki - SynapticsTouchpad
archlinux - wiki - Dokunmatik Yüzey Synaptics
ask ubuntu - Eşlik eden ayarlarımı nasıl yapıştırabilirim? - Ubuntu
İstemciyi istemiyorsanız veya kullanamıyorsanız, kullanabilirsiniz xinput
. Prosedür biraz benzer.
tüm xinput cihazlarını listele: xinput
Çıkışın bir parçası şöyle görünebilir:
⎡ 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)]
Bu özel durumun touchpad'imde id = 17 ve tam adı "ETPS / 2 Elantech Touchpad".
Bir özelliği ayarlama komutu xinput set-prop
. Dokunmatik yüzeyi etkinleştirme veya devre dışı bırakma özelliği, onu etkinleştirme veya devre dışı bırakma özelliğidir Device Enabled
:
Dokunmatik ekranı açın: xinput set-prop <id> "Device Enabled" 1
( <id>
cihaz kimliğiniz nerede , benim durumumda 17)
Dokunmatik ekranı KAPALI konuma getirin: xinput set-prop <id> "Device Enabled" 0
Avuç içi algılamayı AÇIK konuma getirin: xinput set-prop <id> "Palm Detection" 1
Avuç içi algılamayı KAPALI konuma getirin: xinput set-prop <id> "Palm Detection" 0
Kullanılabilir özellikleri sorgulamak için: xinput list-props <id>
VEYA xinput list-props <full-name>
, bu oldukça sessiz olmalıdır synclient -l
.
Aracılığıyla ya özelliklerini ayarlarken xinput
veya synclient
özellikleri diğer alete ayarlanmamış. Aynı zamanda birlik kontrol merkezinde ayarlanmamışlar.
synclient
benim için işe xinput
yaramadı.
xinput
Kimliklerin yeniden başlatmalar arasında değişebileceğini unutmayın . Bu yüzden komut dosyalarında veya kısayollarda bu kimliklere güvenmek işe yaramaz.
synclient
tamamen Arch Linux'ta çalışıyor. Teşekkürler bu kadar çok !!!
xinput <enable/disable> <id>
ayarlama gibi, TouchpadOff
üzeri synclient
etkisizdi.
xinput
. Dahili klavyem ve trackpoint düğmelerimin dış klavyeden gelen girişi engelleyen kötü girdiler gönderdiği anlaşılıyordu. Bu, yerleşik cihazları devre dışı bırakmama izin verdi. Şerefe! :)
synclient
ve xinput
eğer gnome (veya birlik, tarçın) ortamı kullanıyorsanız çalışmaz, çünkü ayarları geçersiz kılar, bu yüzden bu ayarları devralmak istiyorsanız synclient
veya xinput
önce
dconf-editor
yüklü değilse kur :
apt-get install dconf-editor
Çalıştırmak dconf-editor
dconf-editor
dizini açın /org/gnome/settings-daemon/plugins/mouse/
veya /org/cinnamon/settings-daemon/plugins/mouse/
, ve onay kutusundaki işareti kaldırın active
.
logout
veya reboot
Bu yapmalı synclient
veya xinput
çalışmalı.
Giriş cihazlarınızı listeleyin:
xinput list
Benim durumumda bu liste var:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Kimliğinizi ileterek dokunmatik yüzeyinizi devre dışı bırakın
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
ve xinput disable [device]
doğrudan kullanabilirsiniz . Ancak komut dosyası yazarken, set-prop [device] "Device Enabled" [value]
World Python Developer'in cevabında olduğu gibi kullanımı biraz daha kolay olabilir.
Tek bir kod parçasını yazdım, böylece xinput
tüm manuel işleri yapmadan tekniği kullanabiliyordunuz . Copyleft, AS-IS, garanti yok, kendi sorumluluğunuzdadır kullanın. Benim için harika çalışıyor: ve gnome kullanıyorsanız, bunu sadece gibi bir anahtar kısayolla eşleştirin 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'da touchpad'i değiştirmek için kullanılan fonksiyon tuşum bir nedenden dolayı işe yaramadı, bu yüzden gsettings kullanarak bir senaryo yazdım.
xinput
çözüm dokunmatik yüzeyi beklendiği gibi tamamen devre dışı bırakır. Benim gibiyseniz, tek probleminiz yazarken imleci yanlışlıkla hareket ettirmenizdir, ancak bu yeterli olacaktır.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()
Aynı zamanda Birlik üzerinde çalışmalı, ama henüz test etmedim.