如果阁下也像本人一样使用 Debian Testing 发行版,那么在使用 Vim 写写文档时肯定也发现,中文输入法 fcitx 4.0.1 不好使了,怎么回事呢?
原来 Debian Testing 更新不知道不觉给我们更新了 Gnome-terminal 到新版本 3.0.1,而其是基本 GTK 3 的。虽然我们还没有使用上 Gnome 3,但部分软件已经更新到 GTK 3 时代的了。
那怎么办呢?把 Gnome-terminal 给降回 2 时代就 OK,我一开始就是这样处理的,没办法,就下载个 Gnome-terminal 2.33.5 源码包回来,自己编译安装。
早个星期 Fcitx 出更新了,可以支持 GTK 3 模块,也就是其能解决 GTK 3 中文输入法的问题。本人经过一轮折腾,以及在别人的指点帮助之后,终于解决好这个问题。下面说说我编译的过程,以及一些配置方面的问题。
安装
下载源码包:
wget -c http://fcitx.googlecode.com/files/fcitx-4.1.1_all.tar.bz2
解压并进入目录:
tar xvf fcitx-4.1.1_all.tar.bz2
cd fcitx-4.1.1
因为其包含很多输入法的,像二笔、仓颉这种,本人从来不用,就连拼音都不碰,所以只留下一个五笔拼音,而且码表还是用自己的,毕竟一些习惯很重要。
那就修改下 data/table/CMakeLists.txt 文件的第 2 至 6 行,去掉那些我不用的,变成如下的样子:
${CMAKE_CURRENT_BINARY_DIR}/wbpy.mb
)
set(TABLEORG_DATA wbpy.txt)
set(TABLE_NAME wbpy)
set(TABLE_CONF wbpy.conf)
再用自己的码表 wbpy.txt 替换 data/table/table.tar.gz 里的,至于码表怎么制作而来,本站有相关的内容,有兴趣可以找来看下,挺简易的一件事。
好开始编译:
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_GTK3_IM_MODULE=On
make
sudo make install
cmake 可选项(On/Off)
-DENABLE_DBUS 如果禁用DBus,同时不会编译任何的IM Module
-DENABLE_CAIRO 如果禁用,将无法使用fcitx-classic-ui
-DENABLE_PANGO 如果禁用,将不使用 pango 进行字体绘制,将只能支持单一字体显示(在字符集不足时)。
-DENABLE_TABLE 如果禁用,将不编译及生成码表相关数据
-DENABLE_GTK2_IM_MODULE 如果禁用,将不编译GTK2的IM Module
-DENABLE_GTK3_IM_MODULE 如果禁用,将不编译GTK3的IM Module
-DENABLE_QT_IM_MODULE 如果禁用,将不编译QT4的IM Module
-DENABLE_OPENCC 如果禁用,将不使用OpenCC作为简繁转换的后端
本人除了 QT4 是全部开 On。
如果 cmake 不满足条件,很有可能是差 libgtk-3-dev 这个包。
到此,安装也结束。
如果想要卸载?如果 cmake 之后产生的文件都还在。 用 root 权限执行 make uninstall 即可卸载了。 如果 cmake 之后的目录已经被你删除了,那就把代码重新下载下来,cmake 之后 make uninstall。
以前版本的 config 在本版不太适合,可以把 ~/.config/fcitx 目录给删掉好让其自己再重新产生一个新的。注意:除了 ~/.config/fcitx/config 是配置文件之外,~/.config/fcitx/conf/ 目录下的文件也是配置文件来的,本版本进行了一些分离,好更精细,好比界面的配置就在其下。
解决 GTK 3 模块的中文输入
我们还是回到解决终端 Gnome-terminal 输入中文的问题之上。
首先之前 cmake 的 -DENABLE_GTK3_IM_MODULE=On 是必须的。打开终端 Gnome-terminal,右键选择 输入方法 那里选择 Fcitx,那就可以像以前那样很轻松地输入中文了,没有 Fcitx 这一项,就 root 执行: gtk-query-immodules-3.0 –update-cache。但好像每次开终端要输入中文都要选择一次,知道解决方法的朋友可否分享一下。
新特色介绍
到此,可以说本文已经写完。但 Fcitx 4.1.1 有很多新的东西加入,不妨介绍一下。
坚排词组列表
一直以来,都是横排列表,不过习惯了也没什么,但为了美观起见,一般都是设定 5 个候选词组,如果输入一些比较生的字词要进行翻页时,这个就有点点淡痛,而现在可以竖排,那么设置成 10 个甚至以上都没有问题。
引入 OpenCC
OpenCC 是什么东东?是一个简繁互换的项目,大家都知道,在大陆中文是使用简化字,如“干”字,翻译成繁体,有“幹什麼”、“乾淨”,等不同,而 OpenCC 则是致力于解决这一问题的项目。
以前的版本,Fcitx 的简繁互换真是郁闷,直接是机械式乱来,基本不起作用。而本人当时的方法是再做一个繁体的码表来专门输入繁体,而现在不用了,只要一个码表就够,点上那个“繁”字(简繁互换的快捷键是Ctrl+Shift+F),一切搞掂,不用再去切换码表。
自动英文模式
这个我有点不太习惯。按了大写键之后,输入的字母不是自动上屏,而得回车才上屏。作者开发这个功能为的是输入整段英文时方便,比哪说输入 Open my heart 这句话,先按大写键,输入 O,再按一下大写键回到小写输入 “pen my heart”,再回车就输入完毕。
其实我觉得没什么用处,我开大写键无非就是想输入几个大写字母。现在还要按一下回车,真是麻烦。而这种输入整段英文的方式在“;”键那里的功能也可以实现得很好,何必又多此一举。
如果你也和我一样,不习惯,可以将其停用掉。安装 fcitx-configtool 或者 kcm-fcitx-0.1.1 将其模块给停用即可。