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)
因此,总而言之,我无法使任何解决方案起作用。
我想这里的底线是我想要得到的东西并不那么简单,所以没有它也没关系。
#!/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
,然后就可以执行了。
该脚本需要安装wmctrl
程序,这是脚本功能的关键。要安装它,请运行sudo apt-get install wmctrl
.
要使其在每次登录时连续运行,请将脚本的完整路径添加到启动应用程序或.desktop
在/home/yourusername/.config/autostart
. Takkat 的回答.desktop
是使用文件主题的一个变体。
该脚本可以通过多种方式进行修改。了解所需程序的 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\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。
\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
。
\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。
\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\nhttps://askubuntu.com/a/414041/295286
\n