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

Autohotkeyでキーバインドを変えてみよう

環境移行中

会社でMacBookを使って開発をしているのですが、ThinkPadに環境を移行しようといろいろ調整中です。キーボードはHHKB Pro, マウスはケンジントントラックボールなので物理的インターフェースは変わらないのですが、キー配置が変わるのが難点。
だいぶOSX配置になれてしまったのでそっちにあわせてキー配置を変更中です。

Vistaで使えるキー配置変更ソフトウェア

会社でつかうThinkPadはXPなのだけれど、自宅のPCはVistaで、どうせなら変更したキー配置はどこでも使えるようにしたいものです。ですが、キーバインド変更ソフトウェアの定番であるところの"窓使いの憂鬱(mayu)"は現在開発が終了していて、Vistaでの動作が微妙です。64bitだとブルースクリーンになるそうです。有償の"のどか"ならVistaでもいけますが、mayu系はキーボードドライバを変更してしまうのがちょっと怖いところでもありますし、決済が確認されるまで有償版が使えないのもネックです。

そこで、友人がお勧めしていたautohotkeyを使います。

autohotkeyはドライバの変更は行わないので、機能的にmayuに劣る場合もありますが、ほとんどの場合、autohotkeyで事足りるでしょう。また、autohotkeyスクリプトが簡潔で書きやすい利点もあります。

autohotokey

細かいの情報は、
http://lukewarm.s101.xrea.com/index.html
あたりを見てもらうとして自分のした設定と簡単な使い方をご紹介。

簡単な使いかた
  1. ダウンロード
  2. インストール
    • インストーラを起動するだけ。途中の、設定ファイルの関連付けはかならずOnにしましょう
  3. 起動方法
    • 上記の関連付けをOnにしておけば、設定ファイルをダブルクリックするだけで、設定したキーバインドが有効になります。
LWin<->LAlt交換

HHKBMacで使っていると、スペースの左がコマンドで、さらにその左がAltになります。一方でHHKB Lite ExtendモードでWinで使うと、スペースの左がWinでそのひだりがAltになります。
MacCarbon Emacs など EmacsバインディングはM-xなどのキー配置がコマンドキーとの組み合わせになっていて、これになれていると、WinのAltとの組み合わせになったときにキーが隣になって不便してしまいます。これを直すために以下の設定

;For HHKB LWin <-> LAlt
LWin::LAlt
LAlt::LWin

というわけでキーのリマップは

変更されるキー::変更後のキー

です。

Emacsキーバインドをどこでも使えるように

http://d.hatena.ne.jp/teturouet/20071120/AHK_Emacs2
にある、スクリプトをコピーしてファイル(ここではEmcas.ahk)に書き込んでおきます。
設定ファイルに

include Emcas.ahk

と書いておけば、かなりイイ感じにどこでもEmacsキーバインドが使えます。詳しい使い方はサイトの方をどうぞ。

IMEの切り替え

IMEのOn/Offは英字キーボードの標準だと右Alt+~でかなり使いづらいのですが、なぜかずっと標準で僕は使っていました。これをMacと同じ、スペースとスペースの左のキー(Macならコマンドキー)に変えます

IMEをいじるには、そのためのファイルを用意したほうが楽です。
http://sadat-studio.net/modules/mydownloads/viewcat.php?cid=3
ここから手に入る物を使います。

設定方法は

#include IME_Func.ahk
!Space::
    ret := IME_CHECK("A")
    if( !ret ){
        IME_ON("A")
        IME_SetConvMode( "A", 25 ) ; R漢
    }else{
        IME_OFF("A")
    }
    return

です。

!Space::

これは、!がAlt+の意味で、Alt+Spaceのときの機能の定義です。IME_CHECK("A")でon/offを取得してoffの場合Onにして仮名漢字変換モードに設定しています。

とりあえず、これで文字入力関係はMac上のHHKBっぽく動くようになったはず。設定ファイルはDropboxで共有しておくとなお便利。あとはこの設定ファイルがログイン時に起動されるように何かしらの設定をしてあげましょう。