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 ?

10voto

Mitch Points 102545

Un moyen sûr de le désactiver est de débrancher le câble de signal. Vous devez faire apparaître le clavier pour cela. Pour des informations sur la manière de le faire, consultez le Guide de maintenance et de services pour l'ordinateur portable HP Pavilion dv9000 et dv9200.

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

Pour afficher la liste des périphériques 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.

5voto

FrankH. Points 8850

Par conséquent, j'ai découvert :

$ xinput float **id#**;sleep **t**;xinput reattach **id# master#**

t -temps à dormir en secondes

id# et master# comme mentionné ci-dessus (haut de la page)

Par exemple dans mon terminal :

$ xinput float **11**;sleep **5**;xinput reattach **11 3**

3voto

motto Points 173

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

2voto

cbp44 Points 21

Pour ce que ça vaut, d'après les réponses précédentes et mes propres expérimentations, 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 le lance avec CtrlWinK.

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

  • Se fier à un numéro d'identifiant avec xinput échoue lorsque vous redémarrez et que le numéro d'identification est modifié. Cela m'est arrivé en exécutant xinput float 13. J'ai fini par désactiver le mauvais matériel.
  • Se fier à un fichier pour stocker 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 à nouveau activé. Ma solution obtient les informations activées/désactivées à partir d'une commande xinput analysée.
  • Mon script fonctionnera avec n'importe quel périphérique xinput qui apparaît lorsque vous tapez xinput list --name-only. Il vous suffit de récupérer le nom et d'éditer les quatre premières variables. Je l'utilise pour mon clavier d'ordinateur portable, ma webcam, mon écran tactile et quelques autres choses que j'utilise seulement de temps en temps.

#!/bin/bash
# Activer ou désactiver le clavier d'ordinateur portable et notifier l'utilisateur à ce sujet

# Le nom du périphérique peut être trouvé en tapant cette commande : xinput list --name-only
DEVICE_NAME="AT Translated Set 2 keyboard"
# Le nom d'affichage du périphérique dans la notification notify-send
DEVICE_DISPLAY_NAME="Clavier d'ordinateur portable"

# Définissez ces icônes que vous souhaitez utiliser.
# Si elles ne sont pas trouvées, la notification fonctionnera quand même.
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
}

# Renvoie 1 si le périphérique est activé, 0 s'il est désactivé
is_enabled=$(xinput list-props "$DEVICE_NAME" | grep "Device Enabled" | awk '{ print $4 }' | sed 's/[^0-9]*//g')

if [ $is_enabled -eq 1 ]; then
        # Le périphérique est activé, donc le désactiver
        xinput_set_prop 0
        notify_change "$ICON_DISABLE" "$DEVICE_DISPLAY_NAME Désactivé"
else
        # Le périphérique est désactivé, donc l'activer
        xinput_set_prop 1
        notify_change "$ICON_ENABLE" "$DEVICE_DISPLAY_NAME Activé"
fi

2voto

brandizzi Points 1452

Si vous avez besoin d'une façon plus dynamique de désactiver les claviers, j'ai créé une petite application indicateur qui vous permet d'activer et/ou de désactiver vos périphériques. Comme vous le feriez avec xinput, mais sans ouvrir le terminal, lister manuellement, taper la commande etc.

Un menu répertoriant les périphériques pouvant être désactivés ou activés.

Il se trouve dans un PPA, donc vous pouvez l'installer avec

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 03BBACDA765F39D9A14EEDE4425F3F9343B40373
sudo add-apt-repository ppa:brandizzi/ppa
sudo apt install input-device-indicator

Pour l'invoquer, il vous suffit d'exécuter input-device-indicator (que vous pouvez ajouter aux programmes de démarrage de session) ou de rechercher "Input Device Indicator" via l'HUD (ou peu importe comment on l'appelle de nos jours.)

C'est assez rudimentaire et beaucoup de choses pourraient être améliorées mais c'est très utile lorsque nécessaire. Ce n'est pas exactement ce que l'auteur de la question initiale veut (dans ce cas le clavier n'a pas besoin d'être activé) mais je le note ici pour toute personne qui pourrait le trouver utile.

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