Como posso remapear as teclas do teclado? [duplicado]

33

Estou procurando instruções gerais sobre o remapeamento de chaves.

Alguém pode me dizer como remapear F9 para PrtScr e F10 para o botão ScrollLock ?

Examinei todos os tópicos aqui e nenhuma das sugestões funcionou.

Estou usando uma configuração de teclado sueco e o Ubuntu 12.04.

    
por jdc 16.05.2013 / 12:11

3 respostas

36

Esta resposta foi feita principalmente usando as informações das três primeiras etapas desta Resposta do Ask Ask e deste Fórum do Ubuntu < href="http://ubuntuforums.org/showpost.php?p=7675138&postcount=2"> thread ao qual ele se refere / se refere. Esta outra resposta do Ask Ask foi muito útil. Então, todo o crédito para NES, llazarte, bodhi.zazen e Argusvision.

Para simplesmente trocar duas funções de teclas: A partir do Terminal, execute xev e, em seguida, pressione F9 , o que daria algo como

Fazer o mesmo para PrtSc não deu nenhuma saída em xev para mim (ou não encontrei o "evento KeyPress"), então usei o conselho da Argusvision para usar os Atalhos Personalizados em Todos Configurações, mas fazendo isso para desabilitar PrtSc como botão de captura de tela, reatribuindo como Shift + Alt , tente pressionar novamente o que me deu o código 107 para < kbd> PrtSc em xev como assim

Repetir o processo para todas as quatro chaves me deu

  • F9 = código de acesso 75
  • PrtSc = keycode 107, print de ação
  • F10 = código de acesso 76
  • Scroll Lock = código de acesso 127, ação Pausa

Para alterar uma função de teclas, precisamos saber o código de tecla da tecla NEW sendo pressionada e a "ação" da chave OLD ou existente para essa função.

Agora que temos os códigos chave para identificar as chaves, agora fazemos com que o sistema faça o que queremos usando xmodmap e, como sabemos, F9 tem "keycode 75" e PrtSc tem a ação de "Imprimir", tudo o que precisamos fazer é

xmodmap -e "keycode 75 = Print"

para fazer a tecla F9 se comportar como se a tecla PrtSc tivesse sido pressionada. Ou seja, o código de acesso permanece o mesmo, mas pressionar a tecla F9 terá resultados diferentes.

Usando xev com Scroll Lock também deu

que confirma a "ação" para a tecla Scroll Lock é "Pause" então para fazer o F10 agir como Scroll Lock tentando

xmodmap -e "keycode 76 = Pause"

deve dar os resultados desejados.

Isso é até você sair ou desligar etc, então o que temos que fazer depois de confirmar os comandos

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 76 = Pause"

dê os resultados desejados é classificar SysRec que é modificado PrtSc e trocar os outros botões para que não tenhamos várias instâncias da mesma ação-chave. Adicionando

xmodmap -e "keycode 107 mod1 = F9 Sys_Req"

deve trocar F9 para onde PrtSc está mantendo o SysReq modificado ( Alt + PrtSc ) mais uma vez podemos usar xev para ajudar a verificar isso.

É mais fácil trocar os botões Scroll Lock e F10

xmodmap -e "keycode 127 = F10"

Depois de se certificar de que ao executar

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 107 mod1 = F9 Sys_Req"
xmodmap -e "keycode 76 = Pause"
xmodmap -e "keycode 127 = F10"

faz realmente o que se pretende tudo o que resta a fazer é conseguir que isso aconteça no momento da inicialização. Para fazer isso, execute

xmodmap -pke|egrep  -e '(F9|Print)'

que me deu

estamos interessados ​​somente nos códigos de teclas 75 e 107. Faça o mesmo para

xmodmap -pke|egrep  -e '(F10|Pause)'

que me deu

e estamos interessados ​​apenas nos códigos de teclas 76 e 127.

Crie um novo documento de texto com sua cópia do editor de texto favorito e cole as informações relevantes

keycode  75 = Print NoSymbol Print
keycode 107 = F9 Sys_Req F9 Sys_Req
keycode  76 = Pause NoSymbol Pause
keycode 127 = F10 NoSymbol F10

nomear o arquivo como .Xmodmap e salvá-lo em seu diretório Inicial permitiria que você executasse as alterações simplesmente fazendo login após a reinicialização.

    
por geezanansa 16.05.2013 / 23:21
12

Para versões mais recentes do Ubuntu, o Xmodmap funciona, mas após a reinicialização, você perde seus mapeamentos de teclado! Em vez disso, o que fiz foi editar o arquivo xbd ( / usr / share / X11 / xkb / símbolos / pc ).

Nesse caso, você adicionaria as seguintes entradas:

key <FK09> { [Print] };
key <FK10> { [Scroll_Lock] };

Em seguida, limpe o cache de configurações do xkb:

rm -rf /var/lib/xkb/*

Após a reinicialização, suas chaves são mapeadas corretamente. Se você precisar de mais ajuda com isso, veja o meu post sobre remapeamento de chaves no Ubuntu 15.04

    
por Captain 05.10.2015 / 15:16
4

Vá para System Settings > keyboard > Custom Shortcuts . Aqui você pode atribuir um comando a qualquer tecla ou conjunto de chaves. Clique no botão Adicionar (+). Na janela que aparece, Name = Print Screen ; Comando = gnome-screenshot . Depois de criá-lo, clique na linha à direita do nome onde está escrito "Desativado". Isso deve mudar para "New Accelorator" Basta pressionar F9.

Ainda procurando por bloqueio de rolagem.

  
    

Depois de um pouco olhando, eu encontrei uma resposta para o bloqueio de rolagem. Comecei com essa resposta pelo que encontrei aqui.     Você deve poder aplicá-lo a qualquer conjunto de chaves usando xmodmap do terminal.     Edit: Você também pode ler mais sobre o Xmodmap aqui

  

Dê uma olhada na saída de xmodmap -pke | grep F10 .
O meu é:

keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10  

Isso significa que minha chave F10 é keycode 76 . Talvez seja diferente, já que você está usando um layout diferente.

Então, I deve ser capaz de atribuir scroll lock para F10 com o seguinte comando:

xmodmap -e "keycode 76 = Scroll_Lock"  

Você precisará inserir o "código-chave" encontrado para sua chave F10.

Você também pode procurar por man xmodmap e xmodmap --help para opções adicionais. Por exemplo, xmodmap -pke lista sua tabela de keymaps como expressões. Dessa forma, você pode localizar as expressões atribuídas a outras teclas também.

    
por Argusvision 16.05.2013 / 14:37