Elementary OS 使用fcitx安裝搜狗詞庫、搜狗輸入法(Ubuntu通用)

Chsoul發表於2020-11-22

前言

剛開始接觸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 即可。

小彩蛋

折騰了這麼多其實最簡單的就是去直接下載搜狗輸入法,哈哈哈!
百度輸入法也是可以的。我現在就在體驗百度輸入法。

下載地址:

相關文章