125 votes

Y a-t-il un moyen de désactiver le clavier interne d'un ordinateur portable ?

Il y a une semaine, j'ai renversé le contenu de ma tasse sur le clavier de mon ordinateur portable. La moitié des touches ne fonctionnent plus, sauf une ! La lettre Q qui est très active régulièrement.

Cela est très perturbant car je travaille.

Y a-t-il un moyen de désactiver le clavier interne d'un ordinateur portable ?

Est-ce possible avec xmodmap ?

199voto

Vous pouvez utiliser xinput pour connecter le périphérique d'entrée sous X.

  1. Exécutez la commande xinput list pour lister vos périphériques d'entrée.
  2. Localisez AT Translated Set 2 keyboard et notez son numéro id; celui-ci sera utilisé pour désactiver le clavier. Notez également le numéro à la fin, [slave keyboard (#)]; il s'agit du numéro id du master, qui sera utilisé pour réactiver votre clavier.
  3. Pour désactiver le clavier, exécutez la commande xinput float , où est le numéro id de votre clavier. Par exemple, si l'id était 10, alors la commande serait xinput float 10.
  4. Pour réactiver le clavier, exécutez la commande xinput reattach , où master est ce deuxième numéro que nous avons noté. Donc si le numéro était 3, vous feriez xinput reattach 10 3.

Voici une démonstration :

$ xinput list Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] Logitech Unifying Device. Wireless PID:4004 id=13 [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)] Sleep Button id=8 [slave keyboard (3)] Acer CrystalEye webcam id=9 [slave keyboard (3)] AT Translated Set 2 keyboard id=10 [slave keyboard (3)] $ xinput float 10 $ xinput list Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] Logitech Unifying Device. Wireless PID:4004 id=13 [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)] Sleep Button id=8 [slave keyboard (3)] Acer CrystalEye webcam id=9 [slave keyboard (3)] AT Translated Set 2 keyboard id=10 [flottant esclave] $ xinput reattach 10 3 $ xinput list Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] Logitech Unifying Device. Wireless PID:4004 id=13 [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)] Sleep Button id=8 [slave keyboard (3)] Acer CrystalEye webcam id=9 [slave keyboard (3)] AT Translated Set 2 keyboard id=10 [slave keyboard (3)]

35voto

mxdsp Points 3576

Voici un petit bouton de commutation pour activer et désactiver un clavier spécifique. Tout d'abord, vous devez trouver l'identifiant de votre clavier avec xinput ou xinput-list.

Script Bash pour activer/désactiver le clavier

#!/bin/bash
Icon="/CHEMIN/VERS/ICON_ON"
Icoff="/CHEMIN_VERS_ICON_OFF"
fconfig=".clavier" 
id=12

if [ ! -f $fconfig ];
    then
        echo "Création du fichier de configuration"
        echo "activé" > $fconfig
        var="activé"
    else
        read -r var< $fconfig
        echo "le clavier est : $var"
fi

if [ $var = "désactivé" ];
    then
        notify-send -i $Icon "Activation du clavier..." \ "Activé - Clavier connecté !";
        echo "activer le clavier..."
        xinput enable $id
        echo "activé" > $fconfig
    elif [ $var = "activé" ]; then
        notify-send -i $Icoff "Désactivation du clavier" \ "Désactivé - Clavier déconnecté";
        echo "désactiver le clavier"
        xinput disable $id
        echo 'désactivé' > $fconfig
fi

Configuration

  • Icon comme le chemin de l'icône à afficher lors de l'activation (par exemple, /home/utilisateur/chemin/icone.png)

  • Icoff comme le chemin de l'icône à afficher lors de la désactivation

  • J'ai utilisé les icônes suivantes : description de l'image ici description de l'image ici

  • id comme l'identifiant du clavier (trouvé avec xinput)

  • fconfig chemin du fichier de configuration. Changez si vous voulez créer le fichier de configuration dans un autre répertoire

Ne pas essayer d'exécuter le script si vous ne pouvez pas le réexécuter sans utiliser votre clavier (sauf si vous avez bien sûr un autre clavier). Créez le lanceur suivant (dans home/utilisateur/.local/share/applications) et ajoutez-le à unity :

Entrée de bureau (lanceur Unity)

[Desktop Entry]
Version=1.0
Type=Application
Name=Clavier ON-OFF
Icon=CHEMIN/VERS/VOTRE/ICON
Exec=bash NOM_DE_VOTRE_SCRIPT.sh
Path=CHEMIN/VERS/VOTRE/SCRIPT
NoDisplay=false
Categories=Utility;
StartupNotify=false
Terminal=false

RÉSULTAT :

Lanceur :

description de l'image ici

Notifications :

description de l'image ici description de l'image ici

17voto

janot Points 1461

Les id des périphériques reçus de xinput list comme suggéré dans la réponse acceptée sont parfois modifiés d'une manière ou d'une autre au redémarrage (du moins sur mon PC), ce qui entraîne la désactivation du mauvais périphérique.

C'est pourquoi j'ai fini par utiliser le nom du périphérique au lieu de l'id, par exemple :

xinput disable "AT Translated Set 2 keyboard"

13voto

Jash Jacob Points 4212

J'ai pensé à 2 façons de faire cela :

  1. En configurant un mauvais modèle pour le clavier de votre ordinateur portable dans xorg.conf ?

  2. En installant Lock-keyboard-for-Baby

`Lock-keyboard-for-Baby ou lk4b en abrégé, est un petit programme qui verrouille votre clavier tout en laissant votre souris libre. Je l'ai écrit parce que ma nièce aime taper sur mon clavier chaque fois qu'elle me voit m'asseoir devant. Les touches tapées sur un clavier peuvent avoir des conséquences désastreuses et je ne voulais pas verrouiller mon écran tout le temps avec un économiseur d'écran.

Lorsqu'il démarre, lock-keyboard-for-baby ouvre une petite fenêtre qui saisit le clavier et affiche les touches tapées. Par défaut, il vous indique ce qu'il faut taper pour quitter ("Quit Now").

Contrairement à un économiseur d'écran, votre écran n'est pas bloqué et la souris fonctionne toujours partiellement, vous permettant ainsi de voir ce qui s'y trouve - regardez la télévision / une vidéo et/ou lisez un document tout en utilisant la souris pour faire défiler.`

Exigences :

· GTK >= 2.x · bindings perl GTK2 (perl-gtk2 ou gtk2-perl selon votre système)

12voto

Rokibul Hasan Points 221

Pour désactiver le clavier interne de l'ordinateur portable de manière permanente sous Ubuntu, vous devez passer ces paramètres de noyau i8042.nokbd pour ne pas vérifier/créer le port du clavier

i8042.nokbd [HW] Ne pas vérifier/créer de port de clavier

Ouvrez le terminal et exécutez la commande suivante

$sudo gedit /etc/default/grub

Essayez de trouver la ligne suivante

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Ajoutez le paramètre i8042.nokbd, la ligne ci-dessus devrait ressembler à ceci

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Mettez à jour grub avec la commande suivante

$sudo update-grub     

Ensuite, redémarrez votre ordinateur portable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X