AutoHotKeyによるマウス/キーボード徹底カスタマイズ

目的と準備

キーボードには無意味なキーが多い。「変換」だの「無変換」だの使い道ゼロ。PauseやScrollLockなんてお飾り。Insertは間違えて押してイライラするだけ。マウスにしたって、たった3ボタンしかない貴重なホイールクリックボタンを利用頻度の少ない、ちょっとした特殊動作(例えばタブバー上で閉じるとか、ページ上では利用価値ゼロのスクロールアシストとか)に割り当てているようでは、勿体ない。というわけでこれらを有効活用しよう、というのが今回の目的になります。ついでに最終的にはボタン数の多さは正義、というわけで11ボタンマウスのカスタマイズのやり方まで進めます。

必要なのは日本語キーボード(キー数の多さが有利になります)、ふつーの3ボタンマウス、AutoHotkey。AutoHotKeyに関しては、とりあえずダウンロードしてautohotkey.iniをコリッと書き換えるだけ。書き換え方はこれから解説します。最後にはサンプルの.iniファイルも置いておきます。ええ、難しくありません。

3ボタンマウスのカスタマイズ

マウスにはボタンが、たった3つしかない。大して使わないキーをアサインしている場合じゃあない。絶対便利、超多用する、そんなキーをアサインすべき。左クリック、右クリック。ではもう一つは?私のお薦めはタブを閉じる(Ctrl+W) 。ただし、それだけだとタブブラウザ上でしか有効ではないので、アプリケーション終了のAlt+F4をアサインするのが良い。一々マウスで右上の×を押しにいくには遠いし、キーボードショートカットもまた押しにくい。AutoHotKeyはアプリケーション毎に設定を変えられるので、タブのあるアプリケーションに対してはCtrl+W(タブを閉じる)にすると、動作の統一感があって良い感じ。

Alt+F4は誤爆して終了しちゃうのが嫌?慣れればそんなでもないし、そもそも50回に1回ぐらいの誤爆なら、別にいいと思う。保存が必要なものはダイアログが出るんだし、Firefoxはうっかり閉じたタブの復旧なんてすぐだ。うっかり閉じてしまう、というデメリットよりも、ワンクリックでウィンドウを閉じるという「時間の節約」のほうが遥かにメリットが大きい。

そして、しかし3ボタンじゃまだ足りない。「戻る」も欲しいし、あれも、これも。という場合は、キーボードのCtrl,Alt,Shiftと組み合わせることでキー数を増やすことができる。単独押しに比べて、少しばかりコストが嵩むことになるので、あると便利、ぐらいのキーを設定。

ここでAutoHotKeyの設定の見方。「a::b」と書くと、aを押すとbが押されます。^!+#をキーの先頭に書くと修飾キーが加わったことになる、つまり「^MButton::^!F4」はコントロール+マウス中ボタンを押すとCtrl+Alt+F4、という意味になる。#IfWinActiveで囲むと、その部分は指定したアプリケーションだけの設定になる。ahk_classで指定するのだけど、このahk_classはAutoHotKeyのタスクトレイを右クリック→Window Spyで簡単に調べることができる。

Ctrl+MButtonはCtrl+Alt+F4。これは直接的にはダミー。実際は、FirefoxでMButtonをCtrl+wに指定しているので、Ctrl+MButtonをAlt+F4に指定してあげる、という部分が本筋。Firefox以外では無効だなんて勿体ない!何か他のキーを振る!と言いたいところなのだけど、しかし一つのキーに異なる動作を振っていくのは混乱してしまうので、あまり良くない。そういうことをしたいときは、素直に多ボタンマウスに移るほうが良い。時には無駄を受け入れるのも悪くない。

Alt+MButtonは最小化。WinMinimize,Aは現在Activeのウィンドウを最小化、という意味になる。最小化なんてあまり使わないよ、という人はBackSpace(戻る)あたりを振るのが良いかもしれない。私は(3ボタンマウス環境下では)「戻る」はキーボード直打ちするのと、最小化をやたら多用するので(というかウィンドウ開きまくりなので)WinMinimize。

Shift+MButtonのコマンドは長め。ちょっと複雑そうな動作もAutoHotKeyならスルッと書けます。これは基本的には選択した文字列でGoogle検索というもの。ただし選択した文字列がURLなら「ブラウザでURLを開く」になり、選択した文字列がローカルやネットワークのファイル(先頭がfile://とかC:\とか\)の場合はエクスプローラーで該当ファイルのディレクトリを開く、という動作をします。これは、私としてはかなり便利です。必需です。これだけのためにAutoHotKey入れてもいいぐらいです。ブラウザだけじゃなく、あらゆるテキストからワンクリックで検索できるというのは気持ちのいいものです。というか、これが無いと検索なんてやってられません。

キーボードのカスタマイズ

スペースキーのすぐ左という絶好の位置にありながら、使い道ゼロという凶悪さを誇る無変換キー(カタカナに変換する時に使うって?全角カタカナ変換はCtrl+I、半角カタカナ変換はCtrl+Oを使いましょう)。位置的にはAltよりも遥かに親指で押しやすいというのに無駄さ100億パーセントの、この憎いキーを徹底的に弄くりまわしましょう。

無変換はvk1Dsc07Bと指定することでAutoHotKeyでカスタマイズ出来ます。&で別のキーと繋げることで組み合わせを割り振ることができるけど、複数の組み合わせは不可。例えばCtrl+無変換+aという組み合わせは不可能。その辺を留意しつつ考えてみる。

まず、ホームポジションから手を動かなくても十字キーが操作できるよう、ESDFを中心に十字、PageUp/Down、Home/Endあたりを配置。別にそこまでガチに(?)やりたくないとしても、だらーっと閲覧時の左手マウス、右手キーボードという姿勢の時に、左手は やはりasdfあたりに置くのが自然。右側にある十字キーを左手って、結構姿勢的にかったるいものです。

無変換&x,v,bはエディタ上でのちょっとした特殊動作。xは一行選択。vは下に行の追加、bは上に行の追加。ただのHomeとEndとShiftのキーマクロですが、こういうちょっとした動作が存外便利だったりするのです。特に一行選択はやたら多用しています。

矢印キーとの組み合わせはマルチディスプレイでのウィンドウ移動。頻繁に右へ左へと動かすので、一発で移せると非常に便利。私はディスプレイの大きさが違うので絶対座標で指定していますが、サイズが同じ場合なら相対座標で移した方がウィンドウが重ならないので、便利だと思います。

マウスと組み合わせることも可能。Ctrl+C,Ctrl+Vは基本的にキーボードで押すけど、マウスで押した方が便利な局面もたまにある。そしてここにBackSpace。キーボード+マウスで考えれば、3ボタンマウスでもわりと沢山詰め込めるものです。

関数

関数が書けると表現の幅が広がります。あまりかっちし書かなくても、文字列系はクリップボードを少し操作するだけで書けるのが良いところ(文字化け……という突っ込み禁止)。SandStringは指定した文字列でサンドウィッチ。a hrefとか#regionとか、何かと挟み込みたいとき用に。MoveWindowはウィンドウの移動用。1pixel単位で動かしたいんだよ!という要求に応えます。私はUstreamでキャプチャ画面と字幕表示用テキストエディタの位置微調整をしています。LineCopyは、何も選択していない状態で発動させると一行丸ごとコピーするという、気の利いたテキストエディタ(VisualStudioとか)に搭載されている機能を擬似的に再現。

アプリケーションキー!右クリックメニューがキーボードで出せるという、凄まじく無意味なキー。無意味すぎるので、これもリストラ、書き換え。アプリケーション、と名に関しているぐらいなので、アプリケーションショートカットにしてやります。Run,パス\ファイル名.exeと書くだけなので簡単。AppsKey & xがなにやらごちゃごちゃしていますが、これは指定位置、指定サイズで起動させるというもの。毎回決まった場所に置きたい、という人はこんな感じで書くと良いでしょう。Run,hoge.exeを複数行書けば、複数個同時起動になるのでインターネットセットとかお勉強セットとか動画配信セットとかを作れば、何の変哲もないショートカットよりも数段役に立ちます。

WinMinimizeやWinMoveを組み合わせることで、疑似仮想デスクトップ、みたいなことが出来るので固定配置での切り替えを多用する人は考えてみると面白いかもしれません。

記事冒頭で述べた、利用頻度ゼロのScrollLockやPause/Break、Insertは単独ショートカットキーに変更。強制終了とかタスクマネージャ一発起動(Ctrl+Shift+Esc)とか、なくても困らないけどあると地味に便利な機能のほうが、Pause/Breakなんかよりもよほど多用するってものです。

さて、残念なことにCapsLock、カタカナ/ひらがなに関してはカスタマイズ不可能。書き換えると変な動きをするので断念しました。特にCapsLockなんて、Aのすぐ左という押しやすさ特A級の位置にあるのに、大して使わないクソ動作、むしろ間違って押さえると面倒くさいことになる、というキーボード配置の不条理さの中でも最たるもの(QWERTY配列は慣れの問題で片付けられるけど、A級の位置にゴミキーが置いてあるというのは片付けようがない!)なのに、動作を書き換えられないというのは無念でならない。あ、ちなみにCtrlと入れ替えても(というか私は入れ替えていますが)どちらにせよ左下というA級の位置をゴミキーが占領するという悲しい事態に変わりはありません。仮にCapsLockをそれなりに多用するよ、という人がいたとしても、CapsLockはトグル動作でしょう?こんな押しやすい位置にある必要性は全くないのです。微妙に押しにくい位置にあるAltと入れ替わってくれた方がずっと健全です。

上に書いてきたスクリプト+アルファなファイルをここに置いておきます。autohotkey.ini あくまで一例にすぎないので、これを元にして、適当にカスタマイズしてください。

11ボタンマウスへの道

と、ここまでで3ボタンマウスでも十分だよね、という結論に達しますが、キーボードとの組み合わせなんて嫌だ!というのもごもっとも。その辺をマウスだけで完遂できるのが多ボタンマウスの良いところ。更に、キーボード+多ボタンマウスだとその組み合わせは無限大。3ボタンマウスでは左クリックと右クリックをCtrl,Shift,Altと組み合わせるのは不可能なので(複数選択を捨てれば何とかなりますが、トレードオフの代償としては少し微妙)キーボード+マウスの組み合わせは、多ボタンマウスでこそ真価を発揮するといってもいいぐらい。ただし、あまりやりすぎると自分でも把握できなかったり、普通にキーボードショートカットでいいぢゃん、となってしまうので細心のバランス取りが必要。

現時点での多ボタンマウスの最高峰はLogicool MX レボリューション MX-R。最近MX1100というものが登場しましたが、必ずしもMX-Rを置き換えるものにはなっていないようです(価格もMX-Rより安いですしね) 。なお、Microsoft製は却下。それはボタン数が少ないから、ではなくてチルトホイールの左右に対してボタン割り当てが出来ないから。チルト左右は最高に押しやすい「ボタン」なので、この部分をあまり使わない横スクロールなんかに割り当てるのは勿体ない話です。これは3ボタンマウスにおけるホイールボタンと同じ類の話。また、チルトホイール化した大型のホイールは、大抵ホイールクリックが押しづらい。よってチルトでボタン数が増えたといっても、実質はホイールボタンが-1されて+1にしかならない。だから、チルトにボタン割り当てできないということは5ボタンマウスだったら4ボタンマウス、3ボタンマウスだったら恐怖の2ボタンマウスになってしまう。

さて、Logitechと言えば最悪の出来を誇るクソドライバSetPoint。カスタマイズの自由度も、ありません。自由なボタン割り当ても出来ません。が、uberOptionsを導入することで割り当て可能にします。ここでやることは、マウスの各ボタンへ普段は絶対に使わないF13-F24を割り振ること。細かいカスタマイズは全てAutoHotKeyでやるので、ここはただ割り振るだけで良いです。uberOptionsの素晴らしいところは、そういう使い方を見越していて、その他のキーにF13-F24が用意されていること。わーぉ。昔はSetPointの設定ファイルに仮想キーを直に書き換えなきゃならなかったので、全くもって良い時代になりました。

左クリック、右クリック、中クリックはそのまま。サイドボタン手前 F13、サイドボタン奥 F14、チルト左 F15、チルト右 F16、中央手前ボタン F17、サイドホイール手前 F18、サイドホイール中央(押す)F19、サイドホイール奥 F20、というように私は振りました。

さて、あとはカスタマイズするだけ。チルトの左右は「左右」という特性を生かしてタブブラウザでのタブ左へ移動、右へ移動に振ると、飯を食いながらダラダラとウェブブラウジングを片手でするときに楽です。一度慣れるとタブの切り替えに、いちいちポインタを上まで動かすのが馬鹿らしくなる。左右タブ移動は本当に多用するので、私はキーボードのCtrl+←/→にも振っています。

ホイール手前中央ボタンは音楽プレイヤー(foobar2000)の起動/再生/停止。基本的に常に音楽をかけているのだけど、動画を見るときは当然停止させなきゃならないのでワンボタンで操作出来ると便利ですね。やたらとキーボードにボタンのついてる、所謂マルチメディアキーボードを見ると馬鹿にしたくなるのですが、まあ、便利なものは確かに便利です。特に昔と違って今はウェブサイト見るとニコニコだのYouTubeだのが張りつけられているので、再生/停止をかなり頻繁に行うようになりました。

その他。いや、その他というか、3ボタンマウスの時と同じの文字列検索とか最小化とかが必需品。でもそれ以外は、わりと使い道が、ないかなあ(笑) 3ボタンじゃ足りない、チルトが欲しいというのは確かなのでマイクロソフトの5ボタンマウス+チルトというのが実はバランスが良いのかもしれません。ホイールクリックがしやすくて、チルトにボタン割り当て可能なら喜んでマイクロソフトマウス使いたいのだけど。BlueTrackいいぢゃん、とか思ってます、あはは。

Comment (6)

匿名 : (11/10 21:33)

一昨年ぐらいのMX1000での多ボタンマウスの薦め辺りでTrackMan Wheel からMX1000に乗り換え、そのままMX レボリューション MX-R に移行した私のような奴も居ます。
なので私としてはHHK Pro+MX レボリューション MX-R の設定こそを詳しく見せて欲しかったり。

neuecc : (11/12 23:31)

おおー、ありがとうございます。
今回は何だかキーボードカスタマイズな記事っぽくなってしまいましたが、
多ボタンマウスのほうに使いにくいショートカット、
たとえば無変換+矢印をMX-Rのサイドホイールに振る
という感じなので、あまり変わりはないかもしれません。

HHKBだと左◇がvkEBsc07B、右◇がvkEBsc07Bが、
日本語キーボードにおける変換・無変換と対応してますね(位置的に)
というわけで、無変換周りのカスタマイズは、HHKBで左◇を絡ませていたのと同じです。

トモタカ : (11/13 18:09)

はじめまして、遅い書き込み失礼します。
AutoHotKeyの情報を探しているうちにたどり着きました。
素晴らしい情報ですね。勉強になりました。
ありがとうございました。

neuecc : (11/13 18:32)

いえいえ、どうもです。
コメントが一年前の11/10,11/12、そして11/13と並んでいて素晴らしいです。
今見るとクドいなあ、という感じなのですが、役に立ったのならば何よりです。

hyodoarch : (07/06 17:58)

はじめまして。ちょっと調べ物をしていて、貴兄のページにたどり着きました。
アプリ毎のキー割り当ての変更にしか使っていなかったので、
選択文字列で検索や、SandStringなど、大変勉強になりました。
ありがとうございます。
いまだに、週に一回は「AutoHotkeyはスゲー!」と思います。

neuecc : (07/08 00:34)

こちらこそ、どういたしまして。
AutoHotKeyはほんとスゲー、ですよねー。
惜しむらくはもう少し構文が書きやすいといいんですが(ちょっとカオスなんですよね、そこだけ残念)

Name
WebSite(option)
Comment

Trackback(1) | http://neue.cc/2008/10/27_110.html/trackback

無聊写記 » AutoHotkey を利用したトーンダイヤラー : (08/19 08:56)

[…] AutoHotKeyによるマウス/キーボード徹底カスタマイズ […]

Search/Archive

Category

Profile


Yoshifumi Kawai
Microsoft MVP for .NET(C#)

April 2011
|
March 2017

Twitter:@neuecc
GitHub:neuecc
ils@neue.cc