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

62

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 car je travaille.

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

Est-ce possible avec xmodmap ?

    
posée atmon3r 07.07.2012 - 15:00
la source

10 réponses

103

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 id number; Ceci sera utilisé pour désactiver le clavier. Prenez également note du nombre à la fin, [slave keyboard (#)] ; c'est le numéro d'identification de master , qui sera utilisé pour réactiver votre clavier.
  3. Pour désactiver le clavier, exécutez la commande xinput float <id#> , où <id#> correspond au numéro d'identification de votre clavier. Par exemple, si id était 10 , la commande serait xinput float 10 .
  4. Pour réactiver le clavier, exécutez la commande xinput reattach <id#> <master#> , où master est le deuxième chiffre noté. Donc, si le nombre é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   [floating slave]
$ 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)]
    
réponse donnée Ignacio Vazquez-Abrams 21.08.2012 - 23:53
la source
12

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

  1. En configurant un modèle incorrect pour votre clavier d'ordinateur portable dans xorg.conf?

  2. En installant Verrouillée Keyboard- pour bébé

'Lock-keyboard-for-Baby ou lk4b en bref, est un petit programme qui verrouille votre clavier mais laisse 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 dessus. Les touches tapées sur un clavier peut avoir des conséquences désastreuses et je ne voulais pas verrouiller mon écran tout le temps avec un écran de veille.

Au démarrage, lock-keyboard-for-baby ouvre une petite fenêtre qui saisit le clavier et les touches echos saisies. Par défaut, il vous indique quoi taper pour quitter ("Quit Now").

Contrairement à un écran, votre écran n'est pas bloqué et la souris fonctionne toujours en partie, de sorte que vous pouvez toujours voir ce qui est sur votre écran -. Continuer à regarder la télévision / vidéo et / ou lire un document en utilisant la souris pour faire défiler '

Exigences:

· GTK & gt; = 2.x · Liaisons perl GTK2 (perl-gtk2 ou gtk2-perl selon votre système)

    
réponse donnée LnxSlck 21.08.2012 - 23:46
la source
12

Voici un petit bouton pour activer et désactiver un clavier spécifique. Tout d'abord, vous devez trouver votre identifiant de clavier avec xinput ou 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

  • Icon comme chemin de l'icône à afficher lors de l'activation (par exemple, /home/user/path/icon.png )
  • Icoff comme chemin d'accès de l'icône à afficher lors de la désactivation
  • J'ai utilisé les icônes suivantes:

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

  • fconfig chemin du fichier de configuration. Modifiez si vous souhaitez créer un fichier de configuration dans un autre répertoire

N'essayez pas d'exécuter le script si vous ne pouvez pas le relancer sans utiliser votre clavier (à moins que vous n'ayez un autre clavier, bien sûr). Créez le lanceur suivant (en home/user/.local/share/applications ) et ajoutez-le à l'unité:

Entrée de 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:

Notifications:

    
réponse donnée mxdsp 26.12.2015 - 13:02
la source
8

Un moyen sûr de le désactiver est de débrancher le câble de signal. Vous devez ouvrir le clavier pour cela. Pour plus d'informations sur cette opération, consultez le Guide de maintenance et d'entretien du PC portable HP Pavilion dv9000 et dv9200. .

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

Pour répertorier les périphériques 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 .

    
réponse donnée Mitch 22.08.2012 - 13:32
la source
5

Pour désactiver le clavier interne de l'ordinateur portable de manière permanente Sur Ubuntu, vous avez besoin des paramètres i8042.nokbd Kernel pour ne pas vérifier / créer le port du clavier

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

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 doit ressembler à ceci

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Mettre à jour grub comme commande suivante

$sudo update-grub     

Puis reboot votre ordinateur portable.

    
réponse donnée Rokibul Hasan 03.10.2015 - 23:41
la source
4

Le périphérique id reçu de xinput list comme suggéré dans la réponse acceptée est parfois modifié d'une manière ou d'une autre au redémarrage ( au 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 id , par exemple:

xinput disable "AT Translated Set 2 keyboard"
    
réponse donnée janot 31.03.2015 - 21:43
la source
4

Par exemple, pour désactiver temporairement le clavier pour le nettoyer:

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

t-time pour dormir en secondes

id # et master # comme mentionné ci-dessus (en haut de tous) , par exemple sur mon ordinateur portable :

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

Je viens d'ajouter ceci parce que j'aime nettoyer le clavier tout le temps. Je dois redémarrer, alors je découvre ça!

    
réponse donnée Tyþë-Ø 30.03.2016 - 21:38
la source
3

Essayez d'exécuter xmodmap -e 'keycode 24=' pour désactiver uniquement la clé 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 tous les mappages de touches.

    
réponse donnée dxvxd 21.08.2012 - 20:16
la source
0

Pour ce que cela vaut, sur la base des réponses précédentes et de 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 le met à Ctrl Win K .

Quelques problèmes avec les réponses précédentes et bénéfice 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.
  • Le fait de compter sur un fichier pour conserver l'état activé / désactivé échouera si vous redémarrez également. 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 simplement le nom et éditez 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 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" 
}

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

# Returns 1 if device is enabled, 0 if disabled
is_enabled=$(xinput list-props "$DEVICE_NAME" | grep "Device Enabled" | awk '{ print  }' | 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
    
réponse donnée cbp44 08.04.2018 - 05:27
la source
-1

J'ai eu un problème avec une clé bloquée, il y a une commande quelque part que vous pouvez mettre dans le terminal et elle la désactivera automatiquement à chaque démarrage, je ne suis pas programmeur et je ne me souviens plus coller dans le terminal, je n'ai aucune idée de la façon dont vous savez ce genre de choses, ou comment vous pouvez tous arriver avec des versions différentes lol), je l'avais sur menthe 17, mais je sais aussi avant même que vous vous connectiez, bien que je ne l'aie jamais fait car c'est plus compliqué

Mais ce que j’ai fait, c’est aller dans les réglages, le clavier (sur xfce à la menthe 18, vous cliquez en arrière pour accéder au système puis au système) et vous pouvez désactiver les touches de répétition. vous le verrez, vous devrez toujours utiliser votre clavier USB comme si vous utilisiez l'autre, il retapera la lettre incriminée toutes les autres clés, mais il fait parfaitement le travail

Au fait, merci à tous de m'avoir aidé avec les ordinateurs au fil des ans, peu importe qui vous êtes, vous avez rocké, gagné 8 et mon ordinateur comme quelqu'un d'autre qui avait un écran tactile ne pouvait tout simplement pas le supporter. Les discussions ici, j'ai continué, vous êtes des héros:)

    
réponse donnée matt 06.08.2016 - 22:50
la source

Lire d'autres questions sur les étiquettes