Linux中文输入

linux在fcitx框架下, 进行中文输入

Posted by Chopong on April 22, 2019

中文输入

1. Linux下的中文输入

在英文版的Linux上, 或者安装时没有选择中文时, 开机以后是无法输入中文的, 需要安装中文输入法. 而在linux中, 不像Windows, 直接安装相关输入法就行了. 而是需要安装输入法框架, 然后再在此基础上进行安装中文输入.

1). Linux下的输入法框架

Linux下常见的输入法框架是ibus和fcitx, 安装其中一个就行.

    sudo apt get install fcitx

2). Linux中文输入法的安装

    sudo apt install fcitx-sunpinyin fcitx-sougoupinyin

3). 在菜单栏选择并配置输入法

如果不能使用, 或者出现问题, 在终端输入fcitx-diagnose, 查看输出中是否有错误, 根据错误修改.

    fcitx-diagnose

4). gtk-query-immodules

不知道从哪一版起, gtk-query-immodules的目录改到了以下位置, 在/usr/bin/中找不到可执行项, 所以fcitx可能会报错, 因此只需要在/usr/bin建立符号链接即可

gtk2: /usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0 gtk3: /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0

    ln -s /usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0 /usr/bin/gtk-query-immodules-2.0
    ln -s /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 /usr/bin/gtk-query-immodules-3.0

5). XIM报错

~/(/home/xxx/)目录下找到.xinitrc 将以下内容填写到文尾.

    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"

2. Locale设置

1). locale选项

有些时候, 在一些软件中并不能调出fcitx, 这是因为当前的locale设置并不是中文环境, 这时候需要配置locale文件, 一般系统读取顺序为: /etc/enviroment -> /etc/profile -> ~/.profile -> ~/.env (如果存在)

或者直接在/etc/default/locale更改, 其中的一些可选项如下:

可选项 含义
LANG locale的默认值, 优先级最低
LANGUAGE 程序界面的语言
LC_CTYPE 输入语言
LC_NUMERIC 数值显示方式
LC_TIME 时间显示方式
LC_COLLATE 归类类别
LC_MONETAR 货币显示方式
LC_MESSAGES 提示信息, 错误信息, 状态信息和菜单等
LC_NAME 姓名书写方式
LC_ADDRESS 地址书写方式
LC_TELEPHONE 电话号码书写方式
LC_MEASUREMENT 度量衡表达方式
LC_PAPER 默认纸张大小
LC_IDENTIFICATION 对locale自身包含信息的概述
LC_ALL 选择整个locale语言环境
  • 如果想要一个纯中文系统的话, 设定LC_ALL=zh_CN.UTF-8
  • 如果只想要一个中文输入环境, 而保持菜单信息保持为英文, 只要设定LC_CTYPE=zh_CN.Utf-8, LANG=en_US.UTF-8就可以了
  • 假如什么也不做的话, 就是默认LC_ALL, LC_*, LANG均不设定, 系统将采用POSIX作为locale, 也就是C locale.

2). LANG和LANGUAGE的区别

  • LANG 指定所有未设定locale的变量的默认值, 优先级很低
  • LANGUAGE 多数应用程序使用此语言作为面板语言
  • 优先级: LC_ALL > LC_* > LANG

3. 参考资料