Comment désactiver un pavé tactile à l'aide de la ligne de commande?


39

Est-il possible de désactiver un pavé tactile à l'aide d'une commande de terminal?

Réponses:


55

Pour désactiver le pavé tactile:

synclient TouchpadOff=1

Pour le réactiver:

synclient TouchpadOff=0

Simple mais aller au but.
Ade Malsasa Akbar

7
ne fonctionne pas sur mon ordinateur ...
Casper

Intéressant, bon à savoir.
Aleroxac

2
La commande a fonctionné sans erreur sur mon Ubuntu 14.04 LTS sur Dell XPS 13 mais n’a eu aucun effet.
IJ Kennedy

Basculer serait bien - je voudrais le mettre en place comme un raccourci ou quelque chose. Mieux encore, quand il est amarré, je veux le pavé tactile
Christian Bongiorno

22

Vous pouvez essayer au moins deux méthodes (à ma connaissance).

synclient

Si votre ordinateur portable est équipé d'un pavé tactile Synaptics (ou ALPS), vous pouvez en effet utiliser synclientcomme déjà mentionné par Shutupsquare. J'utilise Ubuntu 14.04 et sur ma machine, il a été installé par défaut.

Testez si synclient est installé: synclient -V(il devrait indiquer le numéro de version)

Activer le touchpad: synclient TouchpadOff=0

Désactiver le touchpad: 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 de paume: synclient PalmDetect=1

Désactiver la détection des paumes: synclient PalmDetect=0

En général, vous pouvez configurer n’importe quelle propriété de votre pavé tactile Synaptics synclient property=value. Lorsque la propriété est l'une des propriétés disponibles montrées parsynclient -l

Liens pour en savoir plus

ubuntu - wiki d'aide de comminity - SynapticsTouchpad

archlinux - wiki - Pavé tactile Synaptics

ask ubuntu - Comment puis-je conserver les paramètres de mon synclient? - Ubuntu

xinput

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 pour définir une propriété est xinput set-prop. La propriété pour activer ou désactiver le pavé tactile est Device Enabled, donc pour l'activer ou le désactiver tapez:

Activer le touchpad: xinput set-prop <id> "Device Enabled" 1(où <id>est l'identifiant de votre appareil, dans mon cas 17)

Désactiver le touchpad: xinput set-prop <id> "Device Enabled" 0

Activer la détection de paume: xinput set-prop <id> "Palm Detection" 1

Désactiver la détection des paumes: xinput set-prop <id> "Palm Detection" 0

Pour interroger les propriétés disponibles: xinput list-props <id>OU xinput list-props <full-name>, cela devrait être assez similaire à synclient -l.

Liens pour en savoir plus

ubuntu - wiki - entrée

REMARQUE

Lorsque vous définissez des propriétés via l'un xinputou synclientl' autre, 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é.


1
Merci pour la deuxième réponse. synclientne fonctionne pas pour moi, a xinputfait.
Robin Winslow

1
Notez que les xinputidentifiants peuvent changer après un redémarrage. Donc, compter sur ces identifiants dans les scripts ou les raccourcis ne fonctionnera pas.
Lode

synclientfonctionne totalement sur Arch Linux. Merci donc beaucoup !!!
Theodore R. Smith

Cela l'a fait pour moi. En particulier, j’ai découvert que j’avais besoin de courir xinput <enable/disable> <id>, car le réglage TouchpadOffvia synclientétait inefficace.
Michael Mol

Merci pour l'introduction à xinput. J'étais un peu embarrassé avec mon clavier intégré et les boutons de point de route qui envoyaient apparemment de mauvaises entrées qui interféraient avec l'entrée du clavier externe. Cela m'a permis de désactiver les périphériques intégrés. À votre santé! :)
sjakobi

4

synclientet xinputne fonctionnera pas si vous utilisez un environnement gnome (ou unite, cannelle), car il remplacera les parametres. Si vous voulez synclientou xinputpour reprendre ces parametres, vous devez d'abord le desactiver:

  1. installer dconf-editorsi non installé:

    apt-get install dconf-editor
    
  2. courir dconf-editor

    dconf-editor 
    
  3. ouvrez le répertoire /org/gnome/settings-daemon/plugins/mouse/ou /org/cinnamon/settings-daemon/plugins/mouse/décochez la case correspondante active.

  4. logout ou reboot

Cela devrait faire synclientou xinputtravailler.


1
  1. 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
    
  2. Désactiver votre touchpad en passant l'ID

    xinput set-prop 15 "Device Enabled" 0
    

Lorsque vous tapez manuellement, vous pouvez utiliser xinput enable [device]et xinput disable [device]directement. Cependant, lors de la création de scripts, l’utilisation set-prop [device] "Device Enabled" [value]peut être un peu plus facile, comme dans la réponse de World Python Developer.
Hsandt

1

J'ai écrit un morceau de code en python pour que vous puissiez utiliser la xinputtechnique sans effectuer tout le travail manuel. Copyleft, AS-IS, pas de garantie, utilisation à 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()

0

Sur Gnome, ma touche de fonction pour basculer le pavé tactile ne fonctionnait pas pour une raison quelconque, alors j'ai créé un script en utilisant gsettings.

  • Avantage: non spécifique au vendeur
  • Inconvénient: sur Gnome, les clics sur le pavé tactile (pas sur la touche) sont toujours gérés pour une raison quelconque, alors que la xinputsolution le désactive complètement 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 __name__ == '__main__':
    main()

Cela devrait également fonctionner sur Unity, mais je n'ai pas encore testé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.