如何禁用终端中的输入语言切换

olt*_*ish 6 command-line input-language language

在 Ubuntu 12.04 中,我安装了两种输入语言,英语和俄语。我想在终端中禁用俄语 - 这样无论系统范围内的选择如何,终端都将始终具有英语输入语言。

那可能吗?

问题是,不小心输入的非英文字符可能会带来很多痛苦(尤其是不可见的)。

更新:

首先,我要感谢所有参与者 - 我真的很高兴人们尝试提供帮助的速度如此之快!

看来我必须更清楚地说明问题。问题是,我不仅希望在创建新终端窗口或切换到旧终端窗口时默认打开英语,还希望在终端窗口内将语言从英语切换为俄语是不可能的。

现在,结果。

我已经尝试过 gxneur - 看起来必须从源代码构建它,我还没有准备好尝试。我试图用 apt-get 安装它,但不知道如何轻松配置它。并且它没有在任务栏中显示图标。所以我删除了它。

我试过 Python 脚本,它立即停止并显示以下输出:

No such schema 'org.gnome.desktop.input-sources'
Traceback (most recent call last):
  File "./set_language.py", line 63, in <module>
    lang_list = read_prev()
  File "./set_language.py", line 52, in read_prev
    currlang = get_lang()
  File "./set_language.py", line 24, in get_lang
    curr_n = int(get(key[1]+key[0]+key[4]).strip().split()[-1])
  File "./set_language.py", line 20, in get
    return subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
  File "/usr/lib/python3.2/subprocess.py", line 522, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['/bin/bash', '-c', 'gsettings get org.gnome.desktop.input-sources current']' returned non-zero exit status 1
Run Code Online (Sandbox Code Playgroud)

最后,我尝试了 shell 脚本,它可以运行,但似乎不起作用 - 我仍然可以轻松地在终端中切换到俄语。它也偶尔说

No such schema 'org.gnome.desktop.input-sources'
Run Code Online (Sandbox Code Playgroud)

因此,总而言之,我无法使任何解决方案起作用。

我想这里的底线是我想要得到的东西并不那么简单,所以没有它也没关系。

Ser*_*nyy 2

剧本

\n\n
#!/bin/bash\n# Author: Serg Kolo\n# Date: June 16,2015\n# Description: Script to ensure terminal \n# always uses english keyboard only\n\n# set -x\n\nPREVIOUS=$(wmctrl -lx | awk -v search=$(printf 0x0%x $(xdotool getactivewindow)) \'{ if($1~search) print $3 }\' )\n\nwhile [ 1 ]; do\n\n        # get WM_CLASS of currently active window\n        WM_CLASS=$(wmctrl -lx | awk -v search=$(printf 0x0%x $(xdotool getactivewindow)) \'{ if($1~search) print $3 }\' )\n        # echo "WM_CLASS"\n\n        # check if that is gnome-terminal and if it wasn\'t\n        if [ "$WM_CLASS" == "gnome-terminal.Gnome-terminal" ];then\n        #  is current window is different class than preious ?\n        # (i.e., did we switch from somewhere else)\n        #  if yes, switch language\n        #  if  we\'re still in gnome-terminal, do nothing\n                if [ "$WM_CLASS" != "$PREVIOUS" ];then\n                 # alternative command setxkbmap -layout us\n                 gsettings set org.gnome.desktop.input-sources current 0\n                fi\n\n        fi\n\n        PREVIOUS=$(echo "$WM_CLASS")\n        sleep 0.250\ndone\n
Run Code Online (Sandbox Code Playgroud)\n\n

英文解释

\n\n

该脚本检查当前活动窗口,如果 WM_CLASS 与 的 WM_CLASS 匹配gnome-terminal,则将输入语言切换为默认语言或索引 0。将其保存为文本文件,运行sudo chmod +x scriptname.sh,然后就可以执行了。

\n\n

该脚本需要安装wmctrl程序,这是脚本功能的关键。要安装它,请运行sudo apt-get install wmctrl.

\n\n

要使其在每次登录时连续运行,请将脚本的完整路径添加到启动应用程序或.desktop/home/yourusername/.config/autostart. Takkat 的回答.desktop是使用文件主题的一个变体。

\n\n

该脚本可以通过多种方式进行修改。了解所需程序的 WM_CLASS(从输出wmctrl -lx),您可以替换gnome-terminal.Gnome-terminal该行中的任何其他程序类if [ "$WM_CLASS" == "string" ];then。您还可以设置强制使用哪种语言,方法是了解语言的索引(只需在下拉菜单中从上到下计数,从 0 开始,从顶部开始)并更改gsettings set org.gnome.desktop.input-sources current 0. 除此之外,如果添加多个else if语句,则有可能在不同的程序中强制使用不同的语言。该脚本简单且非常灵活。

\n\n

俄语解释

\n\n

\xd0\xa1\xd0\xba\xd1\x80\xd0\xb8\xd0\xbf\xd1\x82 \xd0\xb2\xd1\x8b\xd1\x88\xd0\xb5 \xd1\x81\xd0\xbb\xd0 \xb5\xd0\xb4\xd0\xb8\xd1\x82 \xd0\xb7\xd0\xb0 \xd0\xbe\xd0\xba\xd0\xbd\xd0\xb0\xd0\xbc\xd0\xb8 \xd0\xba \xd0\xbe\xd1\x82\xd0\xbe\xd1\x80\xd1\x8b\xd0\xb5 \xd0\xb0\xd0\xba\xd1\x82\xd0\xb8\xd0\xb2\xd0\xbd\xd1 \x8b、\xd0\xb8\xd0\xb5\xd1\x81\xd0\xbb\xd0\xb8\xd0\xbe\xd0\xba\xd0\xbd\xd0\xbe\xd0\xbe\xd1\x82\xd0\ xbd\xd0\xbe\xd1\x81\xd0\xb8\xd1\x82\xd1\x81\xd1\x8f\xd0\xba\xd0\xba\xd0\xbb\xd0\xb0\xd1\x81\xd1\x81\ xd1\x83 gnome-terminal.Gnome-terminal, \xd1\x8f\xd0\xb7\xd1\x8b\xd0\xba\xd0\xbc\xd0\xbe\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x82\xd0\xb0\xd0 \xbb\xd1\x8c\xd0\xbd\xd0\xbe \xd0\xbc\xd0\xb5\xd0\xbd\xd1\x8f\xd0\xb5\xd1\x82\xd1\x81\xd1\x8f \xd0\xbd \xd0\xb0\xd0\xb0\xd0\xbd\xd0\xb3\xd0\xbb\xd0\xb8\xd0\xb9\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9。

\n\n

\xd0\x94\xd0\xbb\xd1\x8f \xd1\x82\xd0\xbe\xd0\xb3\xd0\xbe \xd1\x87\xd1\x82\xd0\xbe \xd0\xb1\xd1\x8b \xd1 \x8d\xd1\x82\xd0\xbe\xd1\x82 \xd1\x81\xd0\xba\xd1\x80\xd0\xb8\xd0\xbf\xd1\x82 \xd1\x80\xd0\xb0\xd0\xb1 \xd0\xbe\xd1\x82\xd0\xb0\xd0\xbb \xd1\x82\xd1\x80\xd0\xb5\xd0\xb1\xd1\x83\xd0\xb5\xd1\x82\xd1\x81\xd1 \x8f\xd1\x83\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xba\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe \xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd1\x8b wmctrl- \xd1\x8d\xd1\x82\xd0\xbe \xd1\x81\xd0\xb0\xd0\xbc\ xd0\xb0\xd1\x8f\xd0\xb2\xd0\xb0\xd0\xb6\xd0\xbd\xd0\xb0\xd1\x8f\xd1\x87\xd0\xb0\xd1\x81\xd1\x82\xd1\ x8c,\xd0\xba\xd0\xbe\xd1\x82\xd0\xbe\xd1\x80\xd1\x83\xd1\x8e\xd0\xbc\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xbe \xd1\x83\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd1\x81 \xd0\xba\xd0 \xbe\xd0\xbc\xd0\xb0\xd0\xbd\xd0\xb4\xd0\xbe\xd0\xb9 sudo apt-get isntall wmctrl

\n\n

\xd0\x94\xd0\xbb\xd1\x8f \xd1\x82\xd0\xbe\xd0\xb3\xd0\xbe \xd1\x87\xd1\x82\xd0\xbe \xd0\xb1\xd1\x8b \xd1 \x8d\xd1\x82\xd0\xbe\xd1\x82 \xd1\x81\xd0\xba\xd1\x80\xd0\xb8\xd0\xbf\xd1\x82 \xd1\x80\xd0\xb0\xd0\xb1 \xd0\xbe\xd1\x82\xd0\xb0\xd0\xbb \xd0\xb0\xd0\xb2\xd1\x82\xd0\xbe\xd0\xbc\xd0\xb0\xd1\x82\xd0\xb8\xd1 \x87\xd0\xb5\xd1\x81\xd0\xba\xd0\xb8、\xd1\x81\xd0\xbe\xd1\x85\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb8\xd1\ x82\xd0\xb5\xd0\xb2\xd0\xba\xd0\xb0\xd0\xba\xd0\xbe\xd0\xbc-\xd1\x82\xd0\xbe\xd1\x84\xd0\xb0\xd0\xb9 \xd0\xbb\xd0\xb5 (\xd0\xbd\xd0\xb0\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80\xd1\x81\xd0\xb8\ xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb5\xd0\xbc myscript.sh), \xd0\xbf\xd0\xbe\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x8f\xd0\xb9\ xd1\x82\xd0\xb5\xd1\x80\xd0\xb0\xd0\xb7\xd1\x80\xd0\xb5\xd1\x88\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\xd1\ x8d\xd1\x82\xd0\xbe\xd0\xb3\xd0\xbe\xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb\xd0\xb0\xd1\x81\xd0\xba\xd0\xbe\ xd0\xbc\xd0\xb0\xd0\xbd\xd0\xb4\xd0\xbe\xd0\xb9 sudo chmod +x /full/path/to/myscript.sh(\xd0\xb3\xd0\xb4\xd0\xb5 /full/path/to/myscript.sh \xd1\x8d \xd1\x82\xd0\xbe \xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xb0\xd0\xb4\xd0\xb4\xd1\x80\xd0 \xb5\xd1\x81\xd1\x81 \xd0\xb3\xd0\xb4\xd0\xb5 \xd0\xbd\xd0\xb0\xd1\x85\xd0\xbe\xd0\xb4\xd0\xb8\xd1\x82 \xd1\x81\xd1\x8f \xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb), \xd0\xb8 \xd0\xb4\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2 \xd1\x8c\xd1\x82\xd0\xb5 \xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xb0\xd0\xb4\xd0\xb4\xd1 \x80\xd0\xb5\xd1\x81\xd1\x81 \xd0\xba \xd1\x8d\xd1\x82\xd0\xbe\xd0\xbc\xd1\x83 \xd1\x81\xd0\xba\xd1\x80 \xd0\xb8\xd0\xbf\xd1\x82\xd1\x83 \xd0\xba\xd0\xb0\xd0\xba \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xb0 \xd0\xb8\xd0 \xb7 启动应用程序。\xd0\x98\xd0\xbb\xd0\xb8 \xd0\xb6\xd0\xb5 \xd0\xbc\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xbe \xd1\x81\xd0\xbe\xd0 \xb7\xd0\xb4\xd0\xb0\xd1\x82\xd1\x8c .desktop\xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb。

\n\n

\xd0\xad\xd1\x82\xd0\xbe\xd1\x82 \xd1\x81\xd0\xba\xd1\x80\xd0\xb8\xd0\xbf\xd1\x82 \xd0\xbc\xd0\xbe\xd0 \xb6\xd0\xbd\xd0\xbe \xd0\xb0\xd0\xb4\xd0\xb0\xd0\xbf\xd1\x82\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0 \xd1\x82\xd1\x8c \xd0\xbf\xd0\xbe\xd0\xb4 \xd0\xb4\xd1\x80\xd1\x83\xd0\xb3\xd0\xb8\xd0\xb5 \xd0\xbf\xd1 \x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd1\x8b。\xd0\x9f\xd1\x80\xd0\xbe\xd1\x81\xd1\x82\xd0\xbe\xd1\x83\xd0\xb7\xd0\xbd\xd0\xb0\xd0\xb9\xd1\x82\xd0 \xb5 \xd0\xba\xd0\xb0\xd0\xba\xd0\xbe\xd0\xb9 \xd0\xba\xd0\xbb\xd0\xb0\xd1\x81\xd1\x81 \xd1\x83 \xd1\x82 \xd0\xbe\xd0\xb9 \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd1\x8b \xd0\xbf\xd1 \x80\xd0\xb8\xd0\xbf\xd1\x80\xd0\xbe\xd0\xbc\xd0\xbe\xd1\x89\xd0\xb8\xd0\xba\xd0\xbe\xd0\xbc\xd0\xb0 \xd0\xbd\xd0\xb4\xd1\x8b wmctrl -lx - \xd1\x8d\xd1\x82\xd0\xbe \xd1\x82\xd1\x80\xd0\xb5\xd1\x82\xd0\xb8\xd0\xb9 \ xd1\x81\xd1\x82\xd0\xbe\xd0\xbb\xd0\xb1\xd0\xb8\xd0\xba\xd0\xb2\xd1\x80\xd0\xb5\xd0\xb7\xd1\x83\xd0\ xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x82\xd0\xb5。\xd0\x95\xd1\x81\xd0\xbb\xd0\xb8 \xd0\xb5\xd1\x81\xd1\x82\xd1\x8c \xd0\xb6\xd0\xb5\xd0\xbb\xd0\xb0\xd0 \xbd\xd0\xb8\xd0\xb5,\xd0\xbc\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xb1\xd0\xb0\xd0\ xb2\xd0\xb8\xd1\x82\xd1\x8c\xd0\xb4\xd1\x80\xd1\x83\xd0\xb3\xd0\xb8\xd0\xb5\xd0\xbf\xd1\x80\xd0\xbe\ xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd1\x8b\xd1\x81\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1\xd0\xb0\xd0\ xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5\xd0\xbc\xd0\xba\xd0\xbe\xd0\xbd\xd1\x81\xd1\x82\xd1\x80\ xd1\x83\xd0\xba\xd1\x86\xd0\xb8\xd0\xb8else if

\n\n

资料来源:

\n\n

https://askubuntu.com/a/414041/295286

\n


Pil*_*ot6 1

我知道的唯一方法是使用 gxneur。

Ubuntu 中的自动切换布局有问题,但对于此类设置很有用。自动切换可以轻松禁用。

您可以将应用程序(例如 gnome-terminal)设置为具有单一布局。

您可以阅读gxneur 维护者的俄语版本主题。

但如果有更好的方法我也会很高兴。