Est-il possible de désactiver un pavé tactile à l'aide d'une commande de terminal?
Pour désactiver le pavé tactile:
synclient TouchpadOff=1
Pour le réactiver:
synclient TouchpadOff=0
Vous pouvez essayer au moins deux méthodes (à ma connaissance).
Si votre ordinateur portable est équipé d'un pavé tactile Synaptics (ou ALPS), vous pouvez en effet utiliser synclient
comme déjà mentionné par Shutupsquare. J'utilise Ubuntu 14.04 et sur ma machine, il a été installé par défaut.
Testez si le synclient est installé: synclient -V
(il devrait indiquer le numéro de version)
Activer le touchpad: synclient TouchpadOff=0
Désactiver le pavé tactile: synclient TouchpadOff=1
Je n'ai pas testé cela moi-même, mais si votre objectif est de ne pas déplacer la souris lorsque vos bras reposent sur la tablette tactile, cela pourrait vous aider.
Activer la détection Palm: synclient PalmDetect=1
Désactiver la détection Palm: synclient PalmDetect=0
En général, vous pouvez configurer n’importe quelle propriété de votre pavé tactile Synaptics avec synclient property=value
. Où la propriété est l'une des propriétés disponibles affichées par synclient -l
buntu - wiki d'aide de Comminity - SynapticsTouchpad
archlinux - wiki - Pavé tactile Synaptics
ask ubuntu - Comment puis-je conserver les paramètres de mon synclient? - Ubuntu
Si vous ne voulez pas ou ne pouvez pas utiliser synclient, vous pouvez également utiliser xinput
. La procédure est un peu similaire.
liste tous les périphériques xinput: xinput
Une partie de la sortie pourrait ressembler à ceci:
⎡ 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)]
Dans ce cas particulier, mon touchpad a id = 17 et son nom complet est "ETPS/2 Elantech Touchpad".
La commande permettant de définir une propriété est xinput set-prop
. La propriété permettant d'activer ou de désactiver le pavé tactile est Device Enabled
. Pour l'activer ou la désactiver, tapez:
Activez le touchpad: xinput set-prop <id> "Device Enabled" 1
(où <id>
est l'identifiant de votre appareil, dans mon cas 17)
Désactiver le pavé tactile: xinput set-prop <id> "Device Enabled" 0
Activer la détection Palm: xinput set-prop <id> "Palm Detection" 1
Désactiver la détection Palm: xinput set-prop <id> "Palm Detection" 0
Pour interroger les propriétés disponibles: xinput list-props <id>
OR xinput list-props <full-name>
, cela devrait être assez similaire à synclient -l
.
Lors de la définition des propriétés via xinput
ou synclient
, les propriétés ne sont pas définies sur l'autre outil. Ils ne sont pas non plus placés dans le centre de contrôle de l'unité.
synclient
et xinput
ne fonctionneront pas si vous utilisez un environnement gnome (ou unité, cannelle), car ils remplaceront les paramètres. Par conséquent, si vous souhaitez que synclient
ou xinput
accepte ces paramètres, vous devez d'abord le désactiver:
installez dconf-editor
s'il n'est pas installé:
apt-get install dconf-editor
lancer dconf-editor
dconf-editor
ouvrez le répertoire /org/gnome/settings-daemon/plugins/mouse/
ou /org/cinnamon/settings-daemon/plugins/mouse/
et décochez la case correspondant à active
.
logout
ou reboot
Cela devrait permettre à synclient
ou xinput
de fonctionner.
Listez vos périphériques d'entrée:
xinput list
Dans mon cas j'ai cette liste:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
Désactiver votre touchpad en passant l'ID
xinput set-prop 15 "Device Enabled" 0
J'ai écrit un morceau de code python afin que vous puissiez utiliser la technique xinput
sans effectuer tout le travail manuel. Copyleft, AS-IS, sans garantie, à utiliser à vos risques et périls. Cela fonctionne très bien pour moi: et si vous utilisez gnome, associez-le simplement à un raccourci clavier comme 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()
Sur Gnome, ma touche de fonction pour basculer le pavé tactile ne fonctionnait pas pour une raison quelconque, j'ai donc créé un script en utilisant gsettings.
xinput
désactive complètement le pavé tactile comme prévu. Si comme moi, votre seul problème est que vous déplacez le curseur par inadvertance en tapant, cependant, cela suffira.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 __== '__main__':
main()
Cela devrait également fonctionner sur Unity, mais je n'ai pas encore testé.