Alt+Tab問題を終わらせたい

Alt+Tabをどう実装するかはキーカスタマイザーの腕の見せ所です。しかし、そんな話はもうそろそろ終わらせたいものです。

~d & j::AltTab

D+JでAlt+Tabのメニューを表示し、Jで移動します。テキストエディタや入力フォームで使うとDやJが入力されるのが問題です。

追記

~d & j::AltTab
~d & f::Send,{BackSpace}{Alt}

D+F+Jに変更しました。D+FでAltを入力しフォームからカーソルを退避します。文字入力中に動作するのを避けるためIMEのオンオフで動作を限定したいのですが、IME.ahkで機能を抑えられません。どうしたものか。

追記2

#IfWinNotActive ahk_class CabinetWClass
~d & j::AltTab
~d & f::Send,{BackSpace}
~d & v::
Send,{BackSpace}
Send,#{2}
sleep 1000
Send,!{f}
sleep 1000
Send,{c}
sleep 1000
Return
#IfWinActive ahk_class CabinetWClass
~d & v::
Send,^w
#If

エクスプローラが起動していると問題が多いようなので、D+Vでエクスプローラを閉じる動きを定義しました。エクスプローラがWin+2で起動する環境を想定しています。

追記3

#IfWinNotActive ahk_class CabinetWClass
~d & j::AltTab
~d & f::Send,{BackSpace}
~d & k::Send,{Alt}
~d & v::
Send,{BackSpace}
Send,#{2}
sleep 1000
Send,!{f}
sleep 1000
Send,{c}
sleep 1000
Return
#If
#IfWinActive ahk_class CabinetWClass
~d & v::
Send,^w
#If

Dがテキストエリアフォーカス時に入力される問題の対策として、D+F+K+Jに定義を変更しました。Dホールド中にJで移動します。やはり文字入力中は機能を抑えたいのですが難しそうです。

追記4

Firefoxがアクティブ時に動かすとBackSpaceで「戻る」のショートカットが機能する問題が発生しました。about:configで無効に設定可能ですから、ショートカットとしてBSを使っていないFirefoxユーザーの方は設定していただくことをおすすめします。
orangeclover.hatenablog.com
チェックマークのアイコンをクリックしないと保存されないので注意してください。
support.mozilla.org

追記5

#IfWinNotActive ahk_class CabinetWClass
~d & j::AltTab
~d & f::Send,{BackSpace}
~d & k::Send,#{b}
~d & v::
Send,{BackSpace}
Send,#{2}
sleep 1000
Send,!{f}
sleep 1000
Send,{c}
sleep 1000
Return
#If
#IfWinActive ahk_class CabinetWClass
~d & v::
Send,^w
#If

D+KをAltからWin+B(通知領域にフォーカスを移動)に変更しました。タスクバーの「>」のマークが白い枠で囲まれるのを確認してからJを押してください。

追記6

#IfWinNotActive ahk_class CabinetWClass
~d & j::AltTab
~d & f::Send,{BackSpace}
~d & k::
Suspend, Off
Send,{BackSpace}
MsgBox, alt_tab_testを使用する準備が整いました。`n文字入力時にはD+Iで機能を停止してください。
Return
~d & i::
Send,{BackSpace}
Suspend, On
MsgBox, alt_tab_testを無効化しました。`n使いたいときはD+Kで再開します。
Return
~d & v::
Send,{BackSpace}
Send,#{2}
sleep 1000
Send,!{f}
sleep 1000
Send,{c}
sleep 1000
Return
#If
#IfWinActive ahk_class CabinetWClass
~d & v::
Send,^w
#If

D+F+Jに機能を戻しました。D+Iで無効化して、D+Kで再開します。文字入力時には無効化してください。

続きます
jigendaddy.hatenablog.com