在GNOME 3中更改语言时,如何不显示键盘布局选择弹出窗口

自从我安装了17.10版本以后,使用指定的快捷键切换语言时,会出现一个“窗口”挡住我打字几秒钟。而且,是的,几秒钟对于频繁切换语言来说是相当长的时间。

huge focus-grabbing language-switching indicator

这在X11和Wayland中都会发生,但当我通过点击顶部栏的语言指示器切换语言时,它不会发生(阻碍窗口不会出现)。有没有办法告诉这个窗口“请离开”?
4个回答

我特意开发了Quick Lang Switch Gnome-shell扩展,完全是为了避免切换语言时弹出的切换器。现在切换语言会立即发生。 此外,它不需要自定义快捷键(常规快捷键的行为会改变),因此登录界面不受影响。

如果这是一个错误,请在扩展的存储库中提交问题。 - ankostis
抱歉,你是对的;问题不知怎么自己解决了。感谢这个插件!(删除我之前的评论) - Bach

如果你按住稍微久一点,就会出现叠加层。快速按下并释放应该可以在不显示叠加层的情况下改变布局。
作为一种解决方法,你可以设置另一个键盘快捷键来切换布局,请参考这个链接:Ubuntu 17.10无法将输入切换快捷键设置为alt+shift

是的,我可以按照你提议的方式分配一个新的快捷键来实现我想要的功能。使用之前的选择(按下F2/F3键),即使我只是短暂地按下键盘,这个窗口(你所称之为叠加窗口)也会出现。谢谢。 - nikosal
我一直将语言切换重新分配到F2/F3键,而不是alt+shift键,显然是因为我更喜欢“单键”操作而不是组合键。当我升级到17.10版本时,F2/F3切换会出现这个覆盖层。当我分配了一个新的键(ScrLk键)时,覆盖层就不会出现,所以我基本上还可以(尽管ScrLk键在右边,对于快速打字来说并不舒适)。 - nikosal
3我以人类可能的最快速度按下键,窗口仍然弹出(这是可以接受的),并且窃取了键盘焦点(这不是可以接受的)。 - Flimm
@Flimm 关于备选快捷方式(例如 alt+shift)的建议呢? - pomsky
2设置另一个快捷键会强迫用户改变常用按键,打破习惯,并且与其他系统不兼容。我宁愿回到Windows。我不认为任何接近于“设计决策-要么接受要么离开”的解决方案是有效的... - QT-1
@user1656671 我知道这很令人沮丧,对吧?我之前也遇到过同样的问题,当我切换到Wayland时。回到X11与Unity一起使用就能正常工作了。 - ruX

通过使用gdbus callsrc)查询gnome-shell的JS接口,可以实现这一功能。
以下脚本将在两个配置的输入源之间进行切换。如果有更多输入源,很容易进行修改。
#!/usr/bin/env bash

cur_idx=$(
        gdbus call \
                --session \
                --dest org.gnome.Shell \
                --object-path /org/gnome/Shell \
                --method org.gnome.Shell.Eval \
                "imports
                        .ui.status
                        .keyboard
                        .getInputSourceManager()
                        .currentSource
                        .index" |
        cut -d"'" -f2
)

next_idx=$(( 1 - $cur_idx ))

gdbus call \
        --session \
        --dest org.gnome.Shell \
        --object-path /org/gnome/Shell \
        --method org.gnome.Shell.Eval \
        "imports
                .ui
                .status
                .keyboard
                .getInputSourceManager()
                .inputSources[$next_idx]
                .activate()" \
        &> /dev/null


使其可执行,使用chmod a+x 命令给脚本赋予执行权限,并且你可以将其绑定到自定义快捷键上:
打开设置 -> 设备 -> 键盘,点击底部的'+'选择按钮,将脚本分配给某个快捷键。
(对于Gnome < 3.x版本: 设置 -> 设备 -> 键盘 -> 自定义快捷键)。

1谢谢,脚本在最新的Gnome-3中无缺陷地运行。 - ankostis
1很不幸,由于安全问题dbus无法再使用任意代码调用org.gnome.Shell.Eval方法,自Gnome-shell v41开始(例如在2021年9月左右推送到*Debian unstable "SID"*)。您需要一个类似这样的扩展,它还具有更高的响应性。 - ankostis

我知道这是一个非常晚回答,可能没有什么用。但是我想与你们分享一下。 我正在使用Kubuntu 22.04,并选择了Wayland。我在这里也遇到了同样的问题,但是我通过在任务栏上右键单击语言图标来禁用它。 配置 > 配置布局。 取消选择“布局更改时显示OSD”选项。然后你就可以使用了。 无需更改快捷键或进行任何脚本编写。enter image description here 希望对你有所帮助。