おもちゃツールを作ったので貼っておこー
Windows標準機能
- 「Win」+「Tab」キーで表示
- 「Ctrl」+「Win」+「左右」キーで隣のデスクトップに移動
やりたいこと
「Ctrl」+「Win」+「F1~F6」キーで離れたデスクトップに直接移動
作ったもの
「タスクビュー」のソースファイル
; ----------------------------------------
; prerequisites
; display: 1 monitor only
; os: Windows 11
; virtual desktop: 1 - 6
; ----------------------------------------
WINCOUNT := 4
switchDesktop(desktopId) {
winIds := WinGetList()
Send "#{Tab}"
WinWaitActive ("ahk_class XamlExplorerHostIslandWindow")
Sleep 500
count := 0
Loop {
if count == 0 {
if winIds.Length > WINCOUNT
Send "{Tab}"
} else {
Send "{Right}"
}
count++
} Until count == desktopId
Send "{Enter}"
}
^#F1::switchDesktop(1)
^#F2::switchDesktop(2)
^#F3::switchDesktop(3)
^#F4::switchDesktop(4)
^#F5::switchDesktop(5)
^#F6::switchDesktop(6)
「Ctrl」+「Win」+「F1~F6」キーでデスクトップ切り替え
前提
事前に仮想デスクトップが6つ作成されていることを想定している。
動作確認環境
- Windows 11
- Autohotkey V2
- ディスプレイ:1枚だけ
機能追加予定
ディスプレイが2枚以上あると正しく動かないことが分かっている。「Win」+「Tab」キーを押下して、単純にTabキーを送り付けて最後にEnterキーを叩いているだけなのでディスプレイの枚数が増えると必ずバグる。
Send “{Tab}” を Send “{Tab x}” にしてTabキーの回数を修正すれば動くのだろうけど、そもそもマルチディスプレイ環境であれば、タスクビューでデスクトップを切り替えるような使い方はしないか。
あとは、実行時にタスクビューの画面が表示されてしまい宜しくない。
余談
Linuxの仮想コンソールは、「Ctrl」+「Alt」+「F1~F6」キーで切り替えていた。昔のLinuxのGUIは、すぐに固まってしまい仮想コンソールからプロセスを落とすことがよくあった。
Linuxの仮想コンソールに倣い6つの仮想デスクトップを想定している。