O que você quer exatamente não é possível, pois exigiria o processo statefull (para saber o estado anterior da mudança para by
layout).
No entanto, juntamente com os símbolos ISO_Prev_Group e ISO_Next_Group, que permitem decrementar / incrementar o anel dos layouts, há também os dois: ISO_First_Group e ISO_Last_Group.
Com este anel: us,by,ru
você sempre pode acessar qualquer um dos três layouts em uma única alternância.
Por exemplo, defina Shift - CapsLock para enviar ISO_Last_Group quando estiver em us
layout, ISO_First_Group quando estiver em ru
ou by
;
define Ctrl - RightShift para enviar ISO_Next_Group quando em us
ISO_Prev_Group quando em ru
e ISO_Next_Group (ou Last) quando em by
.
A diferença com o que você quer é que você tenha que escolher manualmente (com diferentes atalhos) o layout que você quer ir, quando em by
.
Além disso, se você precisar de by
layout para apenas algumas letras cirílicas específicas da Bielorrússia; Outra opção seria usar um layout ru
modificado, com símbolos extras em algumas teclas, acessíveis com um AltGr ou uma chave semelhante, como na maioria dos teclados latinos.
Como no arquivo by
, existem apenas 3 chaves diferentes de ru
. Parece que seria a abordagem correta.
Em tais casos, eu empilharia os layouts como: us,ru,by
Use ISO_Next_Group em "us", ISO_Prev_Group em "ru" para Shift-Capslock e em "ru" defina uma chave com um ISO_Next_Group com travamento.
Para fazer isso:
Crie um ~ / .xkb / keymap / mykbd onde você coloca a saída do setxkbmap, será a sua definição de teclado base; por exemplo:
setxkbmap "us,ru,by" ; setxkbmap -print > ~/.xkb/keymap/mykbd
crie um arquivo ~ / .xkb / symbols / mysymbols com:
partial modifier_keys
xkb_symbols "shift_caps_us_ru_by" {
key <CAPS> {
symbols[Group1] = [ Caps_Lock, ISO_Next_Group ],
symbols[Group2] = [ Caps_Lock, ISO_Prev_Group ],
symbols[Group3] = [ Caps_Lock, ISO_First_Group ]
};
key <RALT> {
symbols[Group2] = [ ISO_Group_Latch ]
};
};
edite o arquivo ~/.xkb/keymap/mykbd
e altere a linha xkb_symbols
para adicionar +mysymbols(shift_caps_us_ru_by)
finalmente, você pode carregá-lo com o parâmetro xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd
e agora Shift - CapsLock entre os layouts latin (us) e cyrillic (ru); e, enquanto em cirílico, você pode acessar as letras específicas da Bielorrússia com a tecla AltGr (Alt direita).