ibus开发指南

By admin, 7 十二月, 2015

代码:https://github.com/ibus

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可解决

 

评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"Drupal10"