👻
US配列での日本語切替ショートカットを変更した
はじめに
いつもUS配列のMacBookAirを使うなかで
入力ソースの切替をKarabiner-Elementsを使って
左Command英数、右Commandで日本語、というショートカットでやってきました。
しかし、私のなかでこれには1つ問題がありました。
それは、速い速度でタイピングをしていると誤って
Command+その他のキーが押されてしまうんです。
例えば、
- 印刷画面が急に現れる
- ブラウザのタブが閉じる
- アプリケーションが終了する
- カレントアプリケーションの文字が全選択状態になる
などです・・・
そこで1つの試みとして、 - Control+jで英数入力モードにする
- Control+kで日本語入力モードにする
としてみてはどうかという考えになりました。
メリット
- Commandとかけ合わせたショートカットの誤作動がなくなる
- 右手をホームポジションから外さずに入力ソースの切替ができる
デメリット
- Emacsキーバインドである行末までの削除ができなくなる
- Control+jに改行などを設定している場合はそれができなくなる
- 手に馴染むまで時間がかかる
設定内容
{
"description": "Control+jで英数に切り替える。Control+kで日本語に切り替える。",
"manipulators": [
{
"from": {
"key_code": "j",
"modifiers": {
"mandatory": [
"control"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "japanese_eisuu"
}
],
"type": "basic"
},
{
"from": {
"key_code": "k",
"modifiers": {
"mandatory": [
"control"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "japanese_kana"
}
],
"type": "basic"
}
]
}
(2024/07/24)追記
困りました。。。 手が慣れない。
そこで従来通り、左Commandで英数、右Commandで日本語を追加して、
さらに、誤操作を起こしやすいコンビネーションキー自体を無効化するようにしてみました。
- Command + d は無効化
- Command + q は無効化
- Command + w は無効化
{
"description": "左コマンドで英数 右コマンドでかな SAKAMOTO Kenji",
"manipulators": [
{
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command"
}
],
"to_if_alone": [
{
"key_code": "japanese_eisuu"
}
],
"type": "basic"
},
{
"from": {
"key_code": "right_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "right_command"
}
],
"to_if_alone": [
{
"key_code": "japanese_kana"
}
],
"type": "basic"
},
{
"from": {
"key_code": "d",
"modifiers": {
"mandatory": [
"command"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "vk_none"
}
],
"type": "basic"
},
{
"from": {
"key_code": "q",
"modifiers": {
"mandatory": [
"command"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "vk_none"
}
],
"type": "basic"
},
{
"from": {
"key_code": "w",
"modifiers": {
"mandatory": [
"command"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "vk_none"
}
],
"type": "basic"
}
]
}
(2024/07/24) 更に追記
Commandとのコンビネーションキーが有効になる時間を
100ミリ秒間同時押ししないと有効にならないように調整してみた。
{
"description": "左コマンド押下で英数、右コマンド押下でかな SAKAMOTO Kenji",
"manipulators": [
{
"from": {
"key_code": "a",
"modifiers": {
"mandatory": [
"command"
]
}
},
"parameters": {
"basic.to_if_held_down_threshold_milliseconds": 100
},
"to_if_held_down": [
{
"key_code": "a",
"modifiers": [
"command"
],
"repeat": false
}
],
"type": "basic"
},
{
"from": {
"key_code": "d",
"modifiers": {
"mandatory": [
"command"
]
}
},
"parameters": {
"basic.to_if_held_down_threshold_milliseconds": 100
},
"to_if_held_down": [
{
"key_code": "d",
"modifiers": [
"command"
],
"repeat": false
}
],
"type": "basic"
},
{
"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"
}
]
}
最後に
これ以外にも良い方法があればまだ共有していきたいと思います。
Discussion