Risposte:
Per disattivare il touchpad:
synclient TouchpadOff=1
Per riattivarlo:
synclient TouchpadOff=0
Esistono almeno due metodi (che conosco) che potresti provare.
Se il tuo laptop è dotato di un touchpad Synaptics (o ALPS), puoi effettivamente utilizzarlo synclient
come già menzionato da Shutupsquare. Sto eseguendo Ubuntu 14.04 e sul mio computer è stato installato di default.
Verifica se è installato Synclient: synclient -V
(dovrebbe riportare il numero di versione)
Attiva il touchpad: synclient TouchpadOff=0
Disattiva il touchpad: synclient TouchpadOff=1
Non l'ho provato da solo, ma se il tuo obiettivo non è muovere il mouse quando le braccia sono appoggiate sul touchpad, questo potrebbe essere d'aiuto.
Attiva il rilevamento palmare: synclient PalmDetect=1
Disattiva il rilevamento palmare: synclient PalmDetect=0
In generale puoi configurare qualsiasi proprietà del tuo touchpad Synaptics da synclient property=value
. Dove la proprietà è una delle proprietà disponibili mostrate dasynclient -l
ubuntu - wiki di aiuto di comunità - SynapticsTouchpad
archlinux - wiki - Touchpad Synaptics
chiedi a ubuntu - Come posso mantenere le mie impostazioni di sincronizzazione? - Ubuntu
Se non si desidera o non è possibile utilizzare il synclient, è possibile utilizzare anche xinput
. La procedura è in qualche modo simile.
elenca tutti i dispositivi xinput: xinput
Parte dell'uscita potrebbe apparire così:
⎡ 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)]
In questo caso particolare il mio touchpad ha id = 17 e il suo nome completo è "ETPS / 2 Elantech Touchpad".
Il comando per impostare una proprietà è xinput set-prop
. La proprietà per abilitare o disabilitare il touchpad è Device Enabled
, quindi per abilitarlo o disabilitarlo digitare:
Attiva il touchpad: xinput set-prop <id> "Device Enabled" 1
(dov'è <id>
l'ID del tuo dispositivo, nel mio caso 17)
Disattiva il touchpad: xinput set-prop <id> "Device Enabled" 0
Attiva il rilevamento palmare: xinput set-prop <id> "Palm Detection" 1
Disattiva il rilevamento palmare: xinput set-prop <id> "Palm Detection" 0
Per interrogare le proprietà disponibili: xinput list-props <id>
OPPURE xinput list-props <full-name>
, dovrebbe essere abbastanza simile a synclient -l
.
Quando si impostano le proprietà tramite uno dei due xinput
o synclient
le proprietà non sono impostate sull'altro strumento. Inoltre non sono ambientati nel centro di controllo unità.
synclient
non ha funzionato per me, ha xinput
fatto.
xinput
ID possono cambiare al riavvio. Quindi fare affidamento su questi ID negli script o nelle scorciatoie non funzionerà.
synclient
funziona totalmente su Arch Linux. Grazie così tanto !!!
xinput <enable/disable> <id>
, poiché l'impostazione TouchpadOff
via synclient
era inefficace.
xinput
. Ero in un po 'un casino con la mia tastiera integrata e i pulsanti trackpoint apparentemente inviando input cattivi che interferivano con l'input dalla tastiera esterna. Questo mi ha permesso di disabilitare i dispositivi integrati. Saluti! :)
synclient
e xinput
non funzionerà se si utilizza l'ambiente gnome (o unity, cannella), perché sovrascriverà le impostazioni, quindi se si desidera synclient
o xinput
assumere queste impostazioni, è necessario prima disabilitarlo:
installa dconf-editor
se non installato:
apt-get install dconf-editor
correre dconf-editor
dconf-editor
aprire la directory /org/gnome/settings-daemon/plugins/mouse/
o /org/cinnamon/settings-daemon/plugins/mouse/
e deselezionare la casella di controllo per active
.
logout
o reboot
Questo dovrebbe funzionare synclient
o xinput
funzionare.
Elenca i tuoi dispositivi di input:
xinput list
Nel mio caso ho questo elenco:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Disabilita il tuo touchpad passando l'ID
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
e xinput disable [device]
direttamente. Tuttavia, quando si esegue lo script, l'utilizzo set-prop [device] "Device Enabled" [value]
potrebbe essere un po 'più semplice, come nella risposta di World Python Developer.
Ho scritto un pezzo di codice Python in modo che tu possa usare la xinput
tecnica senza fare tutto il lavoro manuale. Copyleft, AS-IS, nessuna garanzia, utilizzare a proprio rischio. Funziona benissimo per me: e se stai usando gnome, basta mapparlo su una scorciatoia da tastiera come 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()
Su Gnome, il mio tasto funzione per attivare / disattivare il touchpad non funzionava per qualche motivo, quindi ho creato uno script usando gsettings.
xinput
soluzione disattiva completamente il touchpad come previsto. Se come me, il tuo unico problema è che stai spostando inavvertitamente il cursore durante la digitazione, tuttavia, sarà sufficiente.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()
Dovrebbe funzionare anche su Unity, ma non ho ancora testato.