前言
刚开始接触Linux的小伙伴可能比较懵逼,我要使用ibus输入法还是fcitx(小企鹅)输入法,其实这两种都不能说是输入法,Linux中输入法的使用是依赖于输入法框架的,其中搜狗输入法和百度输入法都是依赖于fcitx框架的,当然两种框架用什么依据个人爱好,对于小白选手还是推荐fcitx吧,因为搜狗用着真香啊.自带的输入法皮肤样式真的是一言难尽,词库也不符合中文的输入习惯,既然适应不了,我们就改造他。
接下来主要描述如何整合搜狗的皮肤和词库。
前提是你使用的Linux发行版已经安装了fcitx输入法框架。
安装fcitx,先来个CV三连。
添加软件源
sudo add-apt-repository ppa:fcitx-team/nightly
更新依赖库
sudo apt-get update
安装fcitx相关组件,自动安装相关依赖,如果依赖不足根据提示安装就行了
sudo apt-get install fcitx fcitx-sunpinyin fcitx-module-cloudpinyin fcitx-googlepinyin
如果有强迫症看ibus不舒服,可以卸载ibus,清楚依赖和相关配置项
sudo apt remove ibus --purge
使用搜狗输入法的皮肤
素材来源
- 搜狗皮肤:https://pinyin.sogou.com/skins/
- 皮肤制作工具:git clone https://github.com/VOID001/ssf2fcitx.git
注意这里有坑,不过还是要继续看下去的,说不定就有解决方案呢。
皮肤工具下载完成后先不要操作,去github看一眼:https://github.com/VOID001/ssf2fcitx#dependencies,需要依赖于以下工具
我们下载的是源码,需要自己去编译安装。
以上依赖安装完成后开始进行下面操作吧
安装cmak
sudo apt install cmake
进入克隆目录
cd ssf2fcitx
开始编译
cmake ./
过程可能会有关 pkg 报错,作为合格的Linux用户当然是自己解决啦,执行 sudo apt install pkg-config 即可。
然后 make ,可能报错 unitypes.h not found ,直接 vim ssfextract.cpp ,删掉第 9 行的库引用即可。
最后安装
sudo make install
顺利的话是可以安装成功的!
接下来开始制作皮肤,讲下载的搜狗皮肤.ssf
文件转换成可被识别的文件。
ssf2fcitx -i filename.ssf -o dirname
然后移动
mv dirname ~/.config/fcitx/skin
重启 Fcitx ,大功告成!
如果安装了fcitx-qimpanel
皮肤管理工具,皮肤包的路径应该放置在/usr/share/fcitx-qimpanel/skin/
目录会被所有用户共享,这里的路径要以自己实际路径为准,不然皮肤不能被识别!
注意,上面是一切顺利,如果编译安装失败可以看下文
不过如果前段所说的QT5环境没有是要失败的,我当时卡在这里好久没解决,QT是啥我不懂,我要怎么办,我想这东西很定有人有编译打包好的工具啊,直接去百度,果不其然真的有,哈哈哈!
直接下载安装就完事了,是deb包这个应该就不用说怎么安装了吧。
下载地址:链接: https://pan.baidu.com/s/1Wg2a_ZU_PvPqxDfE-gTQNQ 密码: 7hk7
这里再次感谢大佬,安装后会出现图标但是可能点击没法使用,但是不影响我们使用命令啊。
默认安装后的目录在/opt/ssf2fcitx
文件夹下,进去查看
vincente@vincente:/etc/apt$ cd /opt/ssf2fcitx/
vincente@vincente:/opt/ssf2fcitx$ ls
libasyncns.so.0 libgcc_s.so.1 liblzma.so.5 libQt5MultimediaWidgets.so.5 libwrap.so.0
libblkid.so.1 libgcrypt.so.20 libmount.so.1 libQt5Network.so.5 libX11.so.6
libbsd.so.0 libgdk_pixbuf-2.0.so.0 libm.so.6 libQt5OpenGL.so.5 libX11-xcb.so.1
libcairo.so.2 libgio-2.0.so.0 libmtdev.so.1 libQt5Widgets.so.5 libXau.so.6
libcap.so.2 libGLdispatch.so.0 libnsl.so.1 libQt5X11Extras.so.5 libxcb-render.so.0
libcroco-0.6.so.3 libglib-2.0.so.0 libogg.so.0 libQt5Xml.so.5 libxcb-shm.so.0
libcrypto.so.1.1 libGL.so.1 libpango-1.0.so.0 libresolv.so.2 libxcb.so.1
libc.so.6 libGLX.so.0 libpangocairo-1.0.so.0 librsvg-2.so.2 libxcb-util.so.0
libdatrie.so.1 libgmodule-2.0.so.0 libpangoft2-1.0.so.0 librt.so.1 libXdmcp.so.6
libdbus-1.so.3 libgobject-2.0.so.0 libpcre16.so.3 libselinux.so.1 libXext.so.6
libdframeworkdbus.so.2 libgpg-error.so.0 libpcre.so.3 libSM.so.6 libXi.so.6
libdl.so.2 libgraphite2.so.3 libpixman-1.so.0 libsndfile.so.1 libxkbcommon.so.0
libdouble-conversion.so.1 libgsettings-qt.so.1 libpng16.so.16 libssl.so.1.1 libxml2.so.2
libdtkcore.so.2 libgthread-2.0.so.0 libproxy.so.1 libstartup-notification-1.so.0 libXrender.so.1
libdtkwidget.so.2 libgudev-1.0.so.0 libpthread.so.0 libstdc++.so.6 libXtst.so.6
libEGL.so.1 libharfbuzz.so.0 libpulsecommon-10.0.so libsystemd.so.0 libz.so.1
libevdev.so.2 libICE.so.6 libpulse.so.0 libthai.so.0 ssf2fcitx_skin
libexpat.so.1 libicudata.so.57 libQt5Concurrent.so.5 libudev.so.1 ssf2fcitx_skin.png
libffi.so.6 libicui18n.so.57 libQt5Core.so.5 libuuid.so.1 ssf2fcitx_skin.sh
libFLAC.so.8 libicuuc.so.57 libQt5DBus.so.5 libvorbisenc.so.2 ssf2skin
libfontconfig.so.1 libinput.so.10 libQt5Gui.so.5 libvorbis.so.0
libfreetype.so.6 liblz4.so.1 libQt5Multimedia.so.5 libwacom.so.2
其中ssf2fcitx_skin
是图形化启动界面,但是在我的电脑上不好使,你可以使用ssf2skin
来制作皮肤,步骤同上。
制作后的输出目录内容,这里推荐一款皮肤【诺亚方舟】
vincente@vincente:~/Downloads$ cd fangzhou/
vincente@vincente:~/Downloads/fangzhou$ ls
15407970467788_former.gif bar.png comp_588600.png fcitx_skin.conf skin1.png skin2_2.png skin.ini skinmanager3.png
a3.png cn3.png en3.png skin1_2.png skin2_1.png skin2.png skin.ini.u8
看下使用效果:
皮肤制作到此完成,可以根据自己爱好定制!
使用搜狗输入法的词库
素材来源:
- 搜狗词库下载地址:https://pinyin.sogou.com/dict/
接下俩开始转换整合
下载工具:
sudo apt install fcitx-tools
下载词库,这里我已经上传两个文件可以直接下载
- 基本词库:
- 搜狗计算机术语词库:
不过搜狗的词库是scel文件需要我们先做一个格式转换,转换为org
格式的文件就可以被识别了。
在你搜狗词库的根目录下创建一个org文件夹
vincente@vincente:~/Downloads/sougou$ mkdir org
vincente@vincente:~/Downloads/sougou$ ls
computer.scel org/
然后创建一个trans.sh文件来转化
for scel in *.scel
do
scel2org ${scel} -o org/${scel}.org
done
授予可执行权限
chmod +x trans.sh
执行./trans.sh
,结果
vincente@vincente:~/Downloads/sougou$ ./trans.sh
计算机词汇大全【官方推荐】
计算机科技
官方推荐,词库来源于网友上传!
然后将基本的词库org文件复制进去
vincente@vincente:~/Downloads/sougou/org$ ls
computer.scel.org pyPhrase.org
切换到org目录,接下来开始整合词库
cat *.org > tot.org #整合基本词库和自定义词库
sort tot.org > ord.org # 排序
uniq ord.org > final.org # 去重
final.org
就是最终我们需要的词库文件
执行createPYMB gbkpy.org final.org
进行最后的转换,gbkpy.org
是转换脚本,转换词库为mb
文件
vincente@vincente:~/Downloads/sougou/org$ createPYMB gbkpy.org final.org
vincente@vincente:~/Downloads/sougou/org$ ls
computer.scel.org pybase.mb pyphrase.mb pyPhrase.org tot.org
其中的 mb 文件就是我们的 Fcitx 词库文件了。
执行 mv *.mb ~/.config/fcitx/pinyin ,随后重启 Fcitx 即可。
小彩蛋
折腾了这么多其实最简单的就是去直接下载搜狗输入法,哈哈哈!
百度输入法也是可以的。我现在就在体验百度输入法。
下载地址:
后续
经过一段时间的使用发现搜狗输入法IDEA光标不跟随,百度输入法在IDEA会在左下角显示候选栏,还有中英文输入法切换的问题。
最终的解决方案是卸载搜狗、百度输入法、卸载fcitx,使用ibus、安装ibus-rime输入法解决。
fcitx在使用rime时候会出现输入法切换的问题,在ibus比较稳定,这可能是elementary os默认ibus的原因吧,系统默认的总是有他的道理的,屈服!!!
安装
sudo apt install ibus
sudo apt install ibus-rime
rime默认是繁体,在~/.config/ibus/rime中修改default.yal没人pinyin_simp,重新加载就默认简体中文了!