Alvo:
Gostaria de atribuir Alt à CapsLock-key e Meta à Alt-key. Mas, dessa maneira, a tecla Alt não seria mais reconhecida como Alt e a tecla CapsLock não seria mais reconhecida como CapsLock.
openSUSE 11.4
Anteriormente:
openSUSE 11.1 - como sou o único usuário do meu computador, "simplesmente" editei o arquivo / usr / share / X11 / xkb / keycodes / xfree86 e funcionou sem problemas. As chaves foram conectadas aos seus símbolos no nível mais baixo.
Problemas:
xkb
Eu criei uma variante do layout polonês (pl_ext) que (para teste) consiste nessas entradas:
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { Alt_L, Alt_R };
No entanto, isso simplesmente não faz nada, a tecla CapsLock no xev é reconhecida (símbolo) como Alt_L, mas quando eu pressiono a tecla CapsLock, ele se comporta como o CapsLock (por exemplo, supondo que você tenha o arquivo no menu, Alt + F deve abrir esse menu. )
Pergunta: Como definir um arquivo de layout para definir a tecla CapsLock como Alt e a tecla Alt como Meta?
Edit: Metade do sucesso aqui! Agora eu tenho essas entradas:
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { <CAPS> }; // this is a difference
e isso funciona como desejado. Isto não:
key <LALT> { [ Meta_L ] } ; key <RALT> { [ Meta_R ] } ; modifier_map Mod5 { <LALT>,<RALT> };
As teclas Alt são reconhecidas como Meta pelo xev, mas ainda posso abrir os menus com Alt + F, alternar entre janelas e não devo. E, por outro lado, não posso inserir nenhum caráter nacional, e devo.
xfree86
Mas agora isso não funciona, acho que outra tabela de arquivos é lida em vez do xfree86.
Pergunta: Como descobrir qual arquivo de tabela de código de chave é usado pelo sistema (X / Gnome)?
Edit: A melhor opção para mim - editar tabelas de códigos-chave - foi resolvida pela resposta de macias !
xmodmap
Metade do sucesso aqui. Esta parte funciona como desejado:
remover Lock = Caps_Lock keysym Caps_Lock = Alt_L
Agora, tenho verdadeiramente a tecla CapsLock, que é mapeada para Alt. Mas isso:
keysym Alt_L = Meta_L
... faz coisa estranha. O xev mostra que a tecla Alt é mapeada para Meta, mas quando pressiono Alt + F (isso deve ser mapeado para Meta + F -> sem fazer nada), o menu Arquivo é aberto. Além do mais, quando pressiono Alt + Tab, recebo o alternador de janelas (não devo - Alt é Meta agora).
Pergunta: Como "excluir" o antigo comportamento da tecla Alt?
Edit: Esta parte é resolvida pela resposta de Gilles .
Resumo:
Responder a qualquer pergunta (espero) resolveria o meu problema, no entanto, prefiro usar o xkb inteiramente porque poderia empacotar todos os arquivos do xkb e alterar o layout em um único local. Obrigado desde já por qualquer ajuda!
Respostas:
(Esta resposta é apenas sobre o xmodmap. Tenho certeza de que é possível fazer isso com o XKB, apenas não sei como.)
Modificadores e academias de teclas são atribuídos de forma independente. Mas você obtém efeitos estranhos se não os definir consistentemente. Acho que tudo o que está faltando é o
add
comando ao qual atribuir um modificadorMeta_L
, embora você também precise limpar e reatribuir as teclas modificadoras. Você pode substituirMod1
eMod2
porMod3
,Mod4
eMod5
: eles são intercambiáveis, apenas certifique-se que você não use um para dois propósitos diferentes.fonte
keysym Caps_Lock = Alt_L
é que, se você executá-lo duas vezes, ele coloca o sistema novamente em um estado indesejado. É por isso que eu uso códigos de chave ; eles variam entre sistemas operacionais e arquiteturas (não entre teclados), mas não com tanta frequência.Abordagem de edição de códigos de chave
Encontrei a resposta no fórum polonês do Ubuntu. Agora, não se edita o arquivo "xfree86", mas o arquivo "evdev". Dessa forma, você pode fazer alterações permanentes que funcionem em todos os layouts.
Exemplo (a pedido do Gilles) - faça o login como root, vá para
faça um backup do arquivo "evdev" e edite-o. Mude os códigos ao seu gosto, por exemplo, no meu caso:
Você pode encontrar quais são os códigos executando o comando "xev", mas pode simplesmente ver o arquivo "evdev" original.
Saia, entre, aproveite o seu novo teclado :-).
fonte
Keyboard Preferences
opções paraCapslock
substituir aXKB
configuração personalizada que eu escrevo. Como é uma seleção de botão de opção, não há como eu impedir que uma das regras da GUI seja aplicada.tente isto:
observe as duas definições de nível. Isso ocorre porque o padrão para LALT é [Alt_L, Meta_L]; se você não redefinir o segundo, ele permanecerá Meta_L.
Veja esta resposta no xkb para redefinir algumas chaves sem precisar editar os arquivos padrão principais (portanto, não precisa ser root). Nesse caso, você precisará no arquivo de símbolos locais uma pequena seção como:
fonte