input method development support for xcb
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


xcb-imdkit is an implementation of xim protocol in xcb, comparing with the implementation of IMDkit with Xlib, and xim inside Xlib, it has less memory foot print, better performance, and safer on malformed client.

And not to say it's all asynchronous and it works with xcb.

Though, it doesn't have complete protocol support, since some part of the protocol is never used. Those parts include:

  • XIM_EXT_SET_EVENT_MASK (no im actually use this
  • XIM_EXT_FORWARD_EVENT (it's not any better than forward event)
  • XIM_AUTH (IMDkit doesn't implement this, Xlib only has stub, so still no implementation.)
  • XIM_STR_CONVERSION (Synchronous protocol, but not used anywhere)
  • Locale check on client side, this is actually very evil for input method.
  • Only X transport is supported.

To build this project, you need: libxcb, xcb-util, xcb-util-keysym

Commands: mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make sudo make install

xcb-imdkit is released under LGPLv2+, and it is using uthash internally, which is released under BSD-license.