我正在使用多种键盘布局 - en、cs、no、zh 我想在每个键盘使用不同的快捷键之间进行切换,例如
这样我就可以非常快速地在布局之间切换,而无需跟踪我实际使用的布局,就像使用 Opt-Space 循环切换一样。
在 20.04 中,我使用了以下脚本,但它似乎在 22.04 中不起作用
gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports.ui.status.keyboard.getInputSourceManager().inputSources[$1]"
Run Code Online (Sandbox Code Playgroud)
知道如何在最新版本中实现同样的目标吗?
您可能缺少activate()命令部分:
gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports.ui.status.keyboard.getInputSourceManager().inputSources[$1].activate()"
Run Code Online (Sandbox Code Playgroud)
首先,问题是从 GNOME 41 开始,dbus 方法 Eval() 现在受到MetaContext:unsafe-mode属性限制(请参阅此提交)。
对我有用的解决方案:
gdbus call --session --dest org.gnome.Shell \
--object-path /dev/ramottamado/EvalGjs \
--method dev.ramottamado.EvalGjs.Eval \
"imports.ui.status.keyboard.getInputSourceManager().inputSources[$1].activate()"
Run Code Online (Sandbox Code Playgroud)