AquaSKKには同時打鍵を認識・記述する方法がないため、新下駄配列を使用するには、AZIKの場合のようにかな規則とショートカットキーをいじるだけでは不十分です。さらに一歩進んで、キー割り当てソフトを使用する必要があります。
私はKeyRemap4MacBookを使ってそれなりに新下駄配列が使える状態に出来たので今の時点での成果を少しずつ紹介していきます。
AZIKの場合以上に、SKKで多用する「L」「Q」「X」といった単打のショートカットは、Controlとの組み合わせなどに変更しておく必要があります。これらのキーを使うかながどれも打てなくなるからです。
AZIKの場合のQ,L,Xの問題と同じく、keymap.confを修正します。
AZIKの場合と異なり、この問題の修正には.ruleファイルの変更は不要です。
両手で同時打鍵をする新下駄配列では小指でのシフト操作は現実的ではありませんので、スペースキーでシフトするSandSを採用します。
KeyRemap4MacBookに最初から含まれている「Space to Shift_L (+When you type spce only, sendSpace)」の各種設定を好みで選んでもらえばいいと思います。
KeyRemap4MacBookには、既に「ことえり」「ATOK」といった普通のIME用の設定はあります。
これらの設定でも、ほとんどのひらがな、カタカナの入力はスムーズにできます。
しかし、これらの設定では、漢字(単語)入力でつまります。単打入力の際にシフトしても、変換モードに移行しないのです。
この原因は、jis_shingeta_base.xmlにおいて、単打の場合はモディファイアキーが押されていない場合のみ、新下駄配列への置き換えが行なわれるように設定されているからです。
下記の「ModifierFlag::NONE」という文字列がそれです。(「く」の定義を例にしています)
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen>
これは各種のショートカットキーを使えるようにするためでしょうが、SKK的には困ります。
シフト付きの単打の場合も新下駄配列への置き換えが行なわれるように、上記のjis_shingeta_base.xmlをコピー((usキーボードの場合はjis_shingeta_base_for_us.xmlをベースにした方がいいのでしょうね。))した上で、単打がシフトされている場合にも、文字が入れ替えられ、また、単打がシフトされている場合には入れ替えられた文字の一文字目もシフトされる定義を追加しましょう。
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen>
この追加を単打文字全てに対して行ない、修正後の定義をprivate.xmlに追加します。
これで、そこそこ打てるようになるはずです。
単打でないかなのほとんどは、シフトによって普通に変換モードに入ることができます。KeyRemap4MacBookで同時打鍵を表現するのに使われる--SimultaneousKeyPresses--は、シフトについて設定しない場合、シフトをそのまま渡してくれるからです。
ただし、この仕様はDと@の同時打鍵で入力される「うぉ」の場合は問題となります。
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::JIS_ATMARK, KeyCode::U, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
「うぉ」を表現するのに必要なU、X、Oのすべてがシフトしてしまうのが良くないようで、シフトすると「う」と「ぉ」の間に送りの区切れがあると認識されて辞書登録モードに入ってしまいます。
以下のようにDがシフトしている場合の設定を明示的に追加して、Uだけがシフトするようにすれば大丈夫です。
<autogen>--SimultaneousKeyPresses-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::JIS_ATMARK, KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
同手同時打鍵による記号入力のうち、!と?の入力は特に問題なくできます。デフォルトでは半角ですが、全角にしたければAquaSKKの.ruleファイルで指定するだけで大丈夫です。
!,!,!,! ?,?,?,?
RとF、RとGの同時打鍵による「・」の入力については、jis_shingeta_base.xmlに設定がありません。これは、・についてはIMによって、入力方法が異なるからです。SKKの場合はz/で・を入力しますから、RとF、RとG同時打鍵でz/が入力されるようにしましょう。
<autogen>--SimultaneousKeyPresses-- KeyCode::R, KeyCode::F, KeyCode::Z, KeyCode::SLASH, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::R, KeyCode::G, KeyCode::Z, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
/もjis_shingeta_base.xmlに設定がありません。しかも、SKKのデフォルトでは/の直接入力ができませんので、KeyRemap4MacBookの設定を弄るだけでは対応できません。
そこで、まず.ruleファイルに「s/」で「/」が入力できるような設定を追加したうえで、
s/,/,/,/
HとUの同時打鍵でSと/が入力されるようにprivate.xmlに設定を追加します。
<autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::U, KeyCode::S, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
FG同時打鍵による「」、HJ同時打鍵による()の入力は一見できてるように見えるかもしれませんが、無駄な改行が挿入されるうえ、真ん中に移動してくれません。他のIMでの確定用に無駄なENTERが入力されるからです。
<!-- FG -> 「」 &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::F, KeyCode::G, KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT, KeyCode::RETURN, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen> <!-- HJ -> () &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::J, KeyCode::KEY_8, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::RETURN, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen>
これは、KeyCode::RETURNを削除すれば解決です。
<!-- FG -> 「」 &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::F, KeyCode::G, KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen> <!-- HJ -> () &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::J, KeyCode::KEY_8, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen>
新下駄配列を使っていると、候補ウィンドウの選択ラベル(ASDFGHJKL)が使えなくなります。AquaSKKの環境設定で選択ラベルを1から9か、1から0に変えておきましょう。
自分が昔、(今は非公開にしている)はてなダイヤリーに書いた記事を読もうとしている人がいたので、はてな匿名ダイヤリーに載せます。最近のMacではKeyRemap4MacBook(後のKarabiner)は使...
AquaSKKには同時打鍵を認識・記述する方法がないため、新下駄配列を使用するには、AZIKの場合のようにかな規則とショートカットキーをいじるだけでは不十分です。さらに一歩進んで、キ...