iBusの有効/無効に個別のホットキーを割り当てるseparate hotkey patchを作りました(ついでにvi協調機能付き)




あらまし

最近mozcと共に使い始めたiBusですが、UIM + Anthy使いだった僕は以下の点を不満に感じました。

  • 日本語入力のオン/オフのホットキーはトグルしか設定できない、オン/オフにそれぞれ専用のホットキーを割り当てたい
  • いわゆるvi協調モードのような挙動(これはmozc側の機能?)は、自分の環境だとたまに取りこぼしがあり、不安定だった

そこでiBusのソースをチラ見したところ、案外簡単にいじれそうな作りだったため、次の変更を加えるいいかげんなパッチを作りました。

  • 日本語入力のオン/オフだけを個別に行う有効(Enable)/無効(Disable)ホットキーを追加
  • ESCやctrl+[といった任意のキーで日本語入力を確実に無効にするvi協調(Vi collaboration)ホットキーを追加
  • 日本語入力の有効/無効/vi協調ホットキーを設定できるようにibus-setupのUIを変更(エントリー冒頭の画像)

このパッチはdebian squeezeのリポジトリにあるibus_1.2.0.20091215をベースに書いています。ubuntu 10.04もibus_1.2.0のようなので多分そのまま使えるでしょう。

本家で最近stableになったibus_1.3.5は、構造がちょっと変更されているのでそのままでは使えません。本質的な部分は変わっていないようだったので、とりあえず適用できるように書き換えたパッチも作りました(動作未確認)。

パッチ当てとインストール

debian squeezeの場合だと以下の手順でパッチを適用してインストールできます。ubuntuでもibusのバージョン表記が少し違う程度だと思います。

$ mkdir ibus
$ cd ibus
$ apt-get source ibus
# apt-get build-dep ibus
$ cd ibus-1.2.0.20091215
$ wget http://kokutoto.com/files/ibus/ibus-1.2.0.separate_hotkey.patch
$ patch -p1 < ibus-1.2.0.separate_hotkey.patch
$ dpkg-buildpackage
$ cd ..
# dpkg -i *.deb

起動と設定

既に起動しているibus-daemonを置き換えてついでにXIMも有効にするなら起動はこんな感じ。

$ ibus-daemon -d -x -r

設定はibus-setupを実行するかシステムトレイのアイコンから設定を起動。

$ ibus-setup

デフォルトではEnable/Disable/Vi Collaborationのどれもキーを割り当てない設定です。Vi CollaborationはEscape; Control+bracketleftを推奨します。キーコード指定時はESCキーを押すとダイアログが閉じるので、キーコードの欄にEscapeと書いて追加します。

設定でトグルや他のホットキーと重複するキーを割り当てた場合は、挙動がおかしくなると思います。あんまりいじめないでください。

おわりに

このパッチは長いものには巻かれろの精神でmozc + iBusを使いたい人向けです。そもそもiBusなんて使いたくないという方は、uim-mozcというすばらしい試みがあるので、そちらを使った方が良いかも知れません。

パッチのダウンロード


(2010/10/14 gistへ移行)

後藤裕文さんがibus_1.3.9に対応したパッチを公開されています! ありがとうございました。紹介させていただきます。

http://gotto.jp/ibus/ibus-1.3.9.separete_hotkey.patch

(2011/07/13 後藤裕文さんのibus 1.3.9対応パッチへのリンクを追加)