DesktopManager window layouts now remember virtual desktops, pins and Explorer folders
2 hours ago
DesktopManager 4.6.0 for PowerShell saves more than window positions. A layout can now record each window's virtual desktop, what is pinned, each desktop's wallpaper, and the folder every Explorer window has open. Then it can put all of that back.
Ask about this presentation
Chapters
Show transcriptHide transcript
DesktopManager 4.6.0 for PowerShell saves more than window positions. A layout can now record each window's virtual desktop, what is pinned, each desktop's wallpaper, and the folder every Explorer window has open. Then it can put all of that back.
Capturing is still Save-DesktopWindowLayout, with two new switches. IncludeVirtualDesktops records each desktop by its GUID, with its name, wallpaper and pins, including windows on desktops you aren't looking at. IncludeExplorerFolders saves the path behind each folder window.
Restore-DesktopWindowLayout gains a Preview switch, which shows which saved window matches which live one and moves nothing. When the plan looks right, run it with RestoreVirtualDesktops. Add PassThru for an outcome per window, including the missing and ambiguous ones, plus each wallpaper and warning.
Process and class names narrow the candidates, and the Explorer path separates folder windows that share a title. Exactly one match gets restored. Two or more is skipped as ambiguous, and zero is reported missing. Identity is checked again right before a window moves. Desktops match by GUID too, so a deleted desktop's windows don't land on whichever desktop took its place.
Anything bigger than a window waits for its own switch. Application pins change every window of an app, so they need one on top of virtual desktops. ReopenExplorerFolders reopens missing folders, and only folders. RestoreWallpapers puts back each desktop's image and leaves slideshows alone. And Get-DesktopVirtualDesktop, with List and Experimental, shows the live desktops.
A separate fix for scripts that capture windows. Even when PowerShell runs DPI unaware, window, client area and control screenshots now come back at physical pixel size, with control positions that line up with the image. Your thread's DPI setting is restored afterwards. This needs Windows 10 version 1607 or later.
This one is in the DesktopManager .NET library, released at the same version. PortableDesktopService lists displays, reads the wallpaper and sets a local image, on Windows, macOS, GNOME and KDE Plasma, and each backend reports what it supports. The PowerShell commands, the CLI and the tray app stay Windows-only.
Desktop capture and restore use an undocumented Windows shell interface, which is why listing desktops asks for the Experimental switch. It's qualified on build family 26300. Families 26200 and 26100 have interface checks but still need runtime qualification. An unsupported build gives you a capture warning or a reported restore failure. And your apps must already be running: DesktopManager doesn't relaunch your applications.
The module installs from the PowerShell Gallery. Plain Save and Restore calls still restore geometry only, existing layout files still load, and the README examples were corrected. The CLI and MCP plugin share the engine and ship as 0.2.2. Save a layout with virtual desktops included, then run Preview to see what would come back.








