MacOS Sierraでkeyhac
SierraにアップデートしたらKarabinerが使えなくなったので、keyhacを採用した。
Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware
元々Karabinerはvimを[Ctrl-J]で抜けるときにIMEをオフにするのに使っていた。
先人のブログを参考にしてできたconfig.pyは以下
macOS SierraでVimの日本語入力を快適に - htlsne’s blog
macOS Sierra + Keyhacでキーバインドをカスタマイズ - Qiita
config.py
import sys import os import datetime import subprocess from keyhac import * def configure(keymap): keymap_iterm2 = keymap.defineWindowKeymap( app_name="com.googlecode.iterm2" ) def escWithIMEOff(): esc = keymap.InputKeyCommand("Esc") esc() ime_off = keymap.InputKeyCommand("(102)") ime_off() keymap_iterm2["Ctrl-J"] = escWithIMEOff
以下補足
- 二番目のリンク参考サイトで使用されているime_offにgoogle日本語入力のショートカット[Ctrl-Shift-Semicolon]を使う方法はラグが酷かったので、英数キー(102)を割り当てた。
- iterm2のappnameであるcom.googlecode.iterm2は、"Enable the Internal Log Output"をonにしてconsoleを確認することで確認できる。iterm2の場合は"Window : app : com.googlecode.iterm2"と表示された。
- なぜkeymapをiterm2に設定したかというと、vimを操作するときのkeyhacからみた操作アプリがiterm2だったからだ。一つ目の参考サイトではMacVimに指定していたので、おそらくMacVimなら独立アプリとして認識されるのだろう。
- なぜかkeyhacのconsoleの文字が異常に小さい![Cmd-Shift-+]でも拡大できない。解決法ご存じの方は教えてください...
追記1:
keyhacを起動するとmacの環境設定でデフォルトで設定されているキーボードショートカットが利用できないことが判明したので利用停止
追記2:
BetterTouchToolで実現する方法に切り替え
qiita.com