如何从命令行在 Sway 中的 xkb 键盘布局之间切换?我的布局配置如下:
input type:keyboard {
xkb_layout pl,es
xkb_options grp:win_space_toggle,compose:caps
}
我希望能够有一个切换到下一个布局的命令(pl
如果当前布局是es
,es
则切换到当前布局pl
)。
注意:有一个命令swaymsg "input type:keyboard xkb_switch_layout <index>"
允许您更改指定其索引的布局。我不知道如何使用它来切换到下一个,因为我不知道如何获取当前索引。
使用 sway 版本 1.5.1,我可以
next
提供xkb_switch_layout
. 因此您不再需要获取当前索引和总项目数。不幸的是,我不能用它
type:keyboard
来代替标识符。您可以使用 找到您的标识符swaymsg -t get_inputs
。如果您想查看所有可用的布局和当前布局的索引,您需要添加--raw
.您可以通过运行检索输入的当前键盘布局索引
swaymsg -t get_inputs
,这将为您提供一个包含输入数组及其相关设置的 JSON。您要查找的键是
xkb_active_layout_index
和xkb_layout_names
。这是我系统上命令给出的输出示例(裁剪以显示相关部分):
要模拟 sway 的切换行为,可以使用以下代码:
使用摇摆版本 1.4
您已经有了正确的配置。Super+Space 应该改变你的键盘布局(这就是
win_space_toggle
意思)。还有其他用于切换键盘布局的键配置,您可以在手册页中找到它们:man 7 xkeyboard-config
.