레이아웃을 전환할 때 i3block을 어떻게 업데이트하나요?

레이아웃을 전환할 때 i3block을 어떻게 업데이트하나요?

두 가지 키보드 레이아웃이 있고 그 사이를 전환할 수 있습니다.Ctrl+Shift. i3blocks를 사용하여 현재 레이아웃을 표시하고 싶습니다. 지금은 다음을 사용하여 현재 레이아웃을 반환하는 매우 작은 한 줄 스크립트가 있습니다.

xkb-switch

하지만 키보드를 전환할 때 정보를 어떻게 업데이트합니까? 내가 시도한 것:

시도 #1

설정을 통해 정보를 성공적으로 업데이트할 수 있습니다.i3blocks.conf:

[language]
interval=1

...내 블록이 밀리초마다 스크립트를 실행하도록 강제합니다. 잘 작동하지만 이것이 올바른 접근 방식인지는 잘 모르겠습니다. 특히 랩톱에서는 더욱 그렇습니다.

시도 #2

또한 눌렀을 때 블록에 신호를 보내려고 시도했습니다.Ctrl+Shift안에 이런게 있어요i3/구성:

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

그리고 다음 줄에서i3blocks.conf:

[language]
interval=once
signal=8

그러나 나는 그것을 작동시킬 수 없습니다. 키를 또는 또는 Control+Shift같은 다른 키로 변경 하면 제대로 작동합니다. (내 말은 신호를 보내고 블록을 업데이트한다는 뜻입니다.$mod+Shift+zCapsLockControl+1Ctrl+Shift그런 다음 누르세요변조+Shift+z또는대문자 잠금또는Ctrl+1신호를 보내고 i3block을 업데이트하면 언어 블록이 변경됩니다.

다른

나는 보았다이것우편 엽서. 또한 레이아웃 전환에 관한 것입니다. 하지만 나는 그것을 내 문제와 연관시킬 수 없습니다. 나는 최고의 bash 프로그래머가 아니며 이 kbdd 스크립트에서 무슨 일이 일어나고 있는지 이해하지 못합니다. 내가 이해하는 한, 내 문제는 이것과 아무 관련이 없습니다.

답변1

좋은 놈이 들어가네레딧문제를 해결하는 데 도움이되었습니다. 여기에 그의 답변을 복사하여 붙여넣겠습니다. 주요 명령:

xkb-switch -W

다음 줄에서i3blocks.conf모든 것이 꿈과 같습니다.

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

답변2

나는 당신의 질문을 보았습니다여기CTRLi3를 사용하는 경우 +에 대한 키맵을 편집하여 SHIFT(키맵은 i3 구성 파일에도 있음 ~/.config/i3/config) 레이아웃과 알림 표시줄을 변경하는 스크립트를 실행할 수 있다고 확신합니다 .

관련 정보