Switching keyboard layouts and IIIM

Internet/Intranet Input Method (IIIM) is a distributed Input Method solution that provides Input support for Java & X11 clients via Internet/Intranet. The related documentation can be found here.

When I upgraded from snv_83a to snv_85 I lost the ability to switch layouts. This is what I discovered:

iiim-properties sets the hot-keys ( <Ctrl>-<space> by default) and available languages

The following processes must be running:

  • iiim-xbe
  • /usr/bin/iiimx -iiimd
  • iiimd -nodaemon -desktop -udsfile /tmp/.iiim-username/:3.0 \
         -vardir /export/home/username...

If no processes are running they can be started with:

/usr/bin/iiimx -iiimd

The processes are supposed to be started during the logging in by /usr/dt/config/Xsession.d/0020.dtims

If $DTSTARTIMS is set to True:

it calls either /usr/dt/config/$LANG/0020.dtims (if it exists)

or /usr/openwin/lib/locale/common/dtims and if ($LANG ends up in .UTF-8 or contains .UTF-8@) /usr/openwin/lib/locale/common/imsscript/S505multi

gam_server, Solaris and high CPU load

Since upgrading to s11b83a I noticed that gam_server processes eat significant amount of CPU cycles. So I decided to make some investigations.

# uname -a
SunOS xeon 5.11 snv_83 i86pc i386 i86pc
# pkginfo -l SUNWgamin
NAME:  Library providing the FAM File Alteration Monitor API
CATEGORY:  GNOME2,application,JDS4
ARCH:  i386
VERSION:  0.1.9,REV=
. . .
# fgrep SUNWgamin /var/sadm/install/contents
/usr/lib/gam_server f ...
/usr/lib/libfam.so=libfam.so.0.0.0 s ...
/usr/lib/libfam.so.0=libfam.so.0.0.0 s ...
/usr/lib/libfam.so.0.0.0 f ...
/usr/lib/libgamin-1.so=libgamin-1.so.0.1.9 s ...
/usr/lib/libgamin-1.so.0=libgamin-1.so.0.1.9 s ...
/usr/lib/libgamin-1.so.0.1.9 f ...
/usr/lib/python2.4/vendor-packages/_gamin.so f ...
/usr/lib/python2.4/vendor-packages/gamin.py f ...

No manuals, no config files.

# strings  /usr/lib/gam_server
. . .

From Gamin project page:

Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system. This is a service provided by a library which allows to detect when a file or a directory has been modified.

This is the description of the config file: Gamin config

Now, how to fix the problem

  1. Create /etc/gamin directory:
    # mkdir /etc/gamin
  2. Create file /etc/gamin/gaminrc. It may contain the following lines (this is just an example, you can set your own polling intervals):
    fsset nfs poll 15
    fsset ufs poll 15
    fsset lofs poll 15
    fsset zfs poll 15
  3. Restart gam_server (let me know if there is a better way):
    # pkill  gam_server;  rm -rf /tmp/gam_*

Voila! That should be done in all zones.

Update 2008-07-07 @00:06:24: i did not see this behaviour in snv_92. However, do not install snv_92 because of otehr bugs. Try snv_93.