1. Qiita
  2. Items
  3. Mac

0001-141227 MacのUSキーボードで親指シフト入力する方法

  • 38
    Like
  • 14
    Comment

本稿の方法はOS X El Capitan 10.11.6 までで動作確認済み。
Karabinerは現時点(2016/11/04)でMacOS Sierra(10.12)未対応のため利用できません。

MacのUSキーボードできっちりと親指シフト入力ができるようにKarabiner(Mac用キーボード置き換えソフト)の設定を詰めてみました。

背景

  • 日本語入力ならローマ字入力よりも親指シフト入力でしょ
  • 英語(各種プログラムを含む)入力ならJISキーボードよりもUSキーボードでしょ
  • →ならば、USキーボードで親指シフト入力できたら最強なのでわ?

それなのに現状は…

  • 「Macで親指シフト入力」と言うとJISキーボードを使うのが主流みたい
  • Karabinerの親指シフト設定もJISキーボード用に記述されている
  • USキーボードで親指シフト入力すると、記号の一部がミスマッチして気持ち悪いし、一部入力できない記号もある(左カギカッコとかセミコロンとか)
  • →ならば、USキーボード専用の親指シフト入力設定をつくってしまえ!

というわけであれこれと試行錯誤の結果、割といい感じにまとまったので公開してみます。

ご利用前の注意事項

  • ここで紹介する方法は、手の大きさやキーボードの種類によっては、苦痛に感じる人も多いかもしれません
  • 数日試してみても指が慣れない場合は健康のため諦めたほうがいいかもしれません
  • USキーボードにこだわりのない方は、現在主流の「日本語JISキーボード+orz配列(親指右手ずらし配列)」の方がよいでしょう
  • MacのUSキーボードで親指シフト入力する方法(orzレイアウト編)を追加しました

やったこと

今回ベースにした親指シフト配列は↓です。親指シフト配列にはいろいろと細かい枝分かれバージョンがあるようで、こちらの配列は厳密にはNicola(ニコラ)配列と言うそうです。私はたまたまこの配列表で親指シフト入力を覚えたので、こちらの配列をベースにすることになりました。

NICOLA_J.PNG

そして、このNicola配列をUSキーボードのキーひとつひとつに割り当ててできたのが、今回紹介する↓US親指シフト配列(略してUSO配列 ^_^v)です。

us_keyboard.jpg

US親指シフト配列(USO配列)の特徴

オリジナルの配列を可能な限り忠実に再現

  1. 英語モードではUSキーボードとして100%そのまま使え、日本語モードではほぼNicola配列が使える
  2. 一部の例外(, . ;)を除いて、ほとんどの記号が日本語モードでもUSキーボードの刻印通りに入力できる
  3. Nicola配列で定義されていないキーの組み合わせを入力した場合、予想外の文字が入力されないようにした(例:親指左シフト 3→「〜」となるが親指右シフト 3→無反応となる)

オリジナルから変更した箇所

  1. P→「、」(読点) [ (Pの右隣りのキー)→「左カギカッコ」 Z→「。」(句点)(設定で無効化することも可能)
    「、」(読点)をオリジナルの[からPに引っ越すことで、USキーボードの[]の位置関係がスッキリした。
    そのかわり、「、」(読点)と「,」(カンマ)の打ち分けができなくなったが、むしろその方が好ましいかもしれない(?)
    これに合わせて「。」(句点)と「.」(ピリオド)の打ち分けもできないようにした。
    Google日本語変換で「≤」や「≥」が入力されてしまう問題も解消してむしろ好都合♪

  2. Nicola配列の「ん」に割り当てられて入力できなくなっていた「;」を親指左シフトで入力できるようにした
    親指左シフト ;→「;」

その他

  1. 日本語モードでもoption+Yで「¥」を入力できるようにした(設定で無効化することも可能)
  2. 定義ファイル(uso_main.xml)でUSキーボードのすべてのキーの組み合わせを定義しているので、気に入らない部分は独自に改変しやすくなっている

設定ファイルとインストール方法

(1) 次の2つのテキストファイルを追加する

/Users/ユーザ名/Library/Application Support/Karabiner/uso/uso_base.xml
・・・親指シフトキーにどのキーを使用するか定義

/Users/ユーザ名/Library/Application Support/Karabiner/uso/uso_main.xml
・・・日本語モードでの各キーの割り当てテープル

(2) Karabinerの設定ファイル(private.xml)を以下のように編集する

private.xml(例)
<?xml version="1.0"?>
<root>

  <item>
        <name>hoge1</name>
        ・・・・・・・・・・・・・・
        ・・・・・・・・・・・・・・
  </item>

  <item>
        <name>hoge2</name>
        ・・・・・・・・・・・・・・
        ・・・・・・・・・・・・・・
  </item>

===↓ この下4行を追加する
  <item>
        <name>US親指シフト入力</name>
        <include path="uso/uso_base.xml" />
  </item>
===↑

</root>

(3) Karabinerの設定ダイアログでReload XMLボタンを押して設定内容を反映させる

Screen Shot 2014-12-27 at 12.01.27 .png

設定ファイル

uso/uso_base.xml
<?xml version="1.0"?>
<root>

    <item>
        <name><ローマ字モード> 左シフト=スペース, 右シフト=右コマンド</name>
        <identifier>remap.uso_space_command_r</identifier>

        <include path="uso_main.xml">
            <replacementdef>
                <replacementname>LEFT_THUMB</replacementname>
                <replacementvalue>KeyCode::SPACE</replacementvalue>
            </replacementdef>
            <replacementdef>
                <replacementname>RIGHT_THUMB</replacementname>
                <replacementvalue>KeyCode::COMMAND_R</replacementvalue>
            </replacementdef>
        </include>
    </item>

    <item>
        <name><ローマ字モード> 左シフト=左コマンド, 右シフト=スペース</name>
        <identifier>remap.uso_command_l_space</identifier>

        <include path="uso_main.xml">
            <replacementdef>
                <replacementname>LEFT_THUMB</replacementname>
                <replacementvalue>KeyCode::COMMAND_L</replacementvalue>
            </replacementdef>
            <replacementdef>
                <replacementname>RIGHT_THUMB</replacementname>
                <replacementvalue>KeyCode::SPACE</replacementvalue>
            </replacementdef>
        </include>
    </item>

    <item>
        <name><ローマ字モード> 左シフト=左コマンド, 右シフト=右コマンド</name>
        <identifier>remap.uso_command_l_command_r</identifier>

        <include path="uso_main.xml">
            <replacementdef>
                <replacementname>LEFT_THUMB</replacementname>
                <replacementvalue>KeyCode::COMMAND_L</replacementvalue>
            </replacementdef>
            <replacementdef>
                <replacementname>RIGHT_THUMB</replacementname>
                <replacementvalue>KeyCode::COMMAND_R</replacementvalue>
            </replacementdef>
        </include>
    </item>

    <item>
        <name>---</name>
    </item>

    <item>
        <name>Option_L+y -> ¥</name>>
        <identifier>remap.option_y2yen</identifier>
    </item>
    <item>
        <name>全角カンマと読点、全角ビリオドと句点をそれぞれ統合してPキーの右のキーを開放する</name>
        <name>(P:, Z:. [:、) -> (P:、 Z:。 [:「) </name>
        <name>(P,Zキーで≤や≥が入力されてしまう場合はチェックした方が幸せになれる)</name>
        <identifier>remap.pandz</identifier>
    </item>

</root>
uso/uso_main.xml
<?xml version="1.0"?>
<root>

    {{JAPANESE_OYAYUBISHIFT_EXTRA}}
    <inputmode_only>JAPANESE</inputmode_only>

    <!-- 左手 上段 数字キー (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::BACKQUOTE, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_1, KeyCode::SLASH, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_2, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_3, KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_4, KeyCode::BRACKET_LEFT, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_5, KeyCode::BRACKET_RIGHT, KeyCode::VK_NONE</autogen>
    <!-- 左手 上段 数字キー (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::BACKQUOTE, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_1, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_2, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_3, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_4, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_5, KeyCode::VK_NONE</autogen>

    <!-- 左手 上段 -->
    <autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::NONE, KeyCode::DOT, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::NONE, KeyCode::K, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::E, ModifierFlag::NONE, KeyCode::T, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::R, ModifierFlag::NONE, KeyCode::K, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::T, ModifierFlag::NONE, KeyCode::S, KeyCode::A, KeyCode::VK_NONE</autogen>
    <!-- 左手 上段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::Q, KeyCode::X, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::W, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::E, KeyCode::R, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::R, KeyCode::X, KeyCode::Y, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::T, KeyCode::R, KeyCode::E, KeyCode::VK_NONE</autogen>
    <!-- 左手 上段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::Q, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::W, KeyCode::G, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::E, KeyCode::D, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::R, KeyCode::G, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::T, KeyCode::Z, KeyCode::A, KeyCode::VK_NONE</autogen>

    <!-- 左手 中段 -->
    <autogen>--KeyToKey-- KeyCode::A, ModifierFlag::NONE, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::S, ModifierFlag::NONE, KeyCode::S, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::D, ModifierFlag::NONE, KeyCode::T, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::F, ModifierFlag::NONE, KeyCode::K, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::G, ModifierFlag::NONE, KeyCode::S, KeyCode::E, KeyCode::VK_NONE</autogen>
    <!-- 左手 中段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::A, KeyCode::W, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::S, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::D, KeyCode::N, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::F, KeyCode::X, KeyCode::Y, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::G, KeyCode::M, KeyCode::O, KeyCode::VK_NONE</autogen>
    <!-- 左手 中段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::A, KeyCode::V, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::S, KeyCode::Z, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::D, KeyCode::D, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::F, KeyCode::G, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::G, KeyCode::Z, KeyCode::E, KeyCode::VK_NONE</autogen>

    <!-- 左手 下段 -->
    <block>
        <config_not>remap.pandz</config_not>
        <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::NONE, KeyCode::DOT, ModifierFlag::OPTION_L, KeyCode::VK_NONE</autogen>
    </block>
    <block>
        <config_only>remap.pandz</config_only>
        <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::NONE, KeyCode::DOT, KeyCode::VK_NONE</autogen>
    </block>
    <autogen>--KeyToKey-- KeyCode::X, ModifierFlag::NONE, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::C, ModifierFlag::NONE, KeyCode::S, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::V, ModifierFlag::NONE, KeyCode::H, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::B, ModifierFlag::NONE, KeyCode::H, KeyCode::E, KeyCode::VK_NONE</autogen>
    <!-- 左手 下段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::Z, KeyCode::X, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::X, KeyCode::MINUS, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::C, KeyCode::R, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::V, KeyCode::Y, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::B, KeyCode::X, KeyCode::I, KeyCode::VK_NONE</autogen>
    <!-- 左手 下段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::Z, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::X, KeyCode::B, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::C, KeyCode::Z, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::V, KeyCode::B, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::B, KeyCode::B, KeyCode::E, KeyCode::VK_NONE</autogen>


    <!-- 右手 上段 数字キー (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_6, KeyCode::BRACKET_LEFT, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_7, KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_8, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_9, KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::KEY_0, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::MINUS, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::EQUAL, KeyCode::VK_NONE</autogen>
    <!-- 右手 上段 数字キー (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_6, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_7, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_8, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_9, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::KEY_0, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::MINUS, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::EQUAL, KeyCode::VK_NONE</autogen>

    <!-- 右手 上段 -->
    <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::NONE, KeyCode::R, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::U, ModifierFlag::NONE, KeyCode::T, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::I, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::O, ModifierFlag::NONE, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen>
    <block>
        <config_not>remap.pandz</config_not>
        <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::NONE, KeyCode::COMMA, ModifierFlag::OPTION_L, KeyCode::VK_NONE</autogen>
        <autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, ModifierFlag::NONE, KeyCode::COMMA, KeyCode::VK_NONE</autogen>BRACKET_LEFT
    </block>
    <block>
        <config_only>remap.pandz</config_only>
        <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::NONE, KeyCode::COMMA, KeyCode::VK_NONE</autogen>
    </block>
    <block>
        <config_only>remap.option_y2yen</config_only>
        <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::OPTION_L, KeyCode::BACKSLASH, KeyCode::VK_NONE</autogen>
    </block>
    <!-- 右手 上段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::Y, KeyCode::Y, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::U, KeyCode::N, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::I, KeyCode::R, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::O, KeyCode::M, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::P, KeyCode::X, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::BRACKET_LEFT, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::BRACKET_RIGHT, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::BACKSLASH, KeyCode::VK_NONE</autogen>
    <!-- 右手 上段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::Y, KeyCode::P, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::U, KeyCode::D, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::I, KeyCode::G, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::O, KeyCode::D, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::P, KeyCode::P, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::BRACKET_LEFT, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::BRACKET_RIGHT, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::BACKSLASH, KeyCode::VK_NONE</autogen>

    <!-- 右手 中段 -->
    <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::H, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::NONE, KeyCode::T, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::NONE, KeyCode::K, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::NONE, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::NONE, KeyCode::N, KeyCode::N, KeyCode::VK_NONE</autogen>
    <!-- 右手 中段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::H, KeyCode::M, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::J, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::K, KeyCode::N, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::L, KeyCode::X, KeyCode::Y, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::SEMICOLON, KeyCode::X, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::QUOTE, KeyCode::VK_NONE</autogen>
    <!-- 右手 中段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::H, KeyCode::B, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::J, KeyCode::D, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::K, KeyCode::G, KeyCode::I, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::L, KeyCode::P, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::SEMICOLON, KeyCode::SEMICOLON, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::QUOTE, KeyCode::VK_NONE</autogen>

    <!-- 右手 下段 -->
    <autogen>--KeyToKey-- KeyCode::N, ModifierFlag::NONE, KeyCode::M, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::M, ModifierFlag::NONE, KeyCode::S, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::NONE, KeyCode::N, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::DOT, ModifierFlag::NONE, KeyCode::H, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--KeyToKey-- KeyCode::SLASH, ModifierFlag::NONE, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
    <!-- 右手 下段 (順親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::N, KeyCode::N, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::M, KeyCode::Y, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::COMMA, KeyCode::M, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::DOT, KeyCode::W, KeyCode::A, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{RIGHT_THUMB}}, KeyCode::SLASH, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
    <!-- 右手 下段 (クロス親指シフト) -->
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::N, KeyCode::P, KeyCode::U, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::M, KeyCode::Z, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::COMMA, KeyCode::P, KeyCode::E, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::DOT, KeyCode::B, KeyCode::O, KeyCode::VK_NONE</autogen>
    <autogen>--SimultaneousKeyPresses-- {{LEFT_THUMB}}, KeyCode::SLASH, KeyCode::VK_NONE</autogen>

</root>

感謝とリンク

  • Karabiner これなしでMacの親指シフトはありえませんね。素晴らしい仕組みをありがとうございます。
  • orzレイアウト US親指シフトの設定ファイル作成にあたってはorzレイアウトのxmlの記述を大いに参考にさせていただきました。ありがとうございました。