keyhac

Macsierraにアップグレードしたらkarabinerが使えなくなったので、かわりにkeyhacを試してみる。

keyhacはkarabinerとちがって、コントロールキーとコマンドキーを交換という定義ができず、常に

keymap["Ctrl-a"] = "Cmd-a"

というふうにメインキーとの組み合わせで定義しなければならないもよう。これは非常の多くの組み合わせがあり、かつ複数のアプリケーションで定義したいので、いちいち全部をconfig.pyに書くのはつらい。そこでメソッド化。

def changeKey(keymap):
keymap["Ctrl-a"] = "Cmd-a"
keymap["Ctrl-c"] = "Cmd-c"
keymap["Ctrl-d"] = "Cmd-d"
keymap["Ctrl-f"] = "Cmd-f"
keymap["Ctrl-p"] = "Cmd-p"
keymap["Ctrl-q"] = "Cmd-q"
keymap["Ctrl-r"] = "Cmd-r"
keymap["Ctrl-s"] = "Cmd-s"
keymap["Ctrl-t"] = "Cmd-t"
keymap["Ctrl-v"] = "Cmd-v"
keymap["Ctrl-w"] = "Cmd-w"
keymap["Ctrl-x"] = "Cmd-x"
keymap["Ctrl-z"] = "Cmd-z"
return keymap

を作り、

    keymap_chrome = keymap.defineWindowKeymap(app_name="com.google.Chrome")
keymap_chrome = changeKey(keymap_chrome)

で呼び出すようにする。