我正在使用gnome 3.22.1,但是从3.18开始存在问题。
在此之前(我不记得确切的版本),我能够使用xkb-witch切换键盘布局,xkb-witch是在后台使用X.org绑定的简单应用程序。
在3.18之后,如果您运行xkb-switch,则不会在gnome中切换键盘布局。进一步的研究表明布局切换是有效的,但是时间很短。
如果运行此脚本:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
根据您的幸运程度,您将获得3到20个“成功”布局切换。
谷歌搜索此问题后,我提出以下建议:
gsettings set org.gnome.desktop.input-sources current 0
设置已更改,但布局保持不变。
我发现了一种“ hacky”方法来更改布局:
setxkbmap us,ru
setxkbmap ru,us
但是gnome Shell无法识别该更改,并且在布局指示器中显示了错误的语言。
我已经发布了有关此问题的信息(很抱歉,信誉不足,https://bbs.archlinux.org/viewtopic.php?pid = 1657582https://://github.com/ierton/xkb-switch/issues/15),但没有运气得到任何好的答案。
在这一点上,我被困住了。我不够熟练,无法识别gnome shell代码中的问题。我什至不确定这是(gnome shell的)问题。
我想要的是一种从终端切换键盘布局的gnome感知方式。有人可以指出我正确的方向吗?我是否应该将其记录为错误(尤其是无法通过gsettings更改键盘布局的事实)?
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources[1].activate()"