Como desativar o teclado numérico do teclado?

5

Eu quero desativar todas as teclas numéricas; os localizados no lado direito do meu teclado.

Como posso fazer isso? Claro, eu também gostaria de saber como reverter a ação e reativar o teclado numérico.

Eu tentei coisas diferentes, como o remapeamento:

xmodmap -e "keycode # = """

Mas recebo um erro:

xmodmap commandline1: bad keycode value

O que eu fiz de errado?

    
por Demonic_Dog 27.03.2015 / 03:39

3 respostas

2

Para desativá-los via XKB , você pode comentá-los em seu arquivo X keycodes (aquele que corresponde ao seu teclado - linux usa /usr/share/X11/xkb/keycodes/evdev ). Os códigos de tecla do Numpad começam com <KP... , portanto, você pode usar o seguinte para preceder essas linhas com //kp_dsbl ( // é o comentário e kp_dsbl é alguma sequência arbitrária que você pode usar posteriormente para identificar essas linhas se desejar reverter alterações):

sed -i '/^[[:blank:]]\{1,\}<KP/s|^|//kp_dsbl|' /usr/share/X11/xkb/keycodes/evdev

ou

ed -s /usr/share/X11/xkb/keycodes/evdev <<\IN
g/^[[:blank:]]\{1,\}<KP/s|^|//kp_dsbl|
w
q
IN

Para reativá-los:

sed -i 's|^//kp_dsbl||' /usr/share/X11/xkb/keycodes/evdev

ou

ed -s /usr/share/X11/xkb/keycodes/evdev <<\IN
,s|^//kp_dsbl||
w
q
IN
    
por 05.11.2015 / 02:11
1

assumindo que o # é usado para indicar o número do código de tecla, o primeiro problema que noto é o shell citando. O shell concatenou strings implicitamente, a menos que seja separado.

Então, quando você digita

xmodmap -e "keycode # = """

é equivalente a

xmodmap -e "keycode # = "

é provável que você digite um desses

xmodmap -e "keycode # = \"\""
xmodmap -e 'keycode # = ""'
xmodmap -e "keycode # = "\"\"
xmodmap -e "keycode # = "'""'

Mesmo assim, isso pode não fazer o que você quer. Minha memória está enferrujada, mas você pode precisar usar um keysym nulo.

xmodmap -e "keycode # = null"

Em geral, acredito que você esteja no caminho certo de remover e depois adicionar os mapeamentos. Adicioná-los deve ser fácil.

    
por 27.03.2015 / 03:57
1

Se xmodmap informar "valor incorreto de código de tecla", significa que você passou um valor de código de tecla incorreto. Você pode usar o programa xev para ver qual código uma tecla envia: inicie-a a partir de um terminal, pressione a tecla na janela xev e observe o evento KeyPress aparecendo no terminal. Use o valor correto onde você escreveu # em sua pergunta.

Você também pode reatribuir chaves com base no keysym simbólico que eles enviam no momento. Você pode desativar o teclado com algo como

xmodmap <<EOF
keysym KP_0 =
…
keysym KP_Decimal =
keysym KP_Enter =
keysym KP_Plus =
keysym KP_Minus =
keysym KP_Multiply =
keysym KP_Divide =
EOF

Você precisará lembrar os códigos de teclas para restaurar a funcionalidade do teclado. Você pode salvá-lo em um arquivo no começo:

xmodmap -pke | grep KP_ >keypad.xmodmap

Pode haver uma maneira mais conveniente com o XKB.

    
por 28.03.2015 / 02:17