AutoHotKeyで、キー二連打にいろいろ割り当ててみた。
二連打は、意識せずに指一本でできるので便利。
二連打は組み込み変数を使えばもっとスマートにできるね。ふたつ目ならこんな感じ。
$vk1Dsc07B::
KeyWait, vk1Dsc07B
if (A_PriorHotkey == A_ThisHotkey) && (400 > A_TimeSincePriorHotkey)
send, ^+{Space}
return
Esc二連打でウィンドウ閉じる
便利なんだけど機会がまれっていう。
; Esc二連打でウィンドウ閉じる
$Esc::
KeyWait, Esc, T0.4
if ErrorLevel
{
send, {Esc}
return
}
if A_TickCount < %EscDouble%
{
send, !{F4}
EscDouble = 0
}
else
{
EscDouble = %A_TickCount%
EscDouble += 400
}
return
二連打でAlt+F4、長押しでEscを出力。
ソフトウェア側で「Escでウィンドウを閉じる」ショートカットになってることが多いので、ウィンドウを閉じるショートカットとEsc出力を両立したくてやってみた。でもEscで閉じれるソフトで二連打してしまうと誤爆してしまう罠。まさにこの記事書いてる時に発生して書き直しに(ぐへー。
「二連打ならAlt+F4、そうでなければEscを出力する」というのも考えたが、ややこしそうなのでやってない。
無変換キー二連打でランチャーを呼び出す
; 無変換キー二連打でBlueWindを呼び出す
$vk1Dsc07B::
if A_TickCount < %MuhenkanDouble%
{
send, #{Space}
MuhenkanDouble = 0
}
else
{
MuhenkanDouble = %A_TickCount%
MuhenkanDouble += 400
}
KeyWait, vk1Dsc07B
return
無変換キー連打でランチャーを呼び出せるようにするととてつもなく便利。わしはBlueWindだけど、別にBWに限らず。
Win+Spaceってのは、BW側で指定してあるランチャー呼出しキー。各自適当に。
Alt二連打でOperaをアクセスキーモードに
;--------------------------------------------------
; Opera
;--------------------------------------------------
#IfWinActive ahk_class OperaWindowClass
; Alt二連打でアクセスキーモードに
$alt::
KeyWait, alt, T0.4
if ErrorLevel
{
send, {alt}
return
}
if A_TickCount < %AltDouble%
{
IME_ON(WinExist("A"), False)
send, +{Esc}
AltDouble = 0
}
else
{
AltDouble = %A_TickCount%
AltDouble += 400
}
return
Operaの「アクセスキーモード」は地味にすごいんだが、Shift+Escってショートカットが覚えにくい&面倒なので、Alt二連打でアクセスキーモードに切り替えるスクリプト。
なにがすごいって、アクセスキーのもつ問題のうち、「ブラウザのショートカットと競合する」「どのキーがなんの機能かわかりにくい」というのを、「キー×機能の一覧を表示する専用モード」で回避してるのがすごい。
なおアクセスキーモードは、IMEがOFFでないとキーでは機能実行できないので、IMEを制御するユーザー関数でOFFにしている。
もらかなです。:AutoHotkey IMEの制御をする編 -- IMEを制御するユーザー関数はこちら。