uim-skkでC-jでもカナからひらがなへ戻れるようにカスタマイズ

AquaSKKとuim-skkを併用していて、C-j キー (僕は C-o に変更してるが) の扱いの違いが若干気になった。

AquaSKKでは基本的に、C-jを押せば、常にひらがな入力モードになる。

一方uim-skkは、q を押してカタカナモードになっている状態で C-j を押してもなにも反応しない。また、カタカナモードから英数モードに移行したあとで、再度 C-j を押すとカタカナモードに復帰してしまう。 ひらかなモードに戻るには再度 q でトグルさせてあげる必要があるみたい。

好みの問題かもしれないが、僕は AquaSKK の挙動のほうが好きなので、uim-skkもそれにあわせることにする。

しかし不幸なことに、uim-skkのドキュメントにそのように設定する項目が見当らなかったので、以下のようにアドホックにコードを変更した。

--- /usr/share/uim/skk.scm.orig 2013-03-06 19:12:01.994615339 +0900
+++ /usr/share/uim/skk.scm      2013-03-06 19:16:07.314888197 +0900
@@ -937,6 +937,11 @@
          (skk-return-key? key key-state))
       (skk-commit-raw sc key key-state)
       #f)
+     ((skk-on-key? key key-state)
+      (skk-context-set-state! sc 'skk-state-direct)
+      (skk-context-set-kana-mode! sc skk-type-hiragana)
+      (rk-flush rkc)
+      #f)
      ((skk-wide-latin-key? key key-state)
       (skk-context-set-state! sc 'skk-state-wide-latin)
       (rk-flush rkc)

あってるかわからないが、とりあえずこれで希望通りの動作になっているっぽい。

by typester / at 2013-03-06T19:17:00 / skk / Comments(0)