Como fazer o Control-j funciona como Return sem Control bit set (!) usando xkb [e | ou] xmodmap

4

Parece extremamente conveniente usar Control-j em vez de Return no xterm e vim, e quero usar essa sequência para todos os aplicativos X.

Pode ser feito facilmente usando xkb, remapeando ISO_Level5_Shift na tecla Control e definindo Return como um símbolo de 5º nível para a tecla j, mas depois todas as outras combinações de controle no vim e xterm param de funcionar (porque xterm e vim podem não entendo as chaves Mod), e isso é absolutamente inaceitável.

Consegui fazer isso sem remapear ISO_Level5_Shift usando o tipo de chave "LOCAL_EIGHT_LEVEL" na seção xkb_symbols, que usa Control (em vez de ISO_Level5_Shift) como um modificador Level5:

    key <AC07> { [ j, J, plusminus, NoSymbol, Return ], type[Group1]= "LOCAL_EIGHT_LEVEL" };

O problema desta solução - xkb define o bit de controle e Control-j retorna Control-Return em vez de apenas Return. Às vezes (muitas vezes, btw) essa combinação não funciona como retorno.

Então, o que eu preciso é modificar uma dessas soluções para remover o bit de controle das combinações Control-j.

De acordo com este link: artigo do Arch Wiki sobre o XKB pode ser feito, mas não o faço Não sei como fazer isso. Então, essa é a minha pergunta.

Talvez eu tenha que adicionar alguma regra xkb_compatibility para Return + Control, ou algo assim, ou adicionar alguns mapeamentos xmodmap - qualquer solução seria apreciada.

    
por Vasily 20.04.2013 / 12:59

1 resposta

5

Eu encontrei a solução para minha pergunta. Você pode atribuir uma ação para cada chave dentro da seção xkb_symbols. O redirecionamento é uma ação de que precisamos:

key <AC07> { [ j,    J,     plusminus,      NoSymbol,      NoSymbol ],
  type[Group1]="EIGHT_LEVEL_SEMIALPHABETIC",
  actions = [ NoAction(), NoAction(), NoAction(), NoAction(), 
                                Redirect(key=<RTRN>, clearmods=all) ]
};

Usando essa ação, você pode limpar os modificadores existentes ou adicionar novos.

    
por 25.04.2013 / 18:40