A tiny Windows tray utility that remembers where your apps belong and puts them there automatically.
Assign each application to a virtual desktop and a screen position/size once - Desktoper then watches for those apps and, whenever one opens, moves it to its desktop and snaps it to its place. Think of it as a persistent, per‑app version of macOS Spaces (assigning apps to spaces) or Linux workspace rules - but with saved window geometry on top.
- 🎯 Bind a process to a virtual desktop + exact X/Y/W/H.
- 🪄 Visual layout editor - drag windows on a scaled screen instead of typing coordinates (move, resize from edges/corners, snap to screen edges and neighbours).
- 🖥️ Auto‑creates/names virtual desktops to match your preset.
- 🔁 "Replicate apps" - apply the whole preset to already‑running windows on demand.
- 🪶 Single self‑contained
.exe, no external DLLs, minimal background footprint.
- Windows 10 / 11
- .NET Framework 4.8 runtime (ships with Windows)
To build: Visual Studio 2022 or MSBuild with the .NET Framework 4.8 targeting pack.
# from the repo root
msbuild Desktoper.sln /t:Build /p:Configuration=ReleaseOutput: bin/Release/Desktoper.exe - a single binary you can run or move anywhere. No NuGet packages, no shipped dependencies.
Or just open Desktoper.sln in Visual Studio and build.
- Run
Desktoper.exe- it lives in the system tray. - Double‑click the tray icon to open/close the window.
- Add a desktop (
+), then add processes to it. Set window position/size by typing, or switch to Layout to arrange them visually. - Reorder desktops with the ▲▼ on each card; delete with ✕ (or middle‑click).
- Right‑click the tray icon → Replicate apps to apply the preset to open windows.
Settings (start minimized, replicate on startup, listening on/off) are in the gear menu. Configuration is saved to config.json next to the executable.
This project is licensed under the MIT - see the LICENSE file for details.

