我有两种不同的键盘布局,我可以在它们之间切换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+z
或CapsLock
或Control+1
),它就可以正常工作。 (我的意思是,它发送一个信号并更新块。如果我用Ctrl+Shift然后按调制+Shift+z或者大写锁定或者Ctrl+1它会发送一个信号,更新 i3blocks 并且语言块将会改变)。
其他
我看见这邮政。这也是关于切换布局的。但我无法将其与我的问题联系起来。我不是最好的 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
我已经看到你的问题了这里如果您确实使用 i3,我很确定您可以编辑CTRL+的键盘映射SHIFT(键盘映射也在 i3 配置文件中~/.config/i3/config
)来运行您的脚本,该脚本会更改布局并通知栏。