Karabiner-Elements
Mac定番ツール で、キーボードのキーアサインを変えるのに使う。
https://gyazo.com/2e909784a81a123c8c231c719b7b195e
公式サイト
https://pqrs.org/osx/karabiner/
清水川の利用状態
ASCII配列のキーボードを使っている
Kalabiner-Elements バージョンは 14.12.0 (2023/06/23時点)
設定内容
1. DevicesのNo product name (No manufacture name) をチェック
キーボード本体側のキーと、Touch Bar のキーの同時押しを認識させるため
この問題は https://github.com/tekezo/Karabiner-Elements/issues/1700 で課題として上がっている
2. caps_lock -> left_control
(Capsロックって使ってる人入るのかな・・
3. コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)(rev 6)
人間はいま漢字入力モードか、英数モードか覚えられない。常に、左Cmd押下で英数、右Cmd押下で漢字にしたい
Complex Modifications -> Add rule -> Import more ... -> For Japanese (日本語環境向けの設定)
~/.config/karabiner/assets/complex_modifications/1631683143.json が追加される
4. カスタムルール: RDPアプリでは左右のCmd短押しをAlt短押しに変換する
Macで漢字モードOn/OffするためにCmdを使うが、Windowsでは alt-ime-ahk でAlt短押しで実現しているた
5. Function Keys の Use all F1, F2, etc. keys as standard function keys をOn
外部キーボードによって、F1等が明るさコントロールになってしまうのを防ぐため
Mac本体のF1はTouchBarで制御されていて影響を受けない
Freestyle2 も影響を受けていなかった
Keychron Q11 QMK Custom Mechanical Keyboard は影響があった
設定画面
Simple modifications
https://scrapbox.io/files/628af4ed0a56740023339b30.png
Complex modifications
https://scrapbox.io/files/628af4e1379377001dd3218f.png
Devices
https://scrapbox.io/files/628af51fd745430020c2c717.png
参考文献
shimizukawa.icon設定ファイルの書き方は以下にほとんど書いてありました
Karabiner-Elementsの設定項目をまとめました - Qiita
設定ファイルの形式について
設定ファイルの保存場所について
編集後の設定ファイルの反映について
設定ファイルでのコメントの書き方
設定項目について
設定の優先順位について
GUI で設定
各設定項目の具体的な内容について
shimizukawa.icon公式ドキュメントに詳細な設定が書いてありました
Karabiner Configuration Reference Manual | Karabiner-Elements
例: complex_modifications に何を定義したらよいか
complex_modifications manipulator definition | Karabiner-Elements
shimizukawa.iconRDPルールを定義する方法
WindowsユーザーがMacOSでRemoteDesktop越しにWindowsを扱うときのキーマップ - Qiita
これを~./config/karabiner/assets/complex_modifications/rdp-jp109.jsonとして保存。
shimizukawa.iconここを参考に、後述の rdp.json を作成しました
shimizukawa.iconMacのキーバインディングをそのまま使えるカスタマイズをしようとして、以下を参照しました(挫折しました)
MacOS+Windows(リモートデスクトップ)な人向けKarabiner-Elements設定をご紹介 - 蒲田ネット
Mac用のリモートデスクトップアプリは以下の2つがあります。
Parallels Client
Microsoft Remote Desktop 10
私としては以下の理由からParallels Clientをオススメします。
Parallelsクライアントをお薦めする理由
リモートデスクトップ接続先のWindows側で
日本語キーボード(JIS配列)をそのまま日本語キーボードとして認識してくれる
日本語切り替え(IME)をMacと同じように「英数(IME Off)」、「かな(IME On)」で切り替えできる
shimizukawa.iconここでParallelsを知ったけど、微妙になじめなくてMS製の方を使っている
shimizukawa.icon karabiner-elements remotedesktop で検索して色々調査
MacからWindowsへリモートデスクトップ接続する時の注意点(日本語/ENキーボード誤認問題など) - あおきのTechメモ
Microsoft Remote Desktop アプリの設定方法などを紹介
日本語キーボード問題を紹介
MacからWindowsのリモートデスクトップ接続方法
Microsoft Remote Desktop アプリの設定方法などを紹介
設定ファイル
カスタムRDP設定
code:~/.config/karabiner/assets/complex_modifications/rdp.json
{
"title": "RDP",
"rules": [
{
"description": "short left_command and right_command as left_option and right_option for RDP",
"manipulators": [
{
"type": "basic",
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
]
}
],
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_option"
}
]
},
{
"type": "basic",
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
]
}
],
"from": {
"key_code": "right_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "right_option"
}
]
},
{
"type": "basic",
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
]
}
],
"from": {
"key_code": "left_option",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command"
}
]
}
]
}
]
}
メインの設定ファイル(最悪これだけあれば設定を再現できる)
code:~/.config/karabiner/karabiner.json
{
"global": {
"ask_for_confirmation_before_quitting": true,
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false,
"unsafe_ui": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": [
{
"description": "short left_command and right_command as left_option and right_option for RDP",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_option"
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "right_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "right_option"
}
],
"type": "basic"
},
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.microsoft\\.rdc\\.macos$",
"^com\\.2X\\.Client\\.Mac$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "left_option",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command"
}
],
"type": "basic"
}
]
},
{
"description": "コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな) (rev 3)",
"manipulators": [
{
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
"parameters": {
"basic.to_if_held_down_threshold_milliseconds": 100
},
"to": [
{
"key_code": "left_command",
"lazy": true
}
],
"to_if_alone": [
{
"key_code": "japanese_eisuu"
}
],
"to_if_held_down": [
{
"key_code": "left_command"
}
],
"type": "basic"
},
{
"from": {
"key_code": "right_command",
"modifiers": {
"optional": [
"any"
]
}
},
"parameters": {
"basic.to_if_held_down_threshold_milliseconds": 100
},
"to": [
{
"key_code": "right_command",
"lazy": true
}
],
"to_if_alone": [
{
"key_code": "japanese_kana"
}
],
"to_if_held_down": [
{
"key_code": "right_command"
}
],
"type": "basic"
}
]
}
]
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 37904,
"vendor_id": 1423
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [
{
"from": {
"key_code": "left_command"
},
"to": [
{
"key_code": "left_option"
}
]
},
{
"from": {
"key_code": "left_option"
},
"to": [
{
"key_code": "left_command"
}
]
},
{
"from": {
"key_code": "right_option"
},
"to": [
{
"key_code": "right_command"
}
]
}
],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 832,
"vendor_id": 1452
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 832,
"vendor_id": 1452
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 613,
"vendor_id": 1452
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 34304,
"vendor_id": 1452
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": true,
"product_id": 480,
"vendor_id": 13364
},
"ignore": true,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 480,
"vendor_id": 13364
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
}
],
"name": "Default profile",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": true,
"simple_modifications": [
{
"from": {
"key_code": "caps_lock"
},
"to": [
{
"key_code": "left_control"
}
]
}
],
"virtual_hid_keyboard": {
"caps_lock_delay_milliseconds": 0,
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"keyboard_type": "ansi",
"mouse_key_xy_scale": 100
}
}
]
}