Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware
Win10 な新端末に乗り換えなタイミングで autohotkey から乗り換えた Keyhac の Mac 版に Karabiner に乗り換えてみる。理由は C-x
C-k
のような複合キー(?) の挙動も変えたいから。
Bear や Evernote のようなモードの無いエディタを使っていると入力しつつ編集も行いたいケースがまま多い。キー操作のバリエーションを増やすためには C-x
のようなプレフィックスキーが欲しくなる。
とはいえ IME のキー操作とかなりバッティングするからで・・・日本語入力中 (IME) が発動してる際にキー操作を実行しないでくれれば複合キーにしなくて済むんだけど、いろいろツールを試しても判定できるものは無さそうなのであきらめ。
設定ファイルは python コードそのもの。
def configure(keymap): # -------------------------------------------------------------------- # Text editer setting for editting config.py file # Setting with program file path (Simple usage) if 1: keymap.editor = "MacVim" #keymap.editor = "Sublime Text 2" # Setting with callable object (Advanced usage) if 0: def editor(path): subprocess.call([ "open", "-a", "TextEdit", path ]) keymap.editor = editor # -------------------------------------------------------------------- # Customizing the display # Font keymap.setFont( "Osaka-Mono", 16 ) # Theme keymap.setTheme("black") bear = keymap.defineWindowKeymap( app_name="net.shinyfrog.bear" ) bear[ "Ctrl-X" ] = keymap.defineMultiStrokeKeymap("Ctrl-X") bear[ "Ctrl-X" ][ "Ctrl-K" ] = "Ctrl-Shift-E","Ctrl-C","Ctrl-H" bear[ "Ctrl-U" ] = "Cmd-Z" bear[ "Ctrl-Y" ] = "Cmd-Shift-Z"
(下書きを Bear で書いているんだけど python のシンタックスハイライトが怪しい)
そんなことしてないで Vim で書けばいいよと言われればそうなんだけど、文章を書いたり読み返したりするのがしっくりこず今に至る。いろいろ試した結果 Bear や Evernote のような専用の UI や操作がある (できる) ものの方があうようだ。
Keyhac の端末表示で出力内容を見てると winsound
が無いっていうエラーが出るんだけど、windows 用のコードが発動してるんだろうか。
Traceback (most recent call last): File "/Users/tom/Project/keyhac/keyhac_keymap.py", line 1037, in _onKeyDown File "/Users/tom/Project/keyhac/keyhac_keymap.py", line 943, in _keyAction NameError: name 'winsound' is not defined