読者です 読者をやめる 読者になる 読者になる

かりっと揚げたらフライドポテト

㍋出る迄頑張るぞい

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"と表示された。

f:id:jaga810:20170315200549p:plain

  • なぜkeymapをiterm2に設定したかというと、vimを操作するときのkeyhacからみた操作アプリがiterm2だったからだ。一つ目の参考サイトではMacVimに指定していたので、おそらくMacVimなら独立アプリとして認識されるのだろう。
  • なぜかkeyhacのconsoleの文字が異常に小さい![Cmd-Shift-+]でも拡大できない。解決法ご存じの方は教えてください...

f:id:jaga810:20170315201157p:plain

追記1:
keyhacを起動するとmacの環境設定でデフォルトで設定されているキーボードショートカットが利用できないことが判明したので利用停止

追記2:
BetterTouchToolで実現する方法に切り替え
qiita.com