FuPeiJiang/VD.ahk

Windows Virtual Desktop, AutoHotkey, Windows 11 support, switch desktop, move window(wintitle) to current desktop; createDesktop, PinWindow, getCount, getDesktopNumOfWindow -> mute all windows in Virtual Desktop

AutoHotkeyAssemblywindowswinapihotkeysautohotkeyvirtual-desktop
This is stars and forks stats for /FuPeiJiang/VD.ahk repository. As of 25 Apr, 2024 this repository has 230 stars and 34 forks.

VD.ahk: Virtual Desktop Windows 11 support, ahkv2: v2_port Just run the examples, everything explained inside Numpad1 to go to Desktop 1 Numpad2 to go to Desktop 2 Numpad3 to go to Desktop 3 numpad1::VD.goToDesktopNum(1) numpad2::VD.goToDesktopNum(2) numpad3::VD.goToDesktopNum(3) Win + x move VSCode to your current Desktop and WinActivate Win + e move "explorer replacement program" to your current Desktop and WinActivate #x::VD.MoveWindowToCurrentDesktop("ahk_exe Code.exe ahk_class Chrome_WidgetWin_1") #e::VD.MoveWindowToCurrentDesktop("ahk_explorer ahk_exe AutoHotkey.exe") Numpad4 to move the active window to Desktop 1 Numpad5 to move the active window to Desktop 2 Numpad6 to move the active window to Desktop 3 here, I choose to follow the window numpad4::VD.MoveWindowToDesktopNum("A",1), VD.goToDesktopNum(1) numpad5::VD.MoveWindowToDesktopNum("A",2), VD.goToDesktopNum(2) numpad6::VD.MoveWindowToDesktopNum("A",3), VD.goToDesktopNum(3) numpad7::VD.MoveWindowToDesktopNum("A",1) numpad8::VD.MoveWindowToDesktopNum("A",2) numpad9::VD.MoveWindowToDesktopNum("A",3) ... ; wrapping / cycle back to first desktop when at the last ^#left::VD.goToRelativeDesktopNum(-1) ^#right::VD.goToRelativeDesktopNum(+1) ; move window to left and follow it #!left::VD.goToDesktopNum(VD.MoveWindowToRelativeDesktopNum("A", -1)) ; move window to right and follow it #!right::VD.goToDesktopNum(VD.MoveWindowToRelativeDesktopNum("A", 1)) you can remap everything also has: createDesktop() PinWindow() getCount() ;how many virtual desktops you now have pretty much everything virtual desktop, or so I think! if there's anything missing/something you want: create an issue: I want to know what you're using it for here's quick nice example: "get desktopNum of all windows" #Include %A_LineFile%\..\..\VD.ahk foundProcesses := "" ; Make sure to get all windows from all virtual desktops DetectHiddenWindows On WinGet, id, List Loop %id% { hwnd := id%A_Index% ;VD.getDesktopNumOfWindow will filter out invalid windows desktopNum_ := VD.getDesktopNumOfWindow("ahk_id" hwnd) If (desktopNum_ > -1) ;-1 for invalid window, 0 for "Show on all desktops", 1 for Desktop 1 { WinGet, exe, ProcessName, % "ahk_id" hwnd foundProcesses .= desktopNum_ " " exe "`n" } } MsgBox % foundProcesses detect when the virtual desktop changes on occasion Windows will pull me to another desktop when I click on a notification, or I'll sometimes use the built-in Ctrl+Win+Left/Right to change desktop instead. VD.ahk/other examples/CurrentVirtualDesktopChanged RegisterDesktopNotifications.ahk Lines 9 to 14 in 73e52f9 #Include %A_LineFile%\..\..\VD.ahk VD.RegisterDesktopNotifications() VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged") CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) { ToolTip % desktopNum_Old ", " desktopNum_New } cool fixes: Switching VD does not make icons (on the taskbar) flash mzomparelli/zVirtualDesktop#59 (comment) Sometimes when I switch desktop, the application that's focused on that desktop becomes highlighted in the task bar. Example: On desktop A, I have Firefox: On desktop B I have Steam (note that Firefox is pinned to my task bar, which is why it's visible on this desktop): When I switch from A to B, Steam becomes highlighted: (It's possible to stop the blinking by explicitly selecting the blinking window with the mouse or alt+tab.) When I switch back to A, Firefox also becomes highlighted (and Steam stays visible in the taskbar because it is highlighted): This doesn't always happen; I'm not sure if it depends on the programs or where the mouse/keyboard focus is when switching desktops. That said, it happens far too often, to the point where it defeats the point of having multiple desktops at all. (The problem isn't limited to Firefox and Steam, the same thing also happens with other programs like Explorer.) how ? WinActivate taskbar before switching and WinMinimize taskbar after arriving Switch VD reliably works in FULLSCREEN thanks to SetTimer, pleaseSwitchDesktop, -50 if you don't use these headers, it will be slow: #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #SingleInstance force ListLines Off SetBatchLines -1 SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. #KeyHistory 0 #WinActivateForce Process, Priority,, H SetWinDelay -1 SetControlDelay -1 if you want global functions style instead of a class: eg: VD_goToDesktopNum() instead of VD.goToDesktopNum() then visit branch global_functions but it won't be updated from https://github.com/MScholtes/VirtualDesktop/blob/812c321e286b82a10f8050755c94d21c4b69812f/VirtualDesktop11.cs#L161-L185 Windows 11 has more functionality, if you need: MoveDesktop: // move current desktop to desktop in index (-> index = 0..Count-1) SetDesktopName SetDesktopWallpaper GetDesktopIsPerMonitor etc. or anything else that's not On this list create an issue saying what function(s) you need, what you'll be using it for (I'm curious)
Read on GithubGithub Stats Page
repotechsstarsweeklyforksweekly
Ralim/IronOSCC++Python6.3k06610
FiloSottile/mkcertGo42.9k02.3k0
geohot/tinygradPythonCC++19.7k02.5k0
xmos/lib_spdifAssemblyXCJava100140
Nigh/Genshin-fishingAutoHotkey2830200
aakkam22/windowsUpdateLoopFixBatchfile1110110
imbushuo/mac-precision-touchpadCPowerShellC#7.9k05050
ElementsProject/lightningCPythonRust2.6k08580
u-boot/u-bootCPythonAssembly3.1k03.2k0
bitcoin-core/secp256k1CSageAssembly1.8k01k0