AutoHotkeyで、Window位置変更
キーボード中心で操作しているときはマウスをあんまり使いたくない。
だけども、Windowを動かすときとか、キーボードだけで動かすのは大変すぎる。
(Alt-Spaceでメニューを開いて、Mで移動を選択。しかる後、方向キーで移動可能)
ってことで、AutoHotKeyで対応してみることにした。
;引数取得 XParam = %1% YParam = %2% mode = %3% ;座標チェック if XParam is not number { MsgBox XParam value(%XParam%) is not number return } if YParam is not number { MsgBox YParam value(%YParam%) is not number return } ;全画面サイズ取得(Hは全体の高さ、Wは全体の幅、Shell_TrayWndは、下のツールバー) WinGetPos, Xpos, YPos, Width, Height, ahk_class Shell_TrayWnd H = 0 W = %Width% H += A_ScreenHeight H -= Height ;ウィンドウサイズ取得 WingetActiveTitle, Title WinGetPos, Xwin, Ywin, Wwin, Hwin, %Title% ;Option判定 IfEqual, mode, a { ;位置算出(Windowサイズ補正なし) XPos = 0 XPos += W XPos *= %XParam% YPos = 0 YPos += H YPos *= %YParam% } else { ;位置算出(Windowサイズ補正あり) XPos = 0 XPos += W XPos -= Wwin XPos *= %XParam% YPos = 0 YPos += H YPos -= Hwin YPos *= %YParam% } ;Window移動 WingetActiveTitle , Title WinMove %Title%,, XPos, YPos
これを、movewin.ahkとか名前を付けて保存する。
で、コマンドランチャー(私は、bluewindを常駐で使ってる)からそれに引数付けて呼び出す。
mwは、bluewindで、movewin.ahkに付けた名前。
mw .5 .5
こんな感じでやると、ランチャー起動の前にアクティブになっていたWindowが、画面中央に移動する。
最初の引数は、左右の位置。次の引数は上下の位置。
0だと、Windowの左端が画面の左端にくっつく位置。1だと、Windowの右端が画面の右端にくっつく位置。
縦も同様。
三つ目の引数に小文字のaを付けると、Windowの左端が基準で移動するようになる。
便利かどうかはともかく、勉強がてら、って感じで書いてみた。
いまいち、仕様がよく分からない感じ。Help英語ってのがきついなぁ。