web-dev-qa-db-fra.com

Existe-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 clés ne fonctionnent plus, sauf une! La lettre Q qui est très active régulièrement.

C'est très dérangeant pendant que je travaille.

Est-il possible de désactiver le clavier interne d'un ordinateur portable?

Est-ce possible avec xmodmap?

84
atmon3r

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

  1. Exécutez la commande xinput list pour répertorier vos périphériques d'entrée.
  2. Localisez AT Translated Set 2 keyboard et notez son numéro id; ceci sera utilisé pour désactiver le clavier. En outre, notez le numéro à la fin, [slave keyboard (#)]; Il s'agit du numéro d'identification de la variable master, qui sera utilisé pour réactiver votre clavier.
  3. Pour désactiver le clavier, exécutez la commande xinput float <id#>, où <id#> est le numéro d'identification de votre clavier. Par exemple, si le id était 10, la commande serait alors xinput float 10.
  4. Pour réactiver le clavier, exécutez la commande xinput reattach <id#> <master#>, où master est ce deuxième numéro noté. Donc, si le nombre était 3, vous feriez xinput reattach 10 3.

Voici une démonstration:

liste $ xinput
 ⎡ Identifiant de pointeur de noyau virtuel = 2 [pointeur principal (3)] 
 ⎜ Identifiant de pointeur XTEST de noyau virtuel = 4 [pointeur esclave (2)] 
 SynPS/2 Synaptics TouchPad id = 11 [pointeur esclave (2)] 
 ↳ Souris optique Logitech USB-PS/2 id = 12 [pointeur esclave (2)] 
 ↳ Dispositif unificateur Logitech. PID sans fil: 4004 id = 13 [pointeur esclave (2)] 
 ⎣ ID de clavier du noyau virtuel = 3 [clavier maître (2)] 
 Keyboard ID de clavier du noyau virtuel XTEST = 5 [clavier esclave ( 3)] 
 ↳ Id du bouton d'alimentation = 6 [clavier esclave (3)] 
 Id ID du bus vidéo = 7 [clavier esclave (3)] 
 ↳ Veille ID du bouton = 8 [Clavier esclave (3)] 
 ↳ Webcam id Acer CrystalEye = 9 [Clavier esclave (3)] 
 AT Traduit Ensemble 2 id clavier: =dix   [clavier esclave (3)] 
$ xinput float 10liste $ xinput
 ⎡ Identifiant de pointeur de noyau virtuel = 2 [pointeur principal (3)] 
 ⎜ Identifiant de pointeur XTEST de noyau virtuel = 4 [pointeur esclave (2)] 
 SynPS/2 Synaptics TouchPad id = 11 [pointeur esclave (2)] 
 ↳ Souris optique Logitech USB-PS/2 id = 12 [pointeur esclave (2)] 
 ↳ Dispositif unificateur Logitech. PID sans fil: 4004 id = 13 [pointeur esclave (2)] 
 ⎣ ID de clavier du noyau virtuel = 3 [clavier maître (2)] 
 Keyboard ID de clavier du noyau virtuel XTEST = 5 [clavier esclave ( 3)] 
 ↳ Id du bouton d'alimentation = 6 [clavier esclave (3)] 
 Id ID du bus vidéo = 7 [clavier esclave (3)] 
 ↳ Veille ID du bouton = 8 [clavier esclave (3)] 
 ↳ webcam Id Acer CrystalEye = 9 [clavier esclave (3)] 
 AT traduit 2 id de clavier = 10 [esclave flottant] 
$ xinput réattache 10 3liste $ xinput
 ⎡ Identifiant de pointeur de noyau virtuel = 2 [pointeur principal (3)] 
 ⎜ Identifiant de pointeur XTEST de noyau virtuel = 4 [pointeur esclave (2)] 
 SynPS/2 Synaptics TouchPad id = 11 [pointeur esclave (2)] 
 ↳ Souris optique Logitech USB-PS/2 id = 12 [pointeur esclave (2)] 
 ↳ Dispositif unificateur Logitech. PID sans fil: 4004 id = 13 [pointeur esclave (2)] 
 ⎣ ID de clavier du noyau virtuel = 3 [clavier maître (2)] 
 Keyboard ID de clavier du noyau virtuel XTEST = 5 [clavier esclave ( 3)] 
 ↳ Id du bouton d'alimentation = 6 [clavier esclave (3)] 
 Id ID du bus vidéo = 7 [clavier esclave (3)] 
 ↳ Veille ID du bouton = 8 [Clavier esclave (3)] 
 webcam Webcam id Acer CrystalEye = 9 [clavier esclave (3)] 
 AT Traduit Ensemble 2 id clavier: 10 [clavier esclave ( 3)] 
132

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

Script Bash pour activer/désactiver le clavier

#!/bin/bash
Icon="/PATH/TO/ICON_ON"
Icoff="/PATH_TO_ICON_OFF"
fconfig=".keyboard" 
id=12

if [ ! -f $fconfig ];
    then
        echo "Creating config file"
        echo "enabled" > $fconfig
        var="enabled"
    else
        read -r var< $fconfig
        echo "keyboard is : $var"
fi

if [ $var = "disabled" ];
    then
        notify-send -i $Icon "Enabling keyboard..." \ "ON - Keyboard connected !";
        echo "enable keyboard..."
        xinput enable $id
        echo "enabled" > $fconfig
    Elif [ $var = "enabled" ]; then
        notify-send -i $Icoff "Disabling Keyboard" \ "OFF - Keyboard disconnected";
        echo "disable keyboard"
        xinput disable $id
        echo 'disabled' > $fconfig
fi

Configuration

  • Iconcomme chemin de l'icône à afficher lors de l'activation (par exemple, /home/user/path/icon.png)
  • Icoffcomme chemin de l'icône à afficher lors de la désactivation
  • J'ai utilisé les icônes suivantes: enter image description hereenter image description here

  • idcomme identifiant de clavier (trouvé avec xinputname__)

  • fconfigchemin du fichier de configuration. Changer si vous voulez créer un fichier de configuration dans un autre répertoire

N'essayez pas de lancer le script si vous ne pouvez pas le relancer sans utiliser votre clavier (sauf si vous avez un autre clavier, bien sûr). Créez le programme de lancement suivant (dans home/user/.local/share/applications) et ajoutez-le à l'unité:

Entrée du bureau (lanceur Unity)

[Desktop Entry]
Version=1.0
Type=Application
Name=Clavier ON-OFF
Icon=PATH/TO/YOUR/ICON
Exec=bash NAME_OF_YOUR_SCRIPT.sh
Path=PATH/TO/YOUR/SCRIPT
NoDisplay=false
Categories=Utility;
StartupNotify=false
Terminal=false

RÉSULTAT :

Lanceur:

enter image description here

Notifications:

enter image description hereenter image description here

18
mxdsp

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

  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 bref, est un petit programme qui verrouille votre clavier tout en laissant votre souris libre. Je l'ai écrite parce que ma nièce aime frapper mon clavier chaque fois qu'elle me voit m'asseoir. Les touches tapées sur un clavier peuvent avoir des conséquences désastreuses et je ne voulais pas toujours verrouiller mon écran avec un économiseur d'écran.

Une fois démarré, lock-keyboard-for-baby ouvre une petite fenêtre dans laquelle sont saisies les touches du clavier et de l'écho saisies. Par défaut, il vous dit quoi taper pour quitter ("Quit maintenant").

Contrairement à un économiseur d'écran, votre écran n'est pas bloqué et la souris fonctionne encore partiellement. Vous pouvez donc toujours voir ce qu'il y a sur votre écran. Continuez à regarder la télévision/la vidéo et/ou lisez un document à l'aide de la souris pour faire défiler.

Exigences:

· GTK> = 2.x · Liaisons Perl GTK2 (Perl-gtk2 ou gtk2-Perl en fonction de votre système)

12
LnxSlck

Un moyen sûr de le désactiver consiste à débrancher le câble de signal. Vous devez faire apparaître le clavier pour cela. Pour plus d'informations sur cette procédure, consultez le Guide de maintenance et d'entretien du PC portable HP Pavilion dv9000 et dv92 .

Il existe maintenant un moyen de désactiver le clavier en utilisant xinput. T faire cela, appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez les commandes ci-dessous.

Pour lister les appareils de votre X

xinput --list

Pour désactiver le clavier:

xinput set-int-prop 2 "Device Enabled" 8 0

Pour réactiver le clavier:

xinput set-int-prop 2 "Device Enabled" 8 1

Si vous obtenez une erreur concernant les autorisations, utilisez les commandes ci-dessus avec Sudo.

10
Mitch

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

i8042.nokbd [HW] Don't check/create keyboard port

Ouvrez le terminal et lancez 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"

Mettre à jour grub en tant que commande suivante

$Sudo update-grub     

Puis reboot votre ordinateur portable.

5
Rokibul Hasan

Les périphériques idname __ reçus de xinput list comme suggéré dans réponse acceptée sont parfois modifiés au redémarrage (du moins sur mon PC), ce qui a entraîné la désactivation du mauvais périphérique.

C'est pourquoi j'ai fini d'utiliser device name au lieu de idname__, par exemple:

xinput disable "AT Translated Set 2 keyboard"
4
janot

Si je devais nettoyer le clavier et à cause de cela, il fallait toujours éteindre la machine. En conséquence, j'ai découvert ceci, pour désactiver temporairement le clavier:

 $ xinput float id #; sleep t; xinput rattachez id # master # 

t-heure de veille en secondes

id # et maître # comme mentionné ci-dessus ( haut de la page )

par exemple, dans mon cahier, j'ai tapé:

$ xinput float 11;sleep 5;xinput reattach 11 3
4
Tyþë-Ø

Essayez d’exécuter xmodmap -e 'keycode 24=' pour désactiver uniquement la touche Q. Si cela fonctionne, vous pouvez l'ajouter à votre fichier ~/.bashrc ou global /etc/bash.bashrc. J'ai eu cette idée de ici , qui montre toutes les correspondances de touches.

3
dxvxd

Pour ce que cela vaut, en me basant sur les réponses précédentes et sur mon propre jeu, j'ai créé le script suivant, que j'appelle toggle_keyboard.sh et que je place dans mon chemin ~/bin. J'ai un raccourci clavier qui l'exécute réglé sur CtrlWinK.

Quelques problèmes avec les réponses précédentes et les avantages de mon script:

  • L'utilisation d'un numéro d'identification avec xinput échoue lorsque vous redémarrez et que le numéro d'identification est modifié. Cela m'est arrivé lors de l'exécution de xinput float 13. J'ai fini par désactiver le mauvais matériel.
  • Compter sur un fichier pour conserver l'état activé/désactivé échouera également si vous redémarrez. Le fichier vous indiquera que le clavier est désactivé (si vous l'avez désactivé avec le script), mais après un redémarrage, il sera réactivé. Ma solution obtient les informations activées/désactivées à partir d'une commande xinput analysée.
  • Mon script fonctionnera avec tout périphérique xinput qui apparaît lorsque vous tapez xinput list --name-only. Obtenez juste le nom et éditez les quatre premières variables. Je l'utilise pour le clavier de mon ordinateur portable, ma webcam, mon moniteur à écran tactile et quelques autres choses que je n'utilise que de temps en temps.

#!/bin/bash
# Toggle the laptop keyboard either on or off and notify the user about it

# Device name can be found by typing this command: xinput list --name-only
DEVICE_NAME="AT Translated Set 2 keyboard"
# The display name of the device in the notify-send popup
DEVICE_DISPLAY_NAME="Laptop Keyboard"

# Set these to the icons you want to use.
# If they are not found, the notification will still work.
ICON_ENABLE="$HOME/.icons/keyboard.png"
ICON_DISABLE="$HOME/.icons/keyboard_disabled.png"

function xinput_set_prop() {
        xinput set-prop "$DEVICE_NAME" "Device Enabled" $1
}

function notify_change() {
        if [ -f "$1" ]; then
                notify-send --urgency=low --icon="$1" "$2"
        else
                notify-send --urgency=low "$2"
        fi
}

# Returns 1 if device is enabled, 0 if disabled
is_enabled=$(xinput list-props "$DEVICE_NAME" | grep "Device Enabled" | awk '{ print $4 }' | sed 's/[^0-9]*//g')

if [ $is_enabled -eq 1 ]; then
        # device is enabled, so disable it
        xinput_set_prop 0
        notify_change "$ICON_DISABLE" "$DEVICE_DISPLAY_NAME Disabled"
else
        # device is disabled, so enable it
        xinput_set_prop 1
        notify_change "$ICON_ENABLE" "$DEVICE_DISPLAY_NAME Enabled"
fi
2
cbp44

xinput float "Clavier AT Translated Set 2"

Après avoir passé des heures et des années avec différentes méthodes avec différentes distributions et versions. La commande de terminal ci-dessus est ce sur quoi je m'appuie après des problèmes ..... Je l'utilise maintenant avec du plasma au néon et je l'utilisais il y a un mois dans un Ubuntu hétéro 18.04. (doit être appliqué après le redémarrage - peut être placé au démarrage) * Mon clavier intégré à mon ordinateur portable HP endommagé et qui commence à taper, ce qui pose de sérieux problèmes - J'utilise un clavier et une souris sans fil - le pavé tactile est activé/désactivé dans le cadre de la barre de menus KDE options - néon/plasma 5). Dans les paramètres système/démarrage automatique Un fichier texte avec la ligne de code suivante est enregistré en tant que fichier .sh et défini en tant qu'exécutable (propriétés des fichiers txt)
xinput float "Clavier AT Translated Set 2"

Le fichier texte reçoit un nom> keyboardoff> et est placé dans le démarrage automatique (exécutable). Lorsque vous redémarrez/démarrez le système> le clavier intégré est désactivé. (utilisez xinput list pour tester)

0
duncan williams