Karabiner-Elementsでcommand単体押しで英かなキーを送信するように設定するとcommand + クリックが効かなくなる問題の修正
Karabiner-Elementsの環境設定の[Complex Modifications]で「コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)(rev 2)」を設定すると、left_commandを単体で押すと「英数」、right_commandを単体で押すと「かな」が送信されます。
USキーボードを使うと英数キーとかなキーが無いので、このような設定が必要なのですが、この設定を追加すると、command + クリックが効かなくなってしまいます。
そういう理由もあって、今まで英かなという別のアプリを使って同様の機能を実現していました。
ただ、Karabiner-Elementsで実現する必要がでてきたのと、似たようなアプリは1つに統一したいと思い、Karabiner-Elementsで設定してもcommand + クリックができるように調整してみました。
追記:ルールのバージョンを上げると解決しました
今まで「For Japanese(日本語環境向けの設定)(rev 2)」を使っていたのですが、これを「For Japanese(日本語環境向けの設定)(rev 3)」にすると解消しました。
この件なんだけど、そうだったっけな? と気になってこちらの環境で検証したら、普通に効いてるので、もしかしたら原因はほかのなにかとのバッティング的なやつかも。High Sierra, Mojave 環境で、Karabiner-Elements のその設定の rev1, rev3 を試したけど問題なさそうかも。
— TD (@tadakozo) July 18, 2019
今までバージョンが上がったことに気が付かず、ずっと昔のバージョンを使っていました。
Karabiner-Elementsで動作が不安定な場合はルールのバージョンを疑う必要がありそうですね。
設定ファイルの修正
下記ディレクトリにあるkarabiner.jsonを開きます。
~/.config/karabiner/karabiner.json
あとは、JSONのleft_commandとright_commandの設定の"to_if_alone"
のあとに"to_if_held_down"
の記述一式をを追加します。
まずはleft_commandの方を設定します。
karabiner.json
{
"from": {
"key_code": "left_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_command",
"lazy": true
}
],
"to_if_alone": [
{
"key_code": "japanese_eisuu"
}
],
"to_if_held_down": [
{
"key_code": "left_command"
}
],
"type": "basic"
},
次にright_commandの設定です。
karabiner.json
{
"from": {
"key_code": "right_command",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "right_command",
"lazy": true
}
],
"to_if_alone": [
{
"key_code": "japanese_kana"
}
],
"to_if_held_down": [
{
"key_code": "right_command"
}
],
"type": "basic"
}
これで保存すればcommand + クリックができるようになります。