Remapeamento de chaves que geram vários códigos de varredura

32

Eu tenho um ThinkPad W540. Em seu teclado, há quatro teclas multimídia acima do teclado numérico. Duas dessas chaves geram códigos de teclas (e, aparentemente, scancodes) que correspondem à combinação de chaves, Win_L + L e Win_L + E . Em outras palavras, para a chave que gera Win_L + L , o% showkey --scancodes retorna isto:

0xe0 0x5b 0x26 0xa6 0xe0 0xdb

O comando setkeycodes requer sequências de dois bytes sem escape ou de byte único para denotar códigos de varredura, e showkey me dá muito mais do que isso, então não consigo mapear a chave para um dos códigos de tecla livres no meu sistema com um setkeycodes <scancode> <keycode> direto.

Eu realmente aprecio quaisquer dicas de como eu posso remapear essa chave para outra coisa que simplesmente não duplique uma das combinações de teclas existentes no meu teclado.

    
por moonwalker 06.02.2014 / 21:54

2 respostas

1

Você pode fazer isso em duas etapas:

  1. para capturar combinações de teclas
  2. para simular a digitação de chaves diferentes.

Você pode usar xchainkeys para 1. e [xdotool][2] para 2. :

Para criar a nova chave simulada com xdotool , a opção --clearmodifiers de key pode ser importante para neutralizar a prensa modificadora simulada original:

xdotool key --clearmodifiers Shift+a

Isso deve digitar um capital A como um teste.

Na configuração de xchainkeys em ~/.config/xchainkeys/xchainkeys.conf , podemos vincular o comando a uma combinação de chaves:

W-l :exec xdotool key --clearmodifiers Shift+a

Agora, a combinação de chaves Win e l ( Win à esquerda ou à direita faz o mesmo), bem como a chave que gera Win_L + L, deve criar um% maiA.

(Existem muitos outros programas disponíveis para ambas as partes. Para o primeiro, pode-se usar a configuração de teclas de atalho de um ambiente de desktop, mas eu prefiro mantê-lo independente dos DEs.)

    
por 16.08.2016 / 13:38
-2

Isso foi o que fiz no meu Thinkpad Yoga para religar a barra invertida / chave de canal à chave correta. Porque, por algum motivo, em todas as máquinas virtuais Linux, ele interpretou a chave barra invertida \ pipe (\ |) como a tecla menor que (<).

Primeiro, execute o comando: xev

Prima a tecla pretendida para obter o código da chave que pretende reativar:

Nesteexemplo,oKeycodeé94eaaçãoé"less", mas queremos que ele tenha a ação de barra invertida e bar aka "pipe"

Remapie o código-chave 94 para a barra invertida e a tecla de barra, conhecida como "pipe":

xmodmap -e 'keycode 94 = backslash bar'

Agora vamos tornar isso persistente:

xmodmap -pke | egrep "backslash|bar" | grep 94 > ~/.Xmodmap'

Retorna o seguinte para o arquivo ~/.Xmodmap :

keycode  94 = backslash bar backslash bar

Em seguida, você deve criar o seguinte arquivo para concluir a persistência:

echo "xmodmap .Xmodmap" > ~/.xinitrc
    
por 21.07.2017 / 18:26