PhpStorm で AquaSKK をちゃんと動かすまでの長い道のり
はじめに
macOS の SKK といえば AquaSKK なんですが、Java アプリケーションとの相性が悪かったり、外国人との相性が悪かったり?するようで、時々ちゃんと動かないアプリケーションに遭遇します。
有名所だと、確か LINE とか PowerPoint とか iTerm2 とかがダメだったりします。
使ってないから分からないけど、LINE とか PowerPoint は AquaSKK 側に互換性設定があり、そこの設定で対応しているらしいですが、そうじゃないものは頑張ってどうにかしないといけません。
最近使ってるアプリの中で、頑張ってどうにかしないといけないものの筆頭が個人的には PhpStorm なんですが、これ AquaSKK の互換性設定にデフォルトで設定が入っているにもかかわらずこれだけだとちゃんと動かないので頑張って動く所までやったので、次回の自分のためにも記録を残しておきます*1。
設定
PhpStorm の設定
まずは PhpStorm 側で C-j のキーボードショートカットを削除しましょう。邪魔なので。
それだけやれば PhpStorm 側の設定は完了です。
Karabiner-Elements の設定
Karabiner-Elements には completx_modifications というのがあり、アプリ毎にキーバインドを変えたり、ちょっと特殊なキーの入れ替えをしたりといったことができるようになっています。
このルールを管理している公式のサイトがあり、そこに AquaSKK の設定もあるのでそれをインポートします。
ke-complex-modifications.pqrs.org
インポートしたら、AquaSKK for Terminal/iTerm2
のルールを有効化してください(AquaSKK for JetBrains
は使えないので有効化しません)。
そうしたら $HOME/.config/karabiner/karabiner.json
をエディタで開き、AquaSKK for Terminal/iTerm2
の設定を丸っとコピーして、conditions 部分を書き換えて下記のような設定を追加します。
{ "description": "Ctrl-J to Kana for JetBrains", "manipulators": [ { "conditions": [ { "bundle_identifiers": [ "^com\\.jetbrains\\." ], "type": "frontmost_application_if" } ], "from": { "key_code": "j", "modifiers": { "mandatory": [ "control" ] } }, "to": [ { "key_code": "japanese_kana" } ], "type": "basic" } ] },
めんどくさかったら、Terminal/iTerm2 の設定の bundle_identifiers
の所に1行足すだけでもよいです。
AquaSKK のキーマップ変更
Karabiner-Elements の設定だけだと、全角英数モードからひらがなモードに戻れないので、今度は AquaSKK のキーマップを変更します。
/Library/Input Methods/AquaSKK.app/Contents/Resources/keymap.conf
を $HOME/Library/Application Support/AquaSKK/keymap.conf
にコピーし、SKK_JMODE に keybode::0x68
を追加して、かなキーでひらがなモードに遷移できるようにします。
SKK_JMODE ctrl::j||keycode::0x68
AquaSKK の互換性設定
まだこれだけだと、日本語入力した後に l を押して ASCIIモードに遷移する時に l
が入力されてしまうので、互換性設定で「空文字挿入」にチェックを入れます。
おわり
多分これで、PhpStorm 上で AquaSKK がまともに使えるようになっているはずです。
めちゃくちゃめんどくさいですが、SKK よりまともな日本語入力が世の中に存在しないので仕方ないね。
*1:ちなみに前回の自分は丁度 Karabiner が死んだタイミングで HammerSpoon とか色んなものを使用していてよく分からない状態になっていました