【完全版】Cornix LP を MacBook(JIS)で刻印通りに使う Karabiner 設定

スポンサーリンク
cornix-lp-karabiner ガジェット
cornix-lp-karabiner

MacBook は JIS 配列だけど、外付けキーボードは US 配列を使いたい。
そんなとき、記号キーがことごとくズレて困った経験はないでしょうか。

この記事では、US配列の Cornix LP を JIS 設定の MacBook でキーキャップの刻印通りに打てるようにする Karabiner-Elements の設定を紹介します。

他の US 配列キーボードでも vendor_id / product_id を変えるだけで応用できます。

💡 この記事は Cornix LP を実機で運用しながら検証した設定です。
他の US 配列キーボードを使っている方も、最後の「応用」セクションで自分の機材に置き換えられます。


そもそも何がズレるのか

MacBook の「キーボードの種類」が JIS になっていると、US 配列キーボードを繋いでも macOS が JIS として解釈します。

その結果、こんなズレが発生します。

Shift+数字キーのズレ

打ちたい文字押すキー実際に出る文字
@Shift+2"
^Shift+6&
&Shift+7'
*Shift+8(
(Shift+9)
)Shift+0(何も出ない)

記号キーのズレ

打ちたい文字押すキー実際に出る文字
== キー^
+Shift+=~
_Shift+-=
[ / {[ / Shift+[@ / `
] / }] / Shift+][ / {
\ / \|\ / Shift+\] / }
'‘ キー:
"Shift+’*
:Shift+;+

ほとんどの記号が「1つずつズレている」のが分かりますね。


解決方法の全体像

Karabiner-Elements の2つの機能を組み合わせます。

機能用途対象キー
simple_modificationsキーコードの単純置換(Shift有無に関わらず一括変換)[ ] \ `
complex_modifications条件付きの高度な変換(Shift時と非Shift時で別々に変換)数字行、= ' ;

どちらも device_if 条件で特定のキーボードにだけ適用するので、MacBook 内蔵キーボードには影響しません。


準備:vendor_id と product_id を調べる

Karabiner-Elements の設定画面 → Devices タブで、対象キーボードの vendor_id と product_id を確認します。

Cornix LP の場合:

  • vendor_id: 57624
  • product_id: 1

他のキーボードを使う場合は、この値を自分のデバイスに置き換えてください。


設定1:simple_modifications(デバイス固有)

ブラケット [] とバックスラッシュ \ の領域は、Shift の有無で「ズレ方が同じ」なので、
キーコードを丸ごと差し替えるだけで解決します。

Karabiner-Elements の Devices → 対象キーボードの Simple Modifications に以下を追加します。

From keyTo key効果
open_bracketclose_bracket[{ が正しく入力される
close_bracketbackslash]} が正しく入力される
backslashinternational3\\| が正しく入力される
grave_accent_and_tildejapanese_eisuu` キーを英数キーとして使う(お好みで)

`(バッククォート)キーを英数切替ではなく本来の `/~ として使いたい場合は、4行目を省略してください。


設定2:complex_modifications(JSON直接編集)

数字行の Shift 記号や = ' ; は、Shift 時と非 Shift 時で異なる変換が必要なため、JSON を直接編集して complex_modifications に追加します。

編集するファイル

~/.config/karabiner/karabiner.json

追加するルール

profiles[0].complex_modifications.rules 配列の末尾に、以下のルールオブジェクトを追加します。

重要: vendor_idproduct_id は自分のキーボードの値に置き換えてください。

{
    "description": "Cornix LP (US配列): JIS環境でUS記号を正しく入力",
    "manipulators": [
        {
            "type": "basic",
            "description": "Shift+2 → @",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "2", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "open_bracket" }]
        },
        {
            "type": "basic",
            "description": "Shift+6 → ^",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "6", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "equal_sign" }]
        },
        {
            "type": "basic",
            "description": "Shift+7 → &",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "7", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "6", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+8 → *",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "8", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "quote", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+9 → (",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "9", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "8", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+0 → )",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "0", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "9", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+- → _",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "hyphen", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "international1", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+= → +",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "equal_sign", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "semicolon", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "= → =",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "equal_sign", "modifiers": { "optional": ["any"] } },
            "to": [{ "key_code": "hyphen", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "Shift+; → :",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "semicolon", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "quote" }]
        },
        {
            "type": "basic",
            "description": "Shift+' → \"",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "quote", "modifiers": { "mandatory": ["shift"], "optional": ["any"] } },
            "to": [{ "key_code": "2", "modifiers": ["shift"] }]
        },
        {
            "type": "basic",
            "description": "' → '",
            "conditions": [{ "type": "device_if", "identifiers": [{ "vendor_id": 57624, "product_id": 1 }] }],
            "from": { "key_code": "quote", "modifiers": { "optional": ["any"] } },
            "to": [{ "key_code": "7", "modifiers": ["shift"] }]
        }
    ]
}

設定のポイント・ハマりどころ

1. vendor_id と product_id を間違えない

device_if 条件で指定する vendor_idproduct_id を逆に書くと、ルールが一切発動しません。

Karabiner-Elements の Devices タブで正確な値を確認しましょう。

2. manipulators の順序が重要

同じキーに対して「Shift あり」と「Shift なし」の両方のルールがある場合(= キーや ' キー)、
必ず Shift ありのルールを先に書いてください

Karabiner は配列の先頭から順にチェックし、最初にマッチしたルールを適用します。

Shift なしのルールに optional: ["any"] を指定していると Shift 押下時にもマッチしてしまうため、Shift ありルールが先にないと正しく動作しません。

✅ 正しい順序        ❌ 間違った順序
Shift+= → +         = → =          ← Shift+= もここでマッチしてしまう
= → =               Shift+= → +    ← 到達しない

3. simple_modifications はチェーンしない

以下のように設定した場合:

open_bracket → close_bracket
close_bracket → backslash

物理 open_bracketclose_bracket に変換された後、さらに backslash に変換される……ということはありません

各ルールは元の物理キーコードにのみ適用されます。安心して設定できます。

4. Cmd+記号 も正しく動く

optional: ["any"] を指定しているため、Cmd や Ctrl との組み合わせも正しく変換されます。

例えば Cmd+=(ズームイン)も期待通りに動作します。


動作確認チェックリスト

設定後、以下の文字が正しく入力できるか確認してください。

テスト文字列(コピーせずに手入力してください):

@ # $ % ^ & * ( ) _ +
[ ] { } \ |
= - ' " : ;
Shift+2=@ Shift+6=^ Shift+7=& Shift+8=* Shift+9=( Shift+0=)

すべて刻印通りに入力できれば成功です。


応用:他の US 配列キーボードに使う

この設定は Cornix LP 固有の機能には依存していないため、他の US 配列キーボードでもそのまま使えます。

変更が必要なのは vendor_id と product_id の2箇所だけです。

  1. Karabiner-Elements → Devices で対象キーボードの ID を確認
  2. JSON 内の vendor_id: 57624product_id: 1 を置換

まとめ

設定種別対象ルール数
simple_modifications[] \ `4個
complex_modifications数字行Shift、= ' ;12個

合計16個のルールで、US 配列キーボードの記号キーを JIS 環境でも刻印通りに入力できるようになります。

MacBook 内蔵キーボードには一切影響しないので、外付けを抜けばいつも通りの JIS 入力に戻ります。


こんなときは

  • 設定が反映されない → Karabiner-Elements を再起動。または karabiner_console_user_server を再起動(メニューバー → Restart Karabiner-Elements)
  • 一部のキーだけ動かない → manipulators の順序を確認(Shift あり → Shift なしの順番)
  • MacBook 内蔵キーボードまで影響しているdevice_if 条件の vendor_id / product_id を再確認。Devices タブの値と一致しているか
  • 再起動後にルールが消えるkarabiner.json の編集が JSON として不正だと Karabiner が初期状態に戻すことがある。バックアップを取ってから編集する

コメント

タイトルとURLをコピーしました