diff -urN org/uim-0.4.6final1/debian/control uim-0.4.6final1/debian/control
--- org/uim-0.4.6final1/debian/control	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/control	2005-06-16 19:46:41.000000000 +0900
@@ -8,7 +8,7 @@
 Package: uim-common
 Section: text
 Architecture: all
-Depends: libuim0 (>= ${Source-Version}) | libuim0-nox (>= ${Source-Version})
+Depends: libuim0 (>= ${Source-Version}) | libuim0-nox (>= ${Source-Version}), im-switch
 Suggests: uim-gtk2.0 | uim-xim
 Description: Common files for uim
  uim is a input method module library supporting various languages, which
diff -urN org/uim-0.4.6final1/debian/im-switch/uim_anthy uim-0.4.6final1/debian/im-switch/uim_anthy
--- org/uim-0.4.6final1/debian/im-switch/uim_anthy	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/im-switch/uim_anthy	2005-06-16 19:46:41.000000000 +0900
@@ -0,0 +1,22 @@
+XIM=uim
+XIM_PROGRAM=/usr/bin/uim-xim
+XIM_ARGS=
+GTK_IM_MODULE=uim
+ENGINE=anthy
+
+if [ -r "$HOME/.uim" ]; then
+  TMPFILE=$(mktemp) || exit 1
+  if [ "$(grep "; IM-SWITCH VALUE" $HOME/.uim)" ]; then
+    sed "s/(define default-im-name '[^)]*) ; IM-SWITCH VALUE/(define default-im-name '$ENGINE) ; IM-SWITCH VALUE/" < $HOME/.uim > $TMPFILE
+  else
+    cat $HOME/.uim > $TMPFILE
+    if [ "$(grep -E "^\(define[[:space:]]+default-im-name[[:space:]]" $HOME/.uim)" ]; then
+      echo "; (define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    else
+      echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    fi
+  fi
+  mv $TMPFILE $HOME/.uim
+else
+  echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" > $HOME/.uim
+fi
diff -urN org/uim-0.4.6final1/debian/im-switch/uim_canna uim-0.4.6final1/debian/im-switch/uim_canna
--- org/uim-0.4.6final1/debian/im-switch/uim_canna	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/im-switch/uim_canna	2005-06-16 19:46:41.000000000 +0900
@@ -0,0 +1,22 @@
+XIM=uim
+XIM_PROGRAM=/usr/bin/uim-xim
+XIM_ARGS=
+GTK_IM_MODULE=uim
+ENGINE=canna
+
+if [ -r "$HOME/.uim" ]; then
+  TMPFILE=$(mktemp) || exit 1
+  if [ "$(grep "; IM-SWITCH VALUE" $HOME/.uim)" ]; then
+    sed "s/(define default-im-name '[^)]*) ; IM-SWITCH VALUE/(define default-im-name '$ENGINE) ; IM-SWITCH VALUE/" < $HOME/.uim > $TMPFILE
+  else
+    cat $HOME/.uim > $TMPFILE
+    if [ "$(grep -E "^\(define[[:space:]]+default-im-name[[:space:]]" $HOME/.uim)" ]; then
+      echo "; (define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    else
+      echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    fi
+  fi
+  mv $TMPFILE $HOME/.uim
+else
+  echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" > $HOME/.uim
+fi
diff -urN org/uim-0.4.6final1/debian/im-switch/uim_m17nlib uim-0.4.6final1/debian/im-switch/uim_m17nlib
--- org/uim-0.4.6final1/debian/im-switch/uim_m17nlib	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/im-switch/uim_m17nlib	2005-06-16 19:46:41.000000000 +0900
@@ -0,0 +1,22 @@
+XIM=uim
+XIM_PROGRAM=/usr/bin/uim-xim
+XIM_ARGS=
+GTK_IM_MODULE=uim
+ENGINE=m17nlib
+
+if [ -r "$HOME/.uim" ]; then
+  TMPFILE=$(mktemp) || exit 1
+  if [ "$(grep "; IM-SWITCH VALUE" $HOME/.uim)" ]; then
+    sed "s/(define default-im-name '[^)]*) ; IM-SWITCH VALUE/(define default-im-name '$ENGINE) ; IM-SWITCH VALUE/" < $HOME/.uim > $TMPFILE
+  else
+    cat $HOME/.uim > $TMPFILE
+    if [ "$(grep -E "^\(define[[:space:]]+default-im-name[[:space:]]" $HOME/.uim)" ]; then
+      echo "; (define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    else
+      echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    fi
+  fi
+  mv $TMPFILE $HOME/.uim
+else
+  echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" > $HOME/.uim
+fi
diff -urN org/uim-0.4.6final1/debian/im-switch/uim_prime uim-0.4.6final1/debian/im-switch/uim_prime
--- org/uim-0.4.6final1/debian/im-switch/uim_prime	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/im-switch/uim_prime	2005-06-16 19:46:41.000000000 +0900
@@ -0,0 +1,22 @@
+XIM=uim
+XIM_PROGRAM=/usr/bin/uim-xim
+XIM_ARGS=
+GTK_IM_MODULE=uim
+ENGINE=prime
+
+if [ -r "$HOME/.uim" ]; then
+  TMPFILE=$(mktemp) || exit 1
+  if [ "$(grep "; IM-SWITCH VALUE" $HOME/.uim)" ]; then
+    sed "s/(define default-im-name '[^)]*) ; IM-SWITCH VALUE/(define default-im-name '$ENGINE) ; IM-SWITCH VALUE/" < $HOME/.uim > $TMPFILE
+  else
+    cat $HOME/.uim > $TMPFILE
+    if [ "$(grep -E "^\(define[[:space:]]+default-im-name[[:space:]]" $HOME/.uim)" ]; then
+      echo "; (define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    else
+      echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    fi
+  fi
+  mv $TMPFILE $HOME/.uim
+else
+  echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" > $HOME/.uim
+fi
diff -urN org/uim-0.4.6final1/debian/im-switch/uim_skk uim-0.4.6final1/debian/im-switch/uim_skk
--- org/uim-0.4.6final1/debian/im-switch/uim_skk	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/im-switch/uim_skk	2005-06-16 19:46:41.000000000 +0900
@@ -0,0 +1,22 @@
+XIM=uim
+XIM_PROGRAM=/usr/bin/uim-xim
+XIM_ARGS=
+GTK_IM_MODULE=uim
+ENGINE=skk
+
+if [ -r "$HOME/.uim" ]; then
+  TMPFILE=$(mktemp) || exit 1
+  if [ "$(grep "; IM-SWITCH VALUE" $HOME/.uim)" ]; then
+    sed "s/(define default-im-name '[^)]*) ; IM-SWITCH VALUE/(define default-im-name '$ENGINE) ; IM-SWITCH VALUE/" < $HOME/.uim > $TMPFILE
+  else
+    cat $HOME/.uim > $TMPFILE
+    if [ "$(grep -E "^\(define[[:space:]]+default-im-name[[:space:]]" $HOME/.uim)" ]; then
+      echo "; (define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    else
+      echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" >> $TMPFILE
+    fi
+  fi
+  mv $TMPFILE $HOME/.uim
+else
+  echo "(define default-im-name '$ENGINE) ; IM-SWITCH VALUE" > $HOME/.uim
+fi
diff -urN org/uim-0.4.6final1/debian/rules uim-0.4.6final1/debian/rules
--- org/uim-0.4.6final1/debian/rules	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/rules	2005-06-16 19:46:41.000000000 +0900
@@ -126,6 +126,11 @@
 			usr/share/doc/uim-common \
 			usr/share/doc/$$pkg; \
 	done
+
+	for f in `find $(CURDIR)/debian/im-switch/ -type f | sed 's/.*uim_//'`; do \
+		install -o root -g root -m 644 $(CURDIR)/debian/im-switch/uim_$$f $(CURDIR)/debian/uim-$$f/etc/X11/xinit/xinput.d; \
+	done
+
 	dh_link -p uim-common etc/uim/installed-modules.scm usr/share/uim/installed-modules.scm
 	dh_link -p uim-common etc/uim/loader.scm usr/share/uim/loader.scm
 
diff -urN org/uim-0.4.6final1/debian/uim-anthy.dirs uim-0.4.6final1/debian/uim-anthy.dirs
--- org/uim-0.4.6final1/debian/uim-anthy.dirs	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-anthy.dirs	2005-06-16 19:46:42.000000000 +0900
@@ -1,2 +1,3 @@
 usr/lib/uim/plugin
 usr/share/uim
+etc/X11/xinit/xinput.d
diff -urN org/uim-0.4.6final1/debian/uim-anthy.postinst uim-0.4.6final1/debian/uim-anthy.postinst
--- org/uim-0.4.6final1/debian/uim-anthy.postinst	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-anthy.postinst	2005-06-17 20:51:10.224273706 +0900
@@ -26,6 +26,9 @@
 case "$1" in
     configure)
 	/usr/sbin/update-uim-config
+	update-alternatives \
+	--install /etc/X11/xinit/xinput.d/ja_JP xinput-ja_JP \
+	/etc/X11/xinit/xinput.d/uim_anthy 50
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff -urN org/uim-0.4.6final1/debian/uim-anthy.prerm uim-0.4.6final1/debian/uim-anthy.prerm
--- org/uim-0.4.6final1/debian/uim-anthy.prerm	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/uim-anthy.prerm	2005-06-17 20:55:07.650206748 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	update-alternatives --remove xinput-ja_JP /etc/X11/xinit/xinput.d/uim_anthy
+	;;
+    failed-upgrade)
+	;;
+    *)
+	echo "prerm called with unknown argument \`$1'" >&2
+	exit 1
+   ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff -urN org/uim-0.4.6final1/debian/uim-canna.dirs uim-0.4.6final1/debian/uim-canna.dirs
--- org/uim-0.4.6final1/debian/uim-canna.dirs	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-canna.dirs	2005-06-16 19:46:42.000000000 +0900
@@ -1,2 +1,3 @@
 usr/lib/uim/plugin
 usr/share/uim
+etc/X11/xinit/xinput.d
diff -urN org/uim-0.4.6final1/debian/uim-canna.postinst uim-0.4.6final1/debian/uim-canna.postinst
--- org/uim-0.4.6final1/debian/uim-canna.postinst	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-canna.postinst	2005-06-17 20:50:23.178322529 +0900
@@ -26,6 +26,9 @@
 case "$1" in
     configure)
 	/usr/sbin/update-uim-config
+	update-alternatives \
+	--install /etc/X11/xinit/xinput.d/ja_JP xinput-ja_JP \
+	/etc/X11/xinit/xinput.d/uim_canna 50
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff -urN org/uim-0.4.6final1/debian/uim-canna.prerm uim-0.4.6final1/debian/uim-canna.prerm
--- org/uim-0.4.6final1/debian/uim-canna.prerm	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/uim-canna.prerm	2005-06-17 20:54:04.290815045 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	update-alternatives --remove xinput-ja_JP /etc/X11/xinit/xinput.d/uim_canna
+	;;
+    failed-upgrade)
+	;;
+    *)
+	echo "prerm called with unknown argument \`$1'" >&2
+	exit 1
+   ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff -urN org/uim-0.4.6final1/debian/uim-m17nlib.dirs uim-0.4.6final1/debian/uim-m17nlib.dirs
--- org/uim-0.4.6final1/debian/uim-m17nlib.dirs	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-m17nlib.dirs	2005-06-16 19:46:42.000000000 +0900
@@ -1,2 +1,3 @@
 usr/lib/uim/plugin
 usr/share/uim
+etc/X11/xinit/xinput.d
diff -urN org/uim-0.4.6final1/debian/uim-m17nlib.postinst uim-0.4.6final1/debian/uim-m17nlib.postinst
--- org/uim-0.4.6final1/debian/uim-m17nlib.postinst	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-m17nlib.postinst	2005-06-17 20:51:33.428318143 +0900
@@ -26,6 +26,9 @@
 case "$1" in
     configure)
 	/usr/sbin/update-uim-config
+	update-alternatives \
+	--install /etc/X11/xinit/xinput.d/ja_JP xinput-ja_JP \
+	/etc/X11/xinit/xinput.d/uim_m17nlib 50
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff -urN org/uim-0.4.6final1/debian/uim-m17nlib.prerm uim-0.4.6final1/debian/uim-m17nlib.prerm
--- org/uim-0.4.6final1/debian/uim-m17nlib.prerm	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/uim-m17nlib.prerm	2005-06-17 20:54:37.756204808 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	update-alternatives --remove xinput-ja_JP /etc/X11/xinit/xinput.d/uim_m17nlib
+	;;
+    failed-upgrade)
+	;;
+    *)
+	echo "prerm called with unknown argument \`$1'" >&2
+	exit 1
+   ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff -urN org/uim-0.4.6final1/debian/uim-prime.dirs uim-0.4.6final1/debian/uim-prime.dirs
--- org/uim-0.4.6final1/debian/uim-prime.dirs	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-prime.dirs	2005-06-16 19:46:42.000000000 +0900
@@ -1,2 +1,3 @@
 usr/lib/uim/plugin
 usr/share/uim
+etc/X11/xinit/xinput.d
diff -urN org/uim-0.4.6final1/debian/uim-prime.postinst uim-0.4.6final1/debian/uim-prime.postinst
--- org/uim-0.4.6final1/debian/uim-prime.postinst	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-prime.postinst	2005-06-17 20:51:46.977012757 +0900
@@ -26,6 +26,9 @@
 case "$1" in
     configure)
 	/usr/sbin/update-uim-config
+	update-alternatives \
+	--install /etc/X11/xinit/xinput.d/ja_JP xinput-ja_JP \
+	/etc/X11/xinit/xinput.d/uim_prime 50
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff -urN org/uim-0.4.6final1/debian/uim-prime.prerm uim-0.4.6final1/debian/uim-prime.prerm
--- org/uim-0.4.6final1/debian/uim-prime.prerm	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/uim-prime.prerm	2005-06-17 20:54:44.589061299 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	update-alternatives --remove xinput-ja_JP /etc/X11/xinit/xinput.d/uim_prime
+	;;
+    failed-upgrade)
+	;;
+    *)
+	echo "prerm called with unknown argument \`$1'" >&2
+	exit 1
+   ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff -urN org/uim-0.4.6final1/debian/uim-skk.dirs uim-0.4.6final1/debian/uim-skk.dirs
--- org/uim-0.4.6final1/debian/uim-skk.dirs	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-skk.dirs	2005-06-16 19:46:42.000000000 +0900
@@ -1,2 +1,3 @@
 usr/lib/uim/plugin
 usr/share/uim
+etc/X11/xinit/xinput.d
diff -urN org/uim-0.4.6final1/debian/uim-skk.postinst uim-0.4.6final1/debian/uim-skk.postinst
--- org/uim-0.4.6final1/debian/uim-skk.postinst	2005-06-16 20:51:22.000000000 +0900
+++ uim-0.4.6final1/debian/uim-skk.postinst	2005-06-17 20:52:04.325065384 +0900
@@ -26,6 +26,9 @@
 case "$1" in
     configure)
 	/usr/sbin/update-uim-config
+	update-alternatives \
+	--install /etc/X11/xinit/xinput.d/ja_JP xinput-ja_JP \
+	/etc/X11/xinit/xinput.d/uim_skk 50
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff -urN org/uim-0.4.6final1/debian/uim-skk.prerm uim-0.4.6final1/debian/uim-skk.prerm
--- org/uim-0.4.6final1/debian/uim-skk.prerm	1970-01-01 09:00:00.000000000 +0900
+++ uim-0.4.6final1/debian/uim-skk.prerm	2005-06-17 20:54:50.168128105 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	update-alternatives --remove xinput-ja_JP /etc/X11/xinit/xinput.d/uim_skk
+	;;
+    failed-upgrade)
+	;;
+    *)
+	echo "prerm called with unknown argument \`$1'" >&2
+	exit 1
+   ;;
+esac
+
+#DEBHELPER#
+
+exit 0
