Elementary OS使用fcitx安装搜狗词库、搜狗输入法(Ubuntu通用)

时间:2024-02-22 16:04:27

前言

刚开始接触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

使用搜狗输入法的皮肤

素材来源

注意这里有坑,不过还是要继续看下去的,说不定就有解决方案呢。

皮肤工具下载完成后先不要操作,去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

看下使用效果:

皮肤制作到此完成,可以根据自己爱好定制!

使用搜狗输入法的词库

素材来源:

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,重新加载就默认简体中文了!