Respostas:
Para desativar o touch pad:
synclient TouchpadOff=1
Para ligá-lo novamente:
synclient TouchpadOff=0
Existem pelo menos dois métodos (que eu conheço) que você poderia tentar.
Se o seu laptop estiver equipado com um touchpad Synaptics (ou ALPS), você poderá usá-lo synclient
como já mencionado pelo Shutupsquare. Estou executando o Ubuntu 14.04 e na minha máquina ele foi instalado por padrão.
Teste se o synclient está instalado: synclient -V
(deve informar o número da versão)
Ligue o touchpad: synclient TouchpadOff=0
Desative o touchpad: synclient TouchpadOff=1
Eu mesmo não testei isso, mas se seu objetivo é não mover o mouse quando seus braços estão apoiados no touch pad, isso pode ajudar.
Ative a detecção de palma: synclient PalmDetect=1
Desative a detecção de palma: synclient PalmDetect=0
Em geral, você pode configurar qualquer propriedade do touchpad Synaptics synclient property=value
. Onde a propriedade é uma das propriedades disponíveis mostradas porsynclient -l
ubuntu - wiki de ajuda comminity - SynapticsTouchpad
archlinux - wiki - Touchpad Synaptics
Como faço para manter minhas configurações de sincronização? - Ubuntu
Se você não quiser ou não puder usar o synclient, também poderá usar xinput
. O procedimento é um pouco semelhante.
listar todos os dispositivos xinput: xinput
Parte da saída pode ficar assim:
⎡ 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)]
Nesse caso específico, meu touchpad tem id = 17 e seu nome completo é "ETPS / 2 Elantech Touchpad".
O comando para definir uma propriedade é xinput set-prop
. A propriedade para ativar ou desativar o touchpad é Device Enabled
, para ativá-lo ou desativá-lo, digite:
Ative o touchpad: xinput set-prop <id> "Device Enabled" 1
(onde <id>
está o ID do seu dispositivo, no meu caso 17)
Desative o touchpad: xinput set-prop <id> "Device Enabled" 0
Ative a detecção de palma: xinput set-prop <id> "Palm Detection" 1
Desative a detecção de palma: xinput set-prop <id> "Palm Detection" 0
Para consultar as propriedades disponíveis: xinput list-props <id>
OU xinput list-props <full-name>
, isso deve ser bastante semelhante ao synclient -l
.
Ao definir propriedades por meio de uma xinput
ou synclient
as propriedades, não estão definidas para a outra ferramenta. Eles também não estão definidos no centro de controle da unidade.
synclient
não funcionou para mim, xinput
funcionou.
xinput
IDs podem mudar durante a reinicialização. Portanto, confiar nesses IDs em scripts ou atalhos não funcionará.
synclient
funciona totalmente no Arch Linux. Obrigado assim muito !!!
xinput <enable/disable> <id>
, pois a configuração TouchpadOff
via synclient
era ineficaz.
xinput
. Eu estava meio confuso com o meu teclado embutido e os botões do trackpoint, aparentemente enviando entradas ruins que interferiam na entrada do teclado externo. Isso permitiu ao meu desativar os dispositivos internos. Felicidades! :)
synclient
e xinput
não funcionará se você estiver usando o ambiente gnome (ou unity, canela), porque substituirá as configurações; portanto, se você quiser synclient
ou xinput
assumir essas configurações, desative-o primeiro:
instale dconf-editor
se não estiver instalado:
apt-get install dconf-editor
corre dconf-editor
dconf-editor
abra o diretório /org/gnome/settings-daemon/plugins/mouse/
ou /org/cinnamon/settings-daemon/plugins/mouse/
desmarque a caixa de seleção active
.
logout
ou reboot
Isso deve fazer synclient
ou xinput
funcionar.
Liste seus dispositivos de entrada:
xinput list
No meu caso, eu tenho esta lista:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Desative seu touchpad passando o ID
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
e xinput disable [device]
diretamente. Ao criar scripts, o uso set-prop [device] "Device Enabled" [value]
pode ser um pouco mais fácil, como na resposta do desenvolvedor do World Python.
Eu escrevi um pedaço de código python para que você possa usar a xinput
técnica sem fazer todo o trabalho manual. Copyleft, COMO ESTÁ, sem garantia, use por seu próprio risco. Funciona muito bem para mim: e se você estiver usando o gnome, mapeie-o para um atalho de tecla como 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()
No Gnome, minha tecla de função para alternar o touchpad não estava funcionando por algum motivo, então fiz um script usando gsettings.
xinput
solução desativa completamente o touchpad conforme o esperado. Se como eu, seu único problema é que você está inadvertidamente movendo o cursor enquanto digita, porém, isso será suficiente.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()
Também deve funcionar no Unity, mas não testei.