linux-安装中文输入法
上一级页面:index-wsl
前言
fcitx是Linux比较流行的输入法框架。
如果你在ubuntu2204-lts,那么更推荐fcitx5。linux-安装中文输入法-fcitx5
设置中文语言-更换中文字体
配置dbus,生成dbus机器码(machine-id)
"machine ID"通常在系统安装或首次启动时从一个随机数源生成, 并且之后无论经过多少次开关机,也一直保持不变。
ubuntu与ui交互需要D-Bus,一般不用安装dbus,ubuntu自带这个包,
sudo apt install dbus dbus-x11
sudo apt-mark auto dbus dbus-x11
生成dbus机器码(machine-id)
sudo systemd-machine-id-setup
环境预备工作
首先需要确保LC_ALL/LC_CTYPE等变量的设置,见linux-修改系统默认语言为中文
输入法环境变量需要配置到全局用户可用
,并且shell和非shell环境可用
那么应当放入到/etc/environment
(bash的环境变量配置文件)或者/etc/zsh/zshenv
(zsh的环境变量配置文件中)
为了让wsl端和windows正常通信,还需要暴露出dbus session
:具体做法如下
首先在 wsl 端安装输入法和 dbus,
然后用 dbus-launch 启动一个 dbus session,并且让 x server 和输入法同时得到
DBUS_SESSION_BUS_ADDRESS
,这样输入法才能正常使用,脚本如下:
# 设置DBUS_SESSION_BUS_ADDRESS
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
eval `dbus-launch --sh-syntax`
fi
最终配置见:wsl2-x11-环境变量配置
现在重启你的系统!!
sudo systemctl reboot
安装fcitx
安装 fcitx 提供核心的输入框框架
安装 fcitx-frontend-all 可以覆盖所有图形界面平台支持。
安装通用的输入法码表fcitx-table* 套件
sudo apt install fcitx
# 安装输入码表
sudo apt install fcitx-table-all
安装中文输入法
根据需要安装一个或多个输入法,见Fcitx (简体中文) - ArchWiki (archlinux.org)
标准拼音输入法 包含双拼自然码等
# 标准拼音输入法 包含双拼自然码等
sudo apt install fcitx-pinyin
推荐sun拼音输入法,在输入速度和输入精度之间有较好的平衡。支持双拼
# sun拼音输入法,在输入速度和输入精度之间有较好的平衡。
sudo apt install fcitx-sunpinyin
推荐fcitx-libpinyin,算法比 sunpinyin 先进。
# libpinyin,算法比 sunpinyin 先进。
sudo apt install fcitx-libpinyin
谷歌拼音,一部分人喜欢
# google拼音输入法
sudo apt install fcitx-googlepinyin
安装五笔输入法
# 五笔
sudo apt install fcitx-table-wubi-large
# 另一个五笔
sudo apt install fcitx-table-wbpy
添加插件
添加插件,提供云拼音输入的支持
# 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。
sudo apt install fcitx-module-cloudpinyin
设置成默认输入法
运行 im-config ,默认输入法设置
sudo apt install -y im-config
im-config
设置 Fcitx
为默认输入法:
若图形界面模糊,使用命令设置也可以,如下:
im-config -n fcitx
配置dbus
配置Dbus
sudo dpkg-reconfigure dbus
重启wsl
sudo systemctl reboot
桌面环境下自动启动
如果您用 XDG 兼容的桌面环境,比如 KDE, GNOME, Xfce, LXDE, 那么当您安装好 Fcitx 并重新登录后,Fcitx 应该会自动启动。如果没有的话,可以打开控制台并运行fcitx
。为检验 Fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。
如果 Fcitx 没有随桌面环境自动启动,或者您想修改下 Fcitx 启动参数,请用桌面环境提供的自动启动工具配置,或者直接编辑用户目录~/.config/autostart/
下的 fcitx-autostart.desktop
文件以确认自动启动是否被禁用。如果用户目录下的文件并不存在,您可以复制自动启动文件 /etc/xdg/autostart/fcitx-autostart.desktop
到用户目录:
cp /usr/share/applications/fcitx.desktop ~/.config/autostart/
如果您使用的桌面环境并不自动支持 XDG 自动启动, 或者您根本没有桌面环境,请在您使用的启动脚本里面添加 fcitx
以实现自动启动。(见下一小节,我根本就没有桌面环境,只能通过在启动脚本中添加自动启动语句来启动)
例如,你使用i3或sway窗口管理器,可以在配置文件中添加exec --no-startup-id fcitx
来自动启动输入法。
当 iBus 等其它输入法程序同时启动且开启了 Xim 支持时, 可能导致 Fcitx 无法启动,请确保已禁用了其它输入法程序的自动启动。
配置环境变量
最终配置见:wsl2-x11-环境变量配置
类似于下面的配置
# gtk 输入法
export GTK_IM_MODULE=fcitx
# qt 输入法
export QT_IM_MODULE=fcitx
# x11输入法
export XMODIFIERS=@im=fcitx
# wayland输入法
export INPUT_METHOD=fcitx
# 使用特定版本 SDL2 库的游戏
export SDL_IM_MODULE=fcitx
# 让 kitty 启用输入法支持
export GLFW_IM_MODULE=ibus
# 设置自启动
fcitx -d &>/dev/null
# 或者用下面自启动命令
fcitx-autostart &>/dev/null
现在重启你的系统!!
sudo systemctl reboot
fcitx-config-gtk3 启动输入法配置面板
运行以下命令关闭 iBus (注意应当禁用ibus-daemon,其与Fcitx功能冲突)
sudo killall ibus-daemon
然后关闭fcitx
sudo killall fcitx
因为上一节已经设置过fcitx自启动,现在重启linux
使用 fcitx-config-gtk3 命令启动输入法配置面板,添加输入法
fcitx-config-gtk3
运行fcitx-config-gtk3报错解决方法
有可能运行fcitx-config-gtk3
,失败
删除 ~/.config/fcitx/
文件夹
rm -rf ~/.config/fcitx
重新安装fcitx-frontend-all
,并且重启系统
sudo apt install --reinstall fcitx
sudo apt install --reinstall fcitx-table-all
sudo apt install --reinstall fcitx-frontend-all
现在重启你的系统!!
sudo systemctl reboot
配置输入法
列表第一项将作为「未激活」状态使用,请将此项设为键盘布局输入法,比如「(键盘 - 英文)」,第一项后面的输入法都是活动输入法。。
警告: 请必须将键盘布局输入法
设为列表中第一项, 否则可能会无法禁用中文输入。
有一个only show current lanaguage
的选择,记得取消选择,然后搜索输入法,添加进来。
更改输入法快捷键
在_全局配置_中, 触发输入法
快捷键仅在未激活输入法
及最后一个活动输入法
之间切换。
切换输入法
快捷键默认仅在不同的活动输入法间切换,但是在高级设置中可以将非激活输入法
加入切换选择。
切换输入法
快捷键需要按顺序按下,例如 ALT_SHIFT
仅在先按 alt
再按 shift
后生效。
Trigger Input Method:切换激活/非激活
Scroll between Input Method:输入法切换键
在任意GUI應用用 Trigger Input 設定的快捷鍵啟用輸入法,
用 Scroll between Input Method 的快捷鍵切換輸入法,效果如下:
启用云拼音输入
添加插件,提供云拼音输入的支持
# 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。
sudo apt install fcitx-module-cloudpinyin
安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。
启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。
若安装fcitx-cloudpinyin后,在配置程序里却没有看见云拼音,记得勾上“高级”复选框。这时云拼音会显示出来,再勾上云拼音。
注意: 不推荐将云拼音候选词设为第一个候选词,因为当网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置,于是这个过程可能会涉及到默认候选词的改变。
命令行切换输入法工具fcitx-imlist
sudo apt install fcitx-imlist
vim-fcitx
如果您经常在 Vim 下使用 Fcitx, 可以安装 vim-fcitx插件。以退出插入模式时,自动关闭 Fcitx, 反之则反:
see fcitx.vim - keep and restore fcitx state when leaving/re-entering insert mode : vim online
或者在 ~/.vimrc
添加如下代码。
"##### auto fcitx ###########
let g:input_toggle = 1
function! Fcitx2en()
let s:input_status = system("fcitx-remote")
if s:input_status == 2
let g:input_toggle = 1
let l:a = system("fcitx-remote -c")
endif
endfunction
function! Fcitx2zh()
let s:input_status = system("fcitx-remote")
if s:input_status != 2 && g:input_toggle == 1
let l:a = system("fcitx-remote -o")
let g:input_toggle = 0
endif
endfunction
set ttimeoutlen=150
"退出插入模式
autocmd InsertLeave * call Fcitx2en()
"进入插入模式
autocmd InsertEnter * call Fcitx2zh()
"##### auto fcitx end ######
使用方法
完成之后重启电脑就行了。
输入法的调出需要ctrl+space,切换是ctrl+shift
Ubuntu安装了xfce4桌面环境后,fcitx因为冲突,会导致系统全局快捷键失效,而且fcitx也会损坏
Ubuntu 18.04 安装了xfce4桌面环境后,fcitx因为冲突,会导致系统全局快捷键失效,而且fcitx也会损坏:
修复方法:
删除~/.config/fcitx,再运行fcitx -d命令。
sudo rm -rf ~/.config/fcitx
fcitx -d
如果出现DBus Service Already Exists的报错,重启系统
重新安装
sudo apt-get install fcitx
sudo apt-get install fcitx-table
sudo apt-get install fcitx-table-all
sudo apt-get install fcitx-frontend-all
参考、引用、致谢
如何在 Linux 上管理字体 - 知乎 (zhihu.com)
优化中文显示 · GitBook (thoughtworks.cn)
使用X11 Forwarding在WSL 2中运行GUI程序 | ddadaal.me
(23条消息) linux 字体库配置,添加自定义字体库_Ternence_Hsu的博客-CSDN博客_font.conf
Ubuntu 16.04安装字体管理工具 - EasonJim - 博客园 (cnblogs.com)
https://linux.cn/article-4732-1-rss.html
http://www.linuxidc.com/Linux/2014-05/101191.htm
http://blog.csdn.net/tao_627/article/details/45114827
(23条消息) ubuntu server 安装相应图形化界面程序_Blithe的博客-CSDN博客
linux中文乱码问题解决 - 简书 (jianshu.com)
在Windows默认缩放比例和WSL GUI应用程序(HiDPI)上使用模糊字体 | 码农俱乐部 - Golang中国 - Go语言中文社区 (mlog.club)
如何优雅的在Windows 10上装X [Lainme's Blog]
在 WSL 上配置輸入法 | Patrick Wu's Space
Ubuntu安装搜狗输入法无法使用 - OSCHINA - 中文开源技术交流社区
Ubuntu 14.04 安装小企鹅输入法 Fcitx - linux_magnetic_storm - OSCHINA - 中文开源技术交流社区
(24条消息) Ubuntu 一键安装搜狗输入法!全网唯一!_Linux猿的博客-CSDN博客
(24条消息) locale的设定中LANG、LC_ALL、LANGUAGE_天下皆白_唯我独黑的博客-CSDN博客