Open9

JISキーボードでもUS配列のいいとこ取りしたいのでkarabiner.jsonを改造する

ピン留めされたアイテム
log5log5

なんでこんなことするのかというと...
US配列かJIS配列か選べない状態になったから

  • US配列を使うには、かな英字キーがないので、日本語入力時にストレスになってる
  • JIS配列を使うには、USキーボードの旨味を知りすぎた

※かな英字キーは、US配列のコマンドに割り当てる方法も考えたんですが、深刻な副作用が発生したので断念

文字 どうする
バッククォート E/J で代用
イコール サーカムフレックス
シングルクォート どうしよう...
バックスラッシュ ¥ マーク

ということで

入力(JIS) 出力
サーカムフレックス イコール
¥ マーク バックスラッシュ
: '
shift + ; :
shift + : "
あたりはやっておきたいかも

以下は必須ではないけど、あるとうれしいかなというレベル

入力(JIS) 出力
shift + 2 @
shift + 6 サーカムフレックス
shift + 7 &
shift + 8 *
shift + 9 (
shift + 0 )

JIS配列だと0の上は空いているし、いろいろ見るとUS配列の方が良さそうっていう感じ

log5log5

とりあえず、イコールは修飾キーなしで打ちたいので
karabinarだとサーカムフレックスではなくイコールとして認識するっぽいのでこうする

"simple_modifications": [
    {
        "from": {
            "key_code": "equal_sign"
        },
        "to": [
            {
                "key_code": "keypad_equal_sign"
            }
        ]
    }
],
log5log5

Shift + =+ だと楽なので complex_modifications に以下を入れる

"rules": [
    {
        "description": "ShiftEqual-To-Plus",
        "manipulators": [
            {
                "from": {
                    "key_code": "keypad_equal_sign",
                    "modifiers": {
                        "mandatory": [ "shift" ]
                    }
                },
                "to": [
                    {
                        "key_code": "keypad_plus"
                    }
                ],
                "type": "basic"
            }
        ]
    }
]
log5log5

円マークを押すとバックスラッシュが出てきてほしいので、置き換える。
US配列にはないキーなので international3 が該当する(というのを動かして知った)

"rules": [
    {
        "description": "Change Yen-mark to Backslash",
        "manipulators": [
            {
                "from": {
                    "key_code": "international3"
                },
                "to": [
                    {
                        "key_code": "international3",
                        "modifiers": [
                            "option"
                        ]
                    }
                ],
                "type": "basic"
            }
        ]
    },
   
]
log5log5

シングルクォーテーションは、どうしよう...

  • コロンに割り当てて、コロンは shift + ; に退避させる

のが一番よさそうではあるが、、、今まで修飾キーなしで使えてたものが今後修飾キーが必要になるってのはなんか避けたい感じはある。。。

イコールと同じ頻度、とまではいかないかもしれないけど、意外と使うと思うんですよね。

log5log5

【番外編】
US配列で前述の副作用が起きないための方法として、CmdとOptionの同時押しはありかな?
と思ったけど、これ「Cmd+Option+なにか」の入力を妨害しうるな。。。

ずらして押せば問題なさそうだけど、誤入力の原因にはなりそう

"rules": [
    {
        "description": "CmdShiftToKanaEiji",
        "manipulators": [
            {
                "from": {
                    "simultaneous": [
                        { "key_code": "left_option" },
                        { "key_code": "left_command" }
                    ]
                },
                "to": [
                    {
                        "key_code": "japanese_eisuu"
                    }
                ],
                "type": "basic"
            },
            {
                "from": {
                    "simultaneous": [
                        { "key_code": "right_option" },
                        { "key_code": "right_command" }
                    ]
                },
                "to": [
                    {
                        "key_code": "japanese_kana"
                    }
                ],
                "type": "basic"
            }
        ]
    }
]
log5log5

(実を言うとあれからめんどくさくなって全然やってない)

log5log5

【番外】サーカムフレックスが入力できなくなってたので暫定的に

{
    "description": "Shift0-To-circumflex",
    "manipulators": [
        {
            "from": {
                "key_code": "0",
                "modifiers": {
                    "mandatory": [
                        "shift"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "equal_sign"
                }
            ],
            "type": "basic"
        }
    ]
}
log5log5

JISキーボードの ^equal_sign になるのはなんだろう、Karabinerの仕様?