Existe uma maneira de desativar o teclado interno de um laptop?

65

Uma semana atrás, derramei o conteúdo da minha xícara no teclado do meu laptop. Metade das chaves não funcionam mais, exceto uma! A letra Q, que é muito ativa regularmente.

Isso é muito perturbador enquanto eu trabalho.

Existe uma maneira de desativar o teclado interno de um laptop?

É possível com xmodmap ?

    
por atmon3r 07.07.2012 / 15:00

10 respostas

107

Você pode usar xinput para flutuar o dispositivo de entrada em X.

  1. Execute o comando xinput list para listar seus dispositivos de entrada.
  2. Localize AT Translated Set 2 keyboard e anote seu id number; isso será usado para desativar o teclado. Além disso, anote o número no final, [slave keyboard (#)] ; esse é o número de ID do master , que será usado para reativar seu teclado.
  3. Para desativar o teclado, execute o comando xinput float <id#> , em que <id#> é o número do seu teclado. Por exemplo, se o id fosse 10 , o comando seria xinput float 10 .
  4. Para reativar o teclado, execute o comando xinput reattach <id#> <master#> , em que master é o segundo número que anotamos. Então, se o número fosse 3 , você faria xinput reattach 10 3 .

Aqui está uma demonstração:

$ 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)]
    
por Ignacio Vazquez-Abrams 21.08.2012 / 23:53
13

Aqui está um pequeno botão para ativar e desativar um teclado específico. Primeiro, você precisa encontrar o ID do seu teclado com xinput ou xinput-list .

Script bash para ativar / desativar o teclado

#!/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

Configuração

  • Icon como o caminho do ícone a ser exibido ao ativar (por exemplo, /home/user/path/icon.png )
  • Icoff como o caminho do ícone a ser exibido ao desativar
  • Eu usei os seguintes ícones:

  • idcomooIDdoteclado(encontradocomxinput)

  • fconfigcaminhoparaoarquivodeconfiguração.Alteresevocêdesejacriaroarquivodeconfiguraçãoemoutrodiretório

Nãotenteexecutaroscriptsenãopuderexecutá-lonovamentesemousodoteclado(amenosquevocêtenhaoutroteclado,éclaro).Crieolançadoraseguir(emhome/user/.local/share/applications)eadicione-oàunidade:

Entradanaáreadetrabalho(iniciadordoUnity)

[DesktopEntry]Version=1.0Type=ApplicationName=ClavierON-OFFIcon=PATH/TO/YOUR/ICONExec=bashNAME_OF_YOUR_SCRIPT.shPath=PATH/TO/YOUR/SCRIPTNoDisplay=falseCategories=Utility;StartupNotify=falseTerminal=false

RESULTADO:

Lançador:

Notificações:

    
por mxdsp 26.12.2015 / 13:02
12

Pensei em duas formas de fazer isso:

  1. Configurando um modelo errado para o teclado do seu laptop no xorg.conf?

  2. Instalando Teclado de travamento- for-Baby

'Lock-keyboard-for-Baby ou lk4b, em suma, é um pequeno programa que bloqueia o teclado, mas deixa o mouse livre. Escrevi porque minha sobrinha gosta de bater em meu teclado sempre que me vê sentada. Teclas digitadas em um teclado podem ter consequências desastrosas e eu não queria bloquear minha tela o tempo todo com um protetor de tela.

Quando iniciado, o bloqueio de teclado para o bebê abre uma pequena janela que pega o teclado e as teclas de eco que são digitadas. Por padrão, ele informa o que digitar para sair ("Quit Now").

Ao contrário de um protetor de tela, sua tela não está bloqueada e o mouse ainda funciona parcialmente, então você ainda pode ver o que está na tela - continue assistindo tv / vídeo e / ou leia um documento usando o mouse para rolar. '

Requisitos:

· GTK > = 2.x · Ligações perl GTK2 (perl-gtk2 ou gtk2-perl dependendo do seu sistema)

    
por LnxSlck 21.08.2012 / 23:46
8

Uma maneira segura de desativá-lo é desconectar o cabo de sinal. Você precisa abrir o teclado para isso. Para obter informações sobre como fazer isso, confira o Guia de manutenção e serviço dos notebooks HP Pavilion dv9000 e dv9200 .

Agora, existe uma maneira de desativar o teclado usando xinput . Para isso, basta pressionar Ctrl + Alt + T no seu teclado para abrir o Terminal. Quando se abre, execute os comandos abaixo.

Para listar os dispositivos, seu X

xinput --list

Para desativar o teclado:

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

Para ativar o teclado novamente:

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

Se você receber um erro sobre permissões, use os comandos acima com sudo .

    
por Mitch 22.08.2012 / 13:32
5

Para desativar o teclado interno do laptop permanentemente No Ubuntu, é necessário passar os parâmetros i8042.nokbd Kernel para não verificar / criar porta de teclado

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

Abra o terminal e execute o seguinte comando

$sudo gedit /etc/default/grub

Tente encontrar a seguinte linha

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Adicione o parâmetro i8042.nokbd , a linha acima deve ser parecida com esta

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Atualize o grub como o seguinte comando

$sudo update-grub     

Em seguida, reboot do seu laptop.

    
por Rokibul Hasan 03.10.2015 / 23:41
4

Por exemplo, para desabilitar temporariamente o teclado para limpeza:

$ xinput id de flutuador #; sleep t ; xinput reconecta id # mestre #

t -time para dormir em segundos

id # e master # conforme mencionado acima (acima de tudo) , por exemplo, no meu bloco de anotações :

$ x flutuante 11; dormir 5; xinput reconectar 11 3

Acabei de adicionar isso porque gosto de limpar o teclado o tempo todo. Eu tenho que reiniciar, então eu descobri isso!

    
por Tyþë-Ø 30.03.2016 / 21:38
4

O dispositivo id recebido de xinput list , conforme sugerido na resposta aceita , às vezes é alterado de alguma forma na reinicialização ( pelo menos no meu PC) que resultou na desativação do dispositivo errado.

É por isso que acabei usando device name em vez de id , por exemplo:

xinput disable "AT Translated Set 2 keyboard"
    
por janot 31.03.2015 / 21:43
3

Tente executar xmodmap -e 'keycode 24=' para desativar apenas a tecla Q. Se isso funcionar, você poderá adicioná-lo ao arquivo ~/.bashrc ou global /etc/bash.bashrc . Eu tenho essa idéia de aqui , que mostra todos os mapeamentos de teclas.

    
por dxvxd 21.08.2012 / 20:16
0

Por que vale a pena, com base em respostas anteriores e em minha própria experiência, criei o script a seguir, que chamo de toggle_keyboard.sh e coloquei no caminho ~/bin . Eu tenho um atalho de teclado que o executa para Ctrl Win K .

Alguns problemas com as respostas anteriores e o benefício do meu script:

  • Basear-se em um número de ID com xinput falha quando você reinicializa e o número de ID é alterado. Isso aconteceu comigo ao executar xinput float 13 . Acabei desativando o hardware errado.
  • Confiar em um arquivo para manter o estado ativado / desativado falhará se você reinicializar também. O arquivo informará que o teclado está desabilitado (se você o tiver desabilitado com o script), mas após a reinicialização ele será habilitado novamente. Minha solução obtém as informações ativadas / desativadas de um comando xinput analisado.
  • Meu script funcionará com qualquer dispositivo xinput exibido quando você digitar xinput list --name-only . Basta pegar o nome e editar as quatro principais variáveis. Eu uso para o teclado do meu laptop, webcam, monitor touchscreen e algumas outras coisas que eu uso apenas de vez em quando.
#!/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
    
por cbp44 08.04.2018 / 05:27
-1

Eu tive um problema com uma chave emperrada, há um comando em algum lugar que você pode colocar no terminal e ele irá automaticamente desativá-lo toda vez na inicialização, eu não sou programador e não me lembro de eu (eu apenas copio e cole no terminal, eu não tenho idéia de como vocês sabem essas coisas, ou como todos vocês podem criar diferentes versões lol), na Mint 17, mas eu também sei que há uma que você pode até colocar, então desativa. mesmo antes de você entrar, embora eu nunca tenha feito isso, pois está mais envolvido

Mas o que eu fiz, foi em configurações, teclado (na casa 18, quando você clica onde o menu inicial costumava estar e vai para o sistema, depois teclado) e você pode desabilitar as chaves repetidas, é apenas uma caixa que você desmarca você verá, você ainda terá que usar o seu teclado usb como se você usasse o outro, ele digitaria novamente a letra ofensiva, mas faz o trabalho perfeitamente

A propósito, obrigado a todos por me ajudarem com computadores ao longo dos anos, sejam eles garotos, vc tenha ganho 8 e meu computador, como todos os outros que tinham um touchscreen de notebook, não puderam lidar com isso, e através de vcs discussões aqui eu continuei, vocês são heróis:)

    
por matt 06.08.2016 / 22:50

Tags