Não posso remapear L_shift para L_control, a menos que eu faça o remapeamento de L_control para outra coisa em xkb

1

Eu quero remapear meu caps lock para shift e meu turno esquerdo para control, mas quero deixar meu atual controle esquerdo intocado e também trabalhar como controle.

Seguindo os conselhos nesta pergunta Use o setxkbmap para trocar o Left Shift e o Left Control

Eu usei o xkb para criar este script

partial modifier_keys
xkb_symbols "my_key_remap" {
    replace key <LFSH> { [ Control_L ] };
    replace key <CAPS>  { [ Shift_L ] };
};

Esse tipo de trabalho funciona, mas meu novo controle de turno parece não funcionar. Quando eu testo com xev , vejo que deixou shift é mapeado para controle. No entanto, quando eu pressiono o controle normal, xev responde uma vez e aguarda por uma chave. mas quando eu uso meu novo controle de turno, ele aparece como controle esquerdo (embora ainda seja keycode 50), mas o evento de pressionamento de tecla é disparado várias vezes, em vez de apenas uma vez, como aconteceu com a tecla de controle normal.

No entanto, se eu adicionar a linha replace key <LCTL> { [ Shift_L ] }; (removendo a chave de controle original) que o novo controle de deslocamento é o único controle à esquerda, ele funcionará como esperado e xev informará que dispara apenas um evento de pressionamento de tecla mesmo que eu segure a chave.

Alguma idéia?

    
por Erotemic 04.09.2017 / 03:54

0 respostas