web-dev-qa-db-fra.com

Comment désactiver / activer / basculer le pavé tactile dans un ordinateur portable Dell

J'essaie de modifier le touchpad sur Ubuntu 16.04, mais aucune des méthodes habituelles ne semble fonctionner. par exemple.

synclient touchpadOff=1

Ça fonctionne encore!

$ xinput set-prop $DEVICE_ID "Device Enabled" 0
$ xinput list-props 15 |head -n2
  Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (168):   0

...ça fonctionne encore!

Je peux le désactiver depuis l'application Paramètres. mais je veux pouvoir mapper ceci à un raccourci clavier, alors je cherche une solution en ligne de commande.

Les points bonus si vous répondez fonctionnent aussi bien dans Gnome-Shell que dans Unity :-)

EDIT: sortie de xinput comme demandé dans le commentaire.

$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=12   [slave  pointer  (2)]
⎜   ↳ DLL06E4:01 06CB:7A13 Touchpad             id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=16   [slave  keyboard (3)]

Nb. J'ai utilisé 15 pour $DEVICE_ID

EDIT - grâce à la réponse ci-dessous, voici mon script de bascule

Vous pouvez le faire en une ligne, mais vous recevez également une notification Nice. Je l'ai attaché à une touche de raccourci et cela fonctionne un charme. Merci a tous.

#!/bin/bash
if xinput list-props 13 | grep "Device Enabled (168):.*1" >/dev/null
then
  xinput disable 13
  notify-send -u low -i mouse "Trackpad disabled"
else
  xinput enable 13
  notify-send -u low -i mouse "Trackpad enabled"
fi
7
artfulrobot

Vous pouvez désactiver le touchpad avec cette commande:

xinput disable 13

Activer le retour par

xinput enable 13

Le périphérique n'est pas contrôlé par psmouse. Il est contrôlé par synaptics_i2c. Et c'est le périphérique 13.

Vous pouvez également basculer par nom, comme vous avez essayé auparavant, pour ne pas dépendre de l'ID. Mais si vous ne connectez pas de nouveaux périphériques d'entrée, l'ID doit rester.

Voir cette réponse pour plus de détails.

Pour supprimer un périphérique mal détecté, vous devez ajouter i8042.nopnp paramètre de démarrage du noyau.

9
Pilot6

Utiliser gsettings

Si vous pouvez modifier les paramètres avec gsettings, c'est généralement l'option préférée. Étant donné que vous pouvez activer/désactiver le pavé tactile à partir des paramètres système, et que je suis pratiquement sûr que les paramètres système utilisent l'utilisation de gsettings, il semble que la méthode ci-dessous devrait faire l'affaire. , sur votre Dell aussi.

Script pour basculer le touchpad

14.04

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad" ;val = "touchpad-enabled"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "false" if curr == "true" else "true"
subprocess.Popen(["gsettings", "set", key, val, newval])

15.04 +

#!/usr/bin/env python3
import subprocess

key = "org.gnome.desktop.peripherals.touchpad" ;val = "send-events"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "disabled" if curr == "'enabled'" else "enabled"
subprocess.Popen(["gsettings", "set", key, val, newval])

Pour l'utiliser

  1. Copiez le script ci-dessus, pour votre version correcte d'Ubuntu, dans un fichier vide, enregistrez-le sous le nom toggle_touchpad.py
  2. Ajoutez la commande suivante à un raccourci:

    python3 /path/to/toggle_touchpad.py
    

    Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:

    python3 /path/to/toggle_touchpad.py
    

Explication

La commande pour désactiver le pavé tactile:

pour 14.04:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

pour 15.04 +:

gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled

Lire l'état actuel

Si nous utilisons un script pour lire les paramètres actuels à l'aide de la commande:

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

(14.04), ou

gsettings get org.gnome.desktop.peripherals.touchpad send-events

(15.04+)

Nous pouvons faire en sorte que le script définisse la valeur opposée et que bascule le pavé tactile.



MODIFIER; version bash du script de basculement

Pour être complet, et parce que OP a indiqué que le ou les scripts python fonctionnaient mais ne souhaitaient pas utiliser python, la ou les versions bash des deux scripts de basculement:

14.04

#!/bin/bash

key="org.gnome.settings-daemon.peripherals.touchpad"
val="touchpad-enabled" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "false" ]
then
 gsettings set $key $val true
else
 gsettings set $key $val false
fi

15.04 +

#!/bin/bash

key="org.gnome.desktop.peripherals.touchpad"
val="send-events" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "'enabled'" ]
then
 gsettings set $key $val disabled
else
 gsettings set $key $val enabled
fi

Mettre sous une touche de raccourci

  • Enregistrez le script sous toggle_touchpad.sh
  • mettez la commande suivante sous un raccourci personnalisé:

    /bin/bash /path/to/toggle_touchpad.sh
    
3
Jacob Vlijm

Je suis aussi sur 16.04. J'utilise généralement un petit script que je mets sur un raccourci clavier. Lorsque j'exécute, mon pavé tactile est désactivé ... mais quelques secondes après, il s'allume ...

Le scénario:

    #!/bin/sh

STATUS=`synclient | grep TouchpadOff | awk '{ print $3}'`

        if [ $STATUS != 1 ];
        then
                synclient touchpadOff=1;
        else
                synclient touchpadOff=2;
        fi
exit 0

Je n'essaie pas de l'utiliser avant de voir votre question ...

1
monitor35