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


12

自从我安装了17.10以来,使用分配的键盘快捷键切换语言时,我得到了这个切换器“窗口”,该窗口使我无法输入几秒钟。是的,大量切换语言需要花费几秒钟的时间。

巨大的夺人眼球的语言切换指标

这在X11和Wayland中都发生,但是当我单击顶部栏上的lang指示器切换语言时,不会发生(不会出现阻塞性窗口)。有什么办法告诉这个窗口“请走开”?

Answers:


4

可以通过gdbus callsrc)通过其JS接口查询gnome-shell来实现。

以下脚本将在两个配置的输入源之间切换。如果有更多内容,则易于修改。

#!/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 </path/to/script>然后可以将其绑定到自定义快捷键:

打开设置->设备->键盘,然后单击底部的' + '选择按钮以将脚本分配给某些快捷方式

(对于Gnome <3.x:设置->设备->键盘->自定义快捷方式)。


1
谢谢,该脚本在SID +最新的Gnome-3中可以完美运行。
ankostis

3

如果您按住更长的时间,将出现覆盖图。快速按下并释放即可更改布局,而无需显示覆盖。

作为一种解决方法,您可以设置另一个键盘快捷方式来切换布局,请参考以下内容:Ubuntu 17.10无法将输入切换快捷方式更改为alt + shift


是的,我可以按照您的建议分配新的快捷方式来完成我想做的事情。在我之前的选择(按F2 / F3)的情况下,即使我短暂按下按键,也会出现该窗口(即您所称的覆盖)。谢谢。
nikosal

我总是将lang重新分配给F2 / F3键,而不是alt + shift,这显然是因为我更喜欢“一个键”的笔触而不是组合键。当我升级到17.10时,F2 / F3开关给了我这个覆盖。当我分配了一个新的键(ScrLk)时,将不会显示该覆盖,所以我感觉还不错(尽管ScrLk在右边很远并且不适合快速键入)。
nikosal

我以最快的速度按下了该键,但该窗口仍然显示(确定),并且它窃取了键盘焦点(这不是确定)。
Flimm

@Flimm什么是替代快捷方式(例如alt + shift)建议?
pomsky

1
设置另一个快捷方式将迫使用户更改公用键,破坏习惯并破坏与其他系统的兼容性。我宁愿回到窗户。我不认为任何接近“设计决策-接受还是放弃”的方法都是有效的解决方案……
user1656671 18/08/30
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.