Dynamic desktop organizer for Windows. Ultralight, native, and free. A modern open-source alternative to Stardock Fences.
- 🪟 Floating translucent fences — Group desktop files into elegant boxes with real alpha transparency
- 📑 Tabbed fences — Group multiple fences under tabs within a single window to save desktop space
- 🔼 Roll-up fences — Double click a fence's title bar to instantly roll it up, leaving only the title visible
- 📌 Pin to Top — A pin button in the header makes any fence float above all apps (always-on-top), ideal for an Inbox or a notes box
- 💡 Header tooltips — Hover the lock or pin icon to see what each toggle does, translated in your language
- 🎯 Smart Drag & Drop — Drag files between fences, to subfolders, or to the desktop with visual feedback
- 📝 F2 Rename — Press F2 on any item to directly rename it in place
- ⌨️ Keyboard navigation — Arrow keys move the selection (Home/End to jump, Shift to extend); Enter opens, Delete trashes
- 📌 File favorites — Pin important files to the top of any fence (Ctrl+P or the hover pin button)
- 🤖 Auto-organization — Rules by extension, name, pattern, or local AI (Ollama) for automatic file classification
- 🔍 Advanced rules — Filter rules by file size, age, or regex in addition to extension and name patterns
- 📦 Explorer drop — Drop files from any folder directly into fences (native OLE drag & drop)
- 🔍 Integrated search — Filter files within each fence in real time
- 📐 Grid + List view — Grid or list mode, sortable by name, size, type, or date (with smooth scrolling)
- 🖼️ Per-fence icon size — Each fence can override the global grid icon size (16–96 px) from Settings → Rules
- 🎨 Full customization — Colors, borders, corner radius, font, icons, item counter
- 📂 Multi-desktop support — Public desktop, OneDrive, and any additional folders
- ⏱️ Auto-archiving — Move old files to an archive folder with configurable age
- 🌙 Zen Mode — Hide/show all fences with double-click on desktop or
Ctrl+Alt+Z - 🧲 Magnetic snap — Blue alignment guides while dragging fences (edges, centers, same-size)
- 📋 Layout templates — Save named layout snapshots and reapply them with one click
- 🖥️ Multi-monitor aware — Templates remember each fence's monitor and reposition correctly on any display setup
- ⚡ Auto-restore — Mark a template as default and it applies itself when a known monitor connects (e.g. docking)
- ⏱️ Startup delay — Optional delay so fences appear after Windows finishes loading
- ⚡ Live settings preview — Every option applies instantly as you change it (no Apply button); Cancel reverts
- 🌍 Multi-language — English, Spanish, German, French, Portuguese, Italian (dedicated Language tab)
- 🪶 Ultralight — ~3 MB binary, ~4 MB RAM idle, 0% CPU (fully event-driven, no polling)
- 🔔 Toast notifications — Visual feedback with a queue (🟢 drops, 🔵 organization) so they never overwrite each other
- 🤖 Local AI (Ollama) — Semantic classification and automatic fence creation via local LLM
| Format | File | Best for |
|---|---|---|
| 🖥️ Installer (EXE) | ZenDesktop-1.0.16-setup.exe |
Most users — wizard installer with Start Menu shortcut |
| 📦 Installer (MSI) | ZenDesktop-v1.0.16-x64.msi |
Enterprises / system-wide installs with clean uninstall |
| 💾 Portable | ZenDesktop-v1.0.16-portable.zip |
USB drives, custom paths, no installation |
All downloads are available at Releases.
- Download
ZenDesktop-1.0.16-setup.exefrom Releases - Run the installer — accepts the license, installs to
Program Files\ZenDesktop - Start Menu shortcut is created automatically
- Uninstall via Windows Settings → Apps, or re-run the installer
- Download
ZenDesktop-v1.0.16-x64.msifrom Releases - Run the installer — it installs to
Program Files\ZenDesktopfor all users - Start Menu shortcut is created automatically
- Uninstall via Windows Settings → Apps, or re-run the MSI
- Download
ZenDesktop-v1.0.16-portable.zipfrom Releases - Extract to any folder (e.g.
%APPDATA%\ZenDesktop\) - Run
ZenDesktop.exe— it minimizes to the system tray - Optional: Add a shortcut to
shell:startupfor auto-start with Windows
💡 Auto-update works with the portable version too. When you click "Download & Install" in Settings → Updates, the new version replaces the current .exe and restarts automatically.
🔐 Security: Every update is cryptographically verified with an Ed25519 signature before it is installed. If the signature check fails, the download is discarded and the current version is left untouched. Released binaries also ship with a
SHA256SUMS.txtso you can verify downloads manually.
⚠️ Installed users (EXE/MSI): The app installs toProgram Files, where standard users can't write. The in-app updater detects this and asks for administrator permission (UAC) automatically; you can also download the new installer from the release page instead.
git clone https://github.com/jaimitus/ZenDesktop.git
cd ZenDesktop
cargo build --release
# Binary at target/release/zendesktop.exe| Action | Shortcut / Gesture |
|---|---|
| Open settings | Right-click tray icon → Settings |
| Zen Mode (toggle) | Double-click empty desktop or Ctrl+Alt+Z |
| Move files between fences | Select → Drag to another fence |
| Drop into subfolder | Drag over a folder inside a fence |
| Return to desktop | Drag outside all fences |
| Search in a fence | Click the search bar 🔍 |
| Change sort order | Right-click → Sort by |
| Lock fence position | Click the lock icon 🔒 |
| Pin fence always on top | Click the pin icon 📌 |
| Change icon size per fence | Settings → Rules → icon size chip |
| Move selection with keyboard | Arrow keys (Shift extends, Home/End jump) |
| Rename selected item | F2 → type → Enter |
| Pin a file to the top | Select → Ctrl+P (or click the 📌 on hover) |
| Delete selected item | Delete |
| Save layout template | Settings → General → Layout templates → Save layout |
| Auto-restore layout | Mark a template as default (★) in Settings → General |
Edit via the Settings window (tray icon) or directly in config.toml:
[general]
language = "en"
sweep_interval_minutes = 15
[appearance]
background = "#1A1B2E"
corner_radius = 12.0
font_family = "Segoe UI"
[[rules]]
id = "documents"
folder = "Documents"
extensions = ["pdf", "docx", "txt", "md"]
color = "#4CCD3C"
enabled = true- Rendering: Direct2D + DirectWrite on layered windows (per-pixel alpha, 0% VRAM reserved)
- File watching: Native
ReadDirectoryChangesWvianotify— no polling, 0% CPU idle - Drag & Drop: Manual capture (
SetCapture) +WM_MOUSEMOVEfor inter-fence drag; OLEIDropTargetfor Explorer drop - I18n: Static translation system with
Trstruct — zero runtime allocations - Binary: ~3 MB uncompressed, no external runtime
├── Cargo.toml # Dependencies & release profile
├── build.rs # Windows resource compiler (.rc)
├── assets/
│ ├── zendesktop.rc # EXE icon & metadata
│ └── icons/ # App & tray icons
├── src/
│ ├── main.rs # Entry point & message loop
│ ├── config.rs # config.toml load/save (serde)
│ ├── rules.rs # Rule engine & organization
│ ├── ui.rs # Windows, rendering, drag & drop
│ ├── settings.rs # Settings window
│ ├── watcher.rs # File system watcher
│ ├── ai.rs # HTTP client for Ollama
│ ├── updater.rs # Auto-update via GitHub Releases
│ └── i18n.rs # Translations (6 languages)
├── scripts/
│ └── build-release.ps1 # Local release builder
├── installer/
│ └── zendesktop.wxs # WiX v4 MSI installer source
└── .github/workflows/
└── release.yml # CI/CD release automation
- Fork the repository
- Create a branch (
git checkout -b feature/name) - Commit (
git commit -m "feat: description") - Push (
git push origin feature/name) - Open a Pull Request
MIT © 2024-2026 ZenDesktop Core Team
Built with ❤️ and Rust. Report a bug · Discussions

