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というすばらしい試みがあるので、そちらを使った方が良いかも知れません。
パッチのダウンロード
- http://kokutoto.com/files/ibus/ibus-1.2.0.separate_hotkey.patch
- http://kokutoto.com/files/ibus/ibus-1.3.5.separate_hotkey.patch
- ibus-1.2.0.separate_hotkey.patch http://gist.github.com/626026
- ibus-1.3.5.separate_hotkey.patch http://gist.github.com/626027
(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対応パッチへのリンクを追加)