Como atualizar os i3blocks ao alternar os layouts?

4

Eu tenho dois layouts de teclado diferentes e alterno entre eles com Ctrl + Shift . E quero exibir meu layout atual com i3blocks. Agora eu tenho um script super pequeno de linha única que retorna o layout atual com o seguinte comando:

xkb-switch

Mas como posso atualizar informações ao alternar entre teclados? O que eu tentei:

Tentativa nº 1

Eu consegui atualizar informações com sucesso definindo em i3blocks.conf :

[language]
interval=1

... o que força meus blocos a executar o script a cada milissegundo. Funciona bem, mas não tenho certeza se é a maneira correta de fazer isso, especialmente no laptop.

Tentativa nº 2

Eu também tentei enviar um sinal para o bloco ao pressionar Ctrl + Shift com algo parecido com isso no meu i3 / config :

bindsym --release Control+Shift exec --no-startup-id pkill -RTMIN+8 i3blocks

E com as seguintes linhas em i3blocks.conf :

[language]
interval=once
signal=8

Mas eu não consegui fazer funcionar. Se eu alterar as chaves Control+Shift para qualquer outra chave (por exemplo, $mod+Shift+z ou CapsLock ou Control+1 ), tudo funciona bem. (Quero dizer, ele envia um sinal e atualiza os blocos. Se eu alternar o teclado com Ctrl + Shift , pressione Mod + Shift + z ou CapsLock ou Ctrl + 1 ele enviará um sinal, atualizará i3blocks e o bloco de idiomas irá mudar).

Outro

Eu vi postar. Também é sobre mudar os layouts. Mas eu não consegui relacionar isso ao meu problema. Eu não sou o melhor bash-programador e não entendo o que está acontecendo neste script kbdd. Tanto quanto eu entendo, não há nada sobre o meu problema.

    
por Neilana 04.05.2017 / 12:21

2 respostas

2

O cara legal do reddit me ajudou a resolver o problema. Vou apenas copiar e colar sua resposta aqui. O comando crucial:

xkb-switch -W

Com as seguintes linhas em i3blocks.conf tudo funciona como um sonho.

# AUR package: xkb-switch-git
[keymap]
label=⌨
command=xkb-switch -W
#or
#command=bash -c 'xkb-switch;xkb-switch -W'
interval=persist
border=#0d5eaf
    
por 05.05.2017 / 23:08
0

Eu já vi sua pergunta aqui e se você estiver usando o i3 I ' Tenho certeza que você pode editar o mapa de teclas de CTRL + SHIFT (o mapa de teclas também está no arquivo de configuração do i3 ~/.config/i3/config ) para rodar um script seu, script que altera o layout E notifica a barra.

    
por 05.05.2017 / 17:29