OS X El Capitan の日本語入力で DvorakJP 配列を使うためにやったこと。
- System Integrity Protection を無効にする。
- DvorakJP ローマ字変換テーブルを作る。
-
RomajiRule_Default.txt
を書き換える。 - System Integrity Protection を有効にもどす。
System Integrity Protection を無効にする。
ローマ字変換テーブルは /System/Library/Input Methods/JapaneseIM.app/Contents/Resources/RomajiRule_Default.txt
にあるので、El Capitan から搭載された System Integrity Protection を無効にしないと書き換えられない。
やり方はこのへん。csrutil
コマンドを使う。
OS X 10.11 El Capitanのシステム保護機能「Rootless」を無効にするcsrutilコマンドの使い方。
http://applech2.com/archives/46435268.html
El Capitan 用の DvorakJP ローマ字変換テーブルを作る。
Google 日本語入力用の変換テーブルをコンバートして作る。
https://github.com/yuzuemon/google-japanese-input-romaji-table
これの dvorakjp-edited.txt
を Python で適当に変換。もとのテーブル RomajiRule_Default.txt
にないやつだけ書き出してる。
出力されたやつを適当に編集してできあがったのが↓こちら。
https://gist.github.com/Saqoosha/494315111b8e2bc19ea5#file-romajirule_default-txt
# 無効
ってなってる行は、一応エントリはあるけど機能しないやつ。どうもキー入力が直接渡ってきてるわけじゃないっぽくて、記号類がすでに全角になってたりするので ',.;
あたりのが含まれてるパターンが使えない。
RomajiRule_Default.txt
を書き換える。
一応もとのやつをバックアップとった上で書き換える。
cd /System/Library/Input\ Methods/JapaneseIM.app/Contents/Resources
cp RomajiRule_Default.txt RomajiRule_Default_org.txt
cp ~/Desktop/RomajiRule_Default.txt .
書き換えただけでは有効にならないので OS 再起動。(killall -HUP JapaneseIM
でも新しいテーブルで起動し直してくれるのだけど、すでに起動してるアプリで日本語入力できなくなったりするので OS ごと再起動しちゃうのがよいたぶん。)
System Integrity Protection を有効にもどす。
せっかく防御機能がついてるので戻しておきましょう。
El Capitan の日本語入力のローマ字変換テーブルのフォーマット
- TSV
-
以降はコメントあつかい。
- 1 カラム目、入力。
- 2 カラム目、変換後。
- 3 カラム目。変換後の文字数分、数字がならぶ。カンマ区切り。変化後が 1 文字ならいらない。
- 変換後の文字それぞれが、もとの入力の何文字文からできてるか?みたいな?
- マイナスになってるやつの意味がわからない。
- 数があってなかったり不正なフォーマットだと日本語入力そのものが落ちる。
いろいろやってみたときの結果。
cnp きゅう 2,1,1 # x: 落ちる
cnp きゅう 2,1,0 # x: "cんゅ"
cnp きゅう -2,1,0 # x: 落ちる
cnp きゅう -1,2,0 # x: 落ちる
cnp きゅう -0,2,1 # x: "cんう"
cnp きゅう 0,1,2 # x: "ゅんp"
cnp きゅう -0,1,2 # x: "ゅんp"
cnp きゅう 0,-1,2 # x: 落ちる
cnp きゅう 1,2,0 # x: "きんp"
cnp きゅう -1,2,0 # x: 落ちる
cnp きゅう -0,1,1 # x: 落ちる
cnp きゅう -1,1,1 # x: 落ちる
cnp きゅう 1,1,1 # x: きゅp
cnp きゅう 0,0,3 # o: "きゅう" 1 word
cnp きゅう 0,0,-3 # o: "きゅう" 1 word
cnp きゅう 0,3,0 # x: "きゅ|う"
cnp きゅう 0,-3,0 # x: きゅう -> ゅ
cnp きゅう 3,0,0 # x: "き|ゅう"
cnp きゅう -3,0,0 # x: バックスペースで削除できない