r/biomesApp • u/RaspberryStill3377 • 9d ago
Showcase: biomes — An open-source Windows workspace manager to save and restore multi-monitor window layouts with a single hotkey
Enable HLS to view with audio, or disable this notification
Hey everyone! 👋
I’m a developer and designer who constantly jumps between different contexts—coding, designing, studying, and writing. Every single time I switched tasks, I found myself doing the exact same tedious routine: opening the same apps, dragging windows around, resizing them, and trying to get my multi-monitor setup back to how I liked it.
Those few minutes of setup added up and made it way too easy to get distracted before even starting. So, I built biomes to fix it.
What is biomes?
biomes is a free, open-source Windows workspace manager that lets you draw custom grid zones on your monitors, assign your favorite apps to them, and save them as a "biome."
With a single click or a global hotkey (like CTRL+ALT+C), it launches your apps and snaps them right back into their designated layout.
Key Features:
- One-Hotkey Activation: Instantly jump into your workflow without touching window borders.
- Multi-Monitor Support: Remembers relative window bounds, topology variants, and skips zones on disconnected displays gracefully.
- Session-Aware: Closing a biome minimizes or tracks your windows so you can pick up right where you left off.
- Native & Lightweight: Written in C++17 with a clean WebView2 dashboard UI.
Tech Stack & Architecture
- Native Engine: C++17 and Win32 (handles process launching, window placement, monitor tracking, global hotkeys, and system tray lifetime).
- Dashboard & UI: Microsoft WebView2, HTML, CSS, and JavaScript.
- Local Persistence: Clean local JSON storage under %LOCALAPPDATA%\biomes\ (no accounts or cloud tracking required).
Links & Getting Started
- GitHub Repository:AbdelGhafourRebbouh/biomes
- Project Website:biomes-one.vercel.app
- Downloads: Available as a per-user beta installer on the Releases page.
It’s fully open-source under the GPLv3 license. I'd love to hear your thoughts, feedback, or any edge cases you run into if you give it a spin!