View Single Post
javispedro's Avatar
Posts: 2,355 | Thanked: 5,249 times | Joined on Jan 2009 @ Barcelona
#1
xmimd is bridge between the MeeGo Input Method framework (aka Maliit) and the standard X11 input method system, XIM.

Latest version is 1.2 . Old versions are available. If you are using Easy Debian, please follow the excellent instructions by rcolistete.

It was originally designed to be able to write text using the N9 virtual keyboard to remote X applications being run under SSH X redirection. These applications were neither Gtk+ or Qt.
However, I realized it would also be useful for running non-Qt applications under Harmattan, including those from Easy Debian. If Xephyr is being used, xmimd can be configured to use the Xephyr Window id when talking with Maliit instead of sending "invalid" (from the point of view of Maliit) Window IDs.



Using XIM has a few advantages versus other solutions such as the Maliit GTK input method, apart from the Xephyr redirection feature.
XIM is supported by virtually every application and widget framework in the Unix world, so nothing has to be installed on the remote system or chroot, and it works with applications that do not use Gtk+ or Qt. Additionally, XIM uses X11 as the transport protocol, so no new network ports have to be opened (or bind mounts for D-Bus).

However, there are several cons to using XIM:
- XIM is arcane. It is hard to understand, hard to debug. May the Gods of X11 help you!
- XIM is quite strict regarding locale configuration and does not tolerate some of the stuff distros have been doing as of lately.
- "Native" input methods such as Maliit GTK input context will provide much more integration between the virtual keyboard and applications. XIM is just "good enough".


Here's a brief description of xmimd command line arguments.
Please note that if you are using Easy Debian, most is already set up for you.
  • -v is verbose mode
  • -d is shorthand for setting $DISPLAY. xmimd will register as a X input method in the specified display.
  • -x activates the "Xephyr proxy mode" described above. As mandatory parameter, you need to specify Xephyr's window ID

In the target environment (e.g. inside the chroot or in the remote system), you need to set the following environment variables:
Code:
export GTK_IM_MODULE=xim
export XMODIFIERS="@im=xmim"
A brief tutorial if you are using a custom chroot.

You might post your xmimd problems and experiences on this thread

Last edited by javispedro; 2012-08-17 at 15:07.
 

The Following 14 Users Say Thank You to javispedro For This Useful Post: