Estou usando o manjaro i3 e estou procurando renovar alguns dos mapeamentos de teclas que fiz. Atualmente, estou usando os comandos xcape, xmodmap e setxkbmap para remapear as seguintes chaves:
- tampas para controlar quando seguradas, escapar quando pressionadas
- trocar ponto e vírgula e dois pontos
Eu fiz isso com este script de configuração:
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
xmodmap -e "keycode 47 = colon semicolon"
Gostaria de pedir ajuda ou conselho para as alterações adicionais que pretendo fazer, pois já quebrei meus mapeamentos de teclas e tive que reinstalar meu sistema operacional para voltar à estaca zero ao brincar com o remapeamento da tela de impressão listado abaixo. As alterações que pretendo fazer são as seguintes:
- print screen --> desabilitar ou usar como outra super tecla
- alt esquerdo --> tecla mode_switch
- tecla de escape --> til e backtick
- til original e carrapato de volta --> backspace
- backspace --> deletar
- desabilitar home, end, inserir, excluir chaves e mapeá-las para executar algum script
- mode_switch + h, j, k, l --> teclas de seta adicionais
- mode_switch + backspace --> home
- mode_switch + deletar --> fim
Quais ferramentas devo usar para realizar esses remapeamentos? Além disso, se alguém tiver alguns exemplos semelhantes que usaram no passado, isso também seria muito útil! Agradecemos antecipadamente por qualquer ajuda.
Confirmei todos os itens a seguir em um ThinkPad P1 executando Pop!_OS (um derivado do Ubuntu 18.10) no GNOME.
Encontrando códigos-chave
Execute
xev
em um terminal e comece a digitar. Há muitos dados, mas o que você procura geralmente é a segunda e terceira linha de um bloco após a palavrakeycode
:Existem algumas teclas que
xev
não imprimem um código de chave, como Print Screen. Para isso, você pode usar o grep no arquivo criado na próxima seção.Ferramentas necessárias
xmodmap
Despejando seus vínculos atuais
Você pode imprimir os mapeamentos atuais para o padrão executando
xmodmap -pke
. Você economizará algumas dores de cabeça em potencial fazendo primeiro backup de seuxmodmap
layout em um arquivo:Este arquivo também serve como uma referência fácil para onde as chaves estão, caso não apareçam em formato
xev
.Comando para alterar rapidamente uma ligação
Você já sabe disso, mas só para reafirmar:
Isso religará temporariamente uma chave para sua sessão. Correr
xmodmap -pke
novamente refletirá essas mudanças.Sintaxe
xmodmap
usa colunas delimitadas por espaço para denotar os diferentes modificadores/modos para um arquivokeycode
. Da esquerda para a direita são eles:Por exemplo:
Isso define a tecla "J" "j" sozinha, "J" quando pressionada com Shift, Seta para baixo quando pressionada com Mode_switch e Page Down quando pressionada com Mode_switch e Shift.
Mode_switch
Mode_switch
é um modificador genérico separado, semelhante a Shift. Acho que muitos teclados não vêm mais com uma tecla dedicadaMode_switch
(AltGr), mas você pode configurar uma comxmodmap
.Execute scripts com as configurações do GNOME ou
xbindkeys
Não conheço uma maneira de executar scripts arbitrários com
xmodmap
. Existem, no entanto, algumas maneiras fáceis.Da configuração do i3
Os documentos do i3 têm exemplos de como usar as diretivas
bindsym
/ em seu arquivo.bindcode
~/.config/i3/config
Ainda não tenho o i3 configurado, não testei, mas é direto do manual do usuário. Acho que os códigos correspondem ao que você encontra em
xmodmap
& friends.GNOMO
Confira Configurações > Dispositivos > Teclado > Atalhos de teclado . Clique em mais e adicione uma combinação de script/chave. Observe que você deve colocar o caminho completo (da raiz) para o script e garantir que seja executável.
Nos meus testes, o GNOME não permite que você use algumas teclas, como Home e End.
xbindkeys
xbindkeys
pode interceptar qualquer pressionamento de tecla e executar um script.Veja também alguns exemplos de arquivo de configuração, execute
xbindkeys --defaults > $HOME/.xbindkeysrc
e visualize o arquivo.Observe que não abrirá um terminal, apenas executará o arquivo em um processo.
Seus exemplos
Aqui estão os comandos reais para executar o que você deseja. Certifique-se de confirmar seus próprios códigos de chave, estes são exatamente o que eu tenho.
Etapa 1: remapear com
xmodmap
Etapa 2: salvar alterações
Adicionando o último comando acima ao seu
~/.profile
ou~/.bash_profile
irá carregá-lo sempre que você fizer login, supondo que você tenha uma configuração padrão. Para mim foi meio lento, você pode querer apenas adicionar todos osxmodmap -e
comandos manualmente.Etapa 3: definir vinculações para scripts personalizados com
xbindkeys
Certifique -se de que
xbindkeys
está instalado e adicione isto ao seu~/.xbindkeysrc
arquivo:Em seguida, recarregue com
xbindkeys -p
.Etapa 4: não há etapa 4
Leitura adicional
Página Wiki do Emacs sobre remapeamento
Página Wiki do Emacs no xmodmap
Arch Wiki sobre o Xmodmap
Mais sobre Mode_switch no StackExchange
Uma solução mais abrangente e que exige muito esforço é apenas escrever seus próprios layouts de teclado .