2025年12月3日水曜日

karabiner element でcmd-key tapでIMEを切り替える

キーボード側でタップ時のイベントを改変したりしていたのだけど、karabiner elementだけでできる。 とりあえず快適に動いている。様子を見よう。もっと早くやるべきだった。
  {
    "description": "Send the cmd-space when the left cmd key is tapped",
    "manipulators": [
        {
            "type": "basic",
            "from": {
                "key_code": "left_command",
                "modifiers": { "optional": ["any"] }
            },
            "to": [
                {
                    "key_code": "left_command"
                }
            ],
            "to_if_alone": [{  
                    "key_code": "spacebar",
                    "modifiers": ["left_command"]
	    }],		    
	    "parameters": { "basic.to_if_alone_timeout_milliseconds": 200 }
        }
    ]
}
2026年5月28日追記 OSのバージョンアップのせいなのかよくわからないが、かなり高い確率でトグルに失敗する ようになってしまった。Karabinerの問題ではなく、OSの側でイベントを 2重に受け取っているっぽい.以前から時々失敗することはあったのだが、30%ぐらいの 確率で失敗するようになったので、使い物にならなくなってしまった。 そこで、キーボードの左下にある地球儀マークのキーでもトグルになるようなので、 こちらのキーを生成するようにしてみた。失敗することがほとんどなくなり、非常に快適。。すばらしい。
{
    "description": "Send globe key code when the left cmd key is tapped",
    "manipulators": [
        {
            "from": {
                "key_code": "left_command",
                "modifiers": { "optional": ["any"] }
            },
            "parameters": { "basic.to_if_alone_timeout_milliseconds": 200 },
            "to": [{ "key_code": "left_command" }],
            "to_if_alone": [{ "apple_vendor_top_case_key_code": "keyboard_fn" }],
            "type": "basic"
        }
    ]
}