Estou tentando configurar o xkb para que o Caps Lock seja mapeado para a tecla Compose e as funções Shift + Caps Lock sejam o tradicional Caps Lock. Coloquei o seguinte em um novo arquivo chamado /usr/share/X11/xkb/symbols/gdwatson
:
partial modifier keys
xkb_symbols "compose" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Multi_key, Caps_Lock ]
};
};
Então eu corri setxkbmap -symbols 'pc+us+gdwatson(compose)'
, que foi concluído com sucesso. Caps Lock funciona como Compor, mas Shift + Caps Lock funciona como Compose em vez de Caps Lock. xkbcomp :0.0
revela o seguinte:
key <CAPS> {
type= "TWO_LEVEL",
symbols[Group1]= [ Multi_key, Multi_key ]
};
O mapeamento de símbolo do segundo nível está duplicando o primeiro por algum motivo, em vez do valor separado que tentei fornecer. Alguém tem xkb-fu forte o suficiente para me dizer o que fiz de errado ou como corrigi-lo?
keyboard-layout
xkb
Grant Watson
fonte
fonte
@mirabilos
sua resposta para que eu note) em um comentário, então eu vou excluir esse comentário e escrever como resposta (você também deve excluir sua resposta).partial modifier keys
serpartial modifier_keys
? Sem essa alteração,setxkbmap -symbols 'pc+us+gdwatson(compose)'
na verdade sai com um erro, mas com a alteração, obtenho a saída desejadaxkbcomp :0.0
. No entanto , recebo o efeito colateral indesejado de que pressionar Capslock simultaneamente me coloca no modo Capslock e no modo de composição de teclas.Respostas:
Isso parece realizar o que você está procurando.
Os seguintes recursos são inestimáveis ao lidar com o XKB (vinculei aos espelhos dessas páginas do WayBack Machine para provas futuras):
fonte
default partial modifier_keys
, então você não tem que especificar explicitamentesetxkbmap -symbols 'pc+us+gdwatson(compose)'
, você pode simplesmente fazersetxkbmap -symbols 'pc+us+gdwatson'