エレコムマウスアシスタントとAutoHotKeyを連携させてマウスボタン同時押しのキー割り当てをする方法
G HUBしかり、マウスアシスタントしかり、GUIでの設定は何かとめんどう!なのでAutoHotKeyで設定してしまおうという話です。
AutoHotKeyでキー割り当てを行うことで、アプリごとのキー割り当て設定をGUIでなくテキストベースで行うことができます。
ロジクールのG HUBではF13~F24の割り当ても可能ですが、マウスアシスタントはF13~F24の割り当てができない!!!
どうにか解消したので、同じ悩みを抱えている人はぜひ読んでみてください。
マウスの設定(マウスアシスタント側)
新しく購入した人差し指型トラックボールマウスのDEFT Proを使って設定しました。他のエレコム製マウスでうまくいくかはわかりませんが…たぶん同じでしょう。
側面の3つのボタンに対して割り当てを行います。
さらに小指側のボタンを押しているときの挙動を変える設定もします。
※下の画像を参照
Pointとしては小指側のボタンにEscキーを割り当てておくことです。
なぜEscキーかというと単独で押しても悪さをしないから。
追記1:EscじゃなくともCtrlの方が使い勝手よいですわ。追記2:Ctrlを小指側のボタンに設定した場合、AutoHotKey側でCtrl+アプリケーションキー+テンキー時にCtrlを含む割り当てをすると挙動がおかしくなるので、やはりEscぐらいがいい。どういう挙動をするかというと小指側のボタン(Ctrl)押しっぱなしでボタン4、ボタン5を押すと一回しか動作しない。おそらく割り当て側のCtrl実行時に「Ctrl(放す)」状態となり、小指側のボタンを押しっぱなしだとしても、Ctrlが押されていない状態となる。説明が難しい。
追記3:使っていないキー(今回は"再生/一時停止"キー)を使用するのがよさそう。メディアキーは自キーにも割り当てていないし、普段はスペースキーか画面左クリックとかで再生/一時停止しているので使用していない。
エレコムマウスアシスタントでデフォルトで使用できるのでこいつをAutoHotKey側で書き換えてやる。
再生/一時停止"Media_Play_Pause"は仮想キーでは”VK_MEDIA_PLAY_PAUSE”と定義されている。vk(仮想キー)指定のときはvkB3、sc(Scancode)指定のときはsc122。
これで解決かな。追記3ここまで。
側面のボタンには”アプリケーションキー + 数字(テンキー)”を設定しておきます。私は自作キーボードを使っているのですが、キーマップの組み合わせ上、”アプリケーションキー + 数字(テンキー)”は押すことができない組み合わせになっています。
仮に普通のフルサイズキーボードを使っていても、”アプリケーションキー + 数字(テンキー)”はそうそう押すことがないので悪影響はないかと…。
逆にオリジナルショートカットを設定するのに良い配置かもしれません。
余談ですが、人差し指型トラックボールマウスに慣れていないので、左クリックのボタンを二か所に割り当ててます。慣れたらどちらか一方にしようかな。
ミドルクリックもマウスホイール押し込みが割と固いので、このあとわざわざボタン8に割り当ててます。スイッチを静音タクトスイッチに変えようと考えているので、そうすると硬さも解消されるかなぁ。
AutoHotKey側のキー割り当て設定
AutoHotKey側はこんな感じです。
コードも参考に埋め込んでおきます。
;===== DEFT Pro =====
AppsKey & Numpad1:: ;---DEFT Pro横の上奥ボタン---
If GetKeyState("Esc")
Send,!{Right} ;進む
Else
Send,^{Tab} ;次のtabへ移動
Return
AppsKey & Numpad2:: ; ---DEFT Pro横の上手前ボタン---
If GetKeyState("Esc")
Send,!{Left} ;戻る
Else
Send,^+{Tab} ;前のtabへ移動()
Return
AppsKey & Numpad3:: ;---DEFT Pro横の下前ボタン---
If GetKeyState("Esc")
Send,^+!{tab} ;タスク一覧
Else
MouseClick, MIDDLE ;ミドルクリック
Return
AppsKey & Numpad1:: でマウスアシスタントで割り当てたキーを読み取ります。小指側のボタンを押しているとき(=Escが押されている場合)は、If文の挙動を、押されていないときはElse側の挙動をします。
これで”側面ボタン単独”と”小指側のボタン+側面ボタン”の2パターンを実現できました!
詰まったポイント(気を付けた方が良いポイント)
小指側のボタンにAppsKey & Numpad0::Send,{F13}を設定して、F13::Send,{何か}を設定しても動きませんでした。(文字列出力はできましたが、キー割り当ては無理だった。)
組み合わせ用に設定する小指側のボタン割り当てはAltやShift、Ctrlは避けた方がよい。小指側ボタンにCtrrlを設定したとき、側面ボタンとの組み合わせ割り当て設定でCtrlが入った場合うまく動作しません(例:割り当てが^+{Tab}のようにCtrlを含む設定)。小指側ボタンのCtrrlと割り当て設定のCtrl(^)が干渉するからでしょうか。
組み合わせ用に設定する小指側のボタン割り当ては、マウスアシスタントで直接プルダウンから選択できるキーが良い。つまり任意キー設定で割り当てない方がいい。任意キー設定でキーを設定すると単発(押し込んで離す)挙動になるためです。組み合わせようと小指側ボタンを押しても単発挙動なので組み合わせができません。直接プルダウンから選択できるキーならばDEFT Proの同時押しが効きました。DEFT Proの同時押しが効くからこそ、AutoHotKey側の組み合わせのキー割り当てが活きる。
ちなみにG HUBだとこんな感じ
G HUB側でF17~F24キーを割り当て。
AutoHotKeyはこんな感じでアプリケーションごとに設定を変えている。
例えばEdgeブラウザを使っているときだけのキー割り当てはこんな感じ。
;===== Edge =====
#IfWinActive,ahk_exe msedge.exe
F24 & F23::Send,^+{t} ;開いているタブを閉じる
F24 & F18::Send,^{d} ;お気に入り登録
F24 & F19::Send,^{t} ;新しいタブ
F24 & F20::Send,#{Down} ; ウィンドウの最小化
F24 & F21::Send,{Esc} ;お気に入り登録
F24 & F22::Send,^{w} ;閉じたタブを再度開く
#IfWinActive
割り当てキーの設定が複数行になる場合はreturnを入れてあげるのを忘れずに!
さいごに
ざざざっと書いてみましたがいかがだったでしょうか。
エレコム製のマウスでマウスアシスタントを使っていて、さらにAutoHotKeyを使っていて、組み合わせキー設定を実施したいなぁというコアな人向けでした!
でわでわ。