README:https://github.com/ibus/ibus/wiki/ReadMe
文档:https://github.com/ibus/ibus/wiki
编译代码(Ubuntu 15.10环境下)
sudo apt-get install -y gnome-common gtk-doc-tools libdconf-dev libnotify-dev valac
./autogen.sh
./configure --prefix=/usr --libexecdir=/usr/lib/ibus
make
sudo make install
ibus restart
如果make失败,可能需要修改python版本,参考:https://github.com/ibus/ibus/issues/1835
ui/gtk2已经不用了,使用ui/gtk3,其中.c文件是从.vala文件生成的,这是一种新的语言。
启动候选字控件
候选字框控件需要独立启动ui/gtk3/ibus-ui-gtk3,这是一个脚本,和.libs/ibus-ui-gtk3的可执行版本是不同的。执行脚本之后会自动生成.libs/lt-ibus-ui-gtk3,这才是能正确运行的版本。至于为什么这样就不知道了,可能要检测环境吧。
Ubuntu 18.04开始的版本中ibus-ui-gtk3已经不是控制候选字的程序,需要另外开发ibus-pinyin。
调试ibus
打开glib debug信息环境变量:export G_MESSAGES_DEBUG=all
运行ui/gtk3/ibus-ui-gtk3,这时会有调试信息显示。如果要用gdb调试的话要调试另外一个文件(不过要先运行ibus-ui-gtk3脚本才能生成ui/gtk3/.libs/lt-ibus-ui-gtk3):
gdb ui/gtk3/.libs/lt-ibus-ui-gtk3
如果想插入自己的调试信息,可以在vala文件中插入debug语句:
debug("[hgneng] enter set_candidates: %u/%d", focus_candidate, candidates.length);
在新版的ibus貌似不能独立启动ibus-ui-gtk3了,可以先把系统的/usr/bin/ibus-daemon改名,让其不自动执行重启(ibus是gnome3内置应用,不能通过配置禁用)。然后运行bus/ibus-daemon -rxv,此时可以见到详细的log信息。
调试dbug
dbus-monitor
“Can not execute default config program”的错误
如果运行ibus-daemon出现“Can not execute default config program”的错误,在~/.cache/ibus/registry里发现local/目录字符串,可能是曾经把ibus安装到local目录,可以./configure && sudo make uninstall。然后重启系统解决。
"error: Package `ibus-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories"错误
安装libgirepository1.0-dev可解决
评论