Shell-Script
切換佈局時如何更新 i3blocks?
我有兩種不同的鍵盤佈局,我用Ctrl+Shift在它們之間切換。我想用 i3blocks 顯示我目前的佈局。現在我有一個超小的單行腳本,它使用以下命令返回目前佈局:
xkb-switch
但是在鍵盤之間切換時如何更新資訊?我試過的:
嘗試#1
我可以通過設置i3blocks.conf成功更新資訊:
[language] interval=1
…這迫使我的塊每毫秒執行一次腳本。它工作正常,但我真的不確定這是不是正確的方法,特別是在筆記型電腦上。
嘗試#2
我還嘗試在i3/config中按**Ctrl+Shift時向塊發送信號:
bindsym --release Control+Shift exec --no-startup-id pkill -RTMIN+8 i3blocks
並在i3blocks.conf中使用以下行:
[language] interval=once signal=8
但我無法讓它工作。如果我將
Control+Shift
鍵更改為任何其他鍵(例如$mod+Shift+z
orCapsLock
或Control+1
),它可以正常工作。(我的意思是,它發送一個信號並更新塊。如果我用Ctrl+Shift切換鍵盤,然後按Mod+Shift+z或CapsLock或Ctrl+1,它將發送一個信號,更新 i3blocks 並且語言塊會改變)。其他
我看到了這個文章。這也是關於切換佈局。但我無法將這與我的問題聯繫起來。我不是最好的 bash 程序員,也不明白這個 kbdd 腳本中發生了什麼。據我了解,我的問題沒有任何問題。
reddit上的好人幫我解決了這個問題。我將在這裡複製粘貼他的答案。關鍵命令:
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
我在這裡看到了你的問題,如果你確實在使用 i3,我很確定你可以編輯
CTRL
+SHIFT
的鍵盤映射(鍵盤映射也在 i3 配置文件中~/.config/i3/config
)來執行你的腳本,改變佈局的腳本AND 通知酒吧。