ラベル karabiner の投稿を表示しています。 すべての投稿を表示
ラベル karabiner の投稿を表示しています。 すべての投稿を表示

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"
        }
    ]
}

2019年10月25日金曜日

karabiner element で'{'で英数モードに切り替える。

ASCIIDOCで、文字置き換えを多用していたら、 { で英数モードに自動的に切り替わってほしくなった。 Karabiner Elementで入力モードに依存したキーコード発生ができるということなので、やってみた。

設定方法

~/.config/karabiner/assets/complex_modifications 以下に設定したJSONファイルを置くと、それがcomplex modifications のなかに出てくるようになる。 このJSONファイルの、trailing comma の扱いが妙にシビアで
["a","b",] 
みたいな物があると、パースに失敗するらしくリストに出てこない。logにもでないので、理由がわかるまでに時間を浪費した。

設定ファイル

こんな感じ。日本語入力モードだったら、cmd-spaceでモードを切り替えてから'{'を入力する。 とりあえず快適。
{
  "title": "for vscode asciidoc",
  "rules": [
    {
      "description": "turn off IME with rbrace",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "open_bracket",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "spacebar",
              "modifiers": [
                "command"
              ]
            },
            {
              "key_code": "open_bracket",
              "modifiers": [
                "shift"
              ]
            }
          ],
          "conditions": [
            {
              "type": "input_source_if",
              "input_sources": [
                {
                  "language": "ja"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}