Windows 11 setup inspired by Omarchy.
Omarchy is a beautiful, modern, opinionated desktop.
The goal is to deliver a similar experience on Windows 11: beautiful, modern, opinionated, and predominantly keyboard-driven.
Preview the full setup without changing the machine:
.\setup.ps1 -WhatIfRun the full setup:
.\setup.ps1That runs software installation, applies configs, and registers the desktop startup task.
It also applies the wallpaper from assets\wallpapers\dr15.jpg.
Apply configs once to install the local omawin command surface:
.\scripts\apply-configs.ps1Then open the keyboard menu with Win + Alt + Space, or run it directly:
.\bin\omawin.ps1 menuThe menu exposes common workflows such as starting or restarting the desktop stack, applying or collecting configs, previewing setup, setting wallpaper, and applying themes. The same workflows are available as commands:
.\bin\omawin.ps1 commands
.\bin\omawin.ps1 desktop restart
.\bin\omawin.ps1 theme list
.\bin\omawin.ps1 theme set tokyo-night -Apply| Tool | Description |
|---|---|
| Visual Studio Code | Main code editor with extension, settings, and keybinding sync/config support. |
| Zen Browser | Default installed browser, matching the existing Zen-focused web app and browser hotkeys. |
| Flow Launcher | Keyboard-driven app launcher and command palette for Windows. |
| Everything | Very fast local file search/indexing tool for Windows. |
| Docker Desktop | Container runtime and Docker tooling for Windows, mapping Omarchy's Docker baseline to the WSL-backed Windows app. |
| Windows Terminal | Primary terminal emulator, launched with Win + Enter. |
| Notion | Native desktop app, launched with Win + Shift + N. |
| Spotify | Native desktop app, launched with Win + Shift + M. |
| Todoist | Native desktop app, launched with Win + Shift + T. |
Browser-backed apps use Microsoft Edge or Chrome app windows instead of normal browser tabs, matching Omarchy's Chromium webapp feel on Windows:
.\bin\omawin.ps1 webapp list
.\bin\omawin.ps1 webapp launch youtube
.\bin\omawin.ps1 webapp launch calendarManaged webapps are defined in config\webapps.json. Current hotkeys:
| Hotkey | Target |
|---|---|
Win + Shift + M |
Spotify desktop app |
Win + Shift + A |
ChatGPT webapp |
Win + Shift + Y |
YouTube webapp |
Win + Shift + G |
Gmail webapp |
Win + Shift + C |
Google Calendar webapp |
Win + Shift + N |
Notion desktop app |
Win + Shift + T |
Todoist desktop app |
| Tool | Description |
|---|---|
| komorebi | Tiling window manager for Windows 10/11. |
| whkd | Simple hotkey daemon commonly used to bind keyboard shortcuts to komorebi commands. |
| masir | Companion service in the komorebi ecosystem, started alongside komorebi when enabled. |
| tacky-borders | Customizable active/inactive window borders for Windows 10/11. |
| Tool | Description |
|---|---|
| Starship | Fast cross-shell prompt with a single config file. |
| fzf | Interactive command-line fuzzy finder for files, history, processes, Git branches, and more. |
| zoxide | Smarter cd command that learns frequently used directories. |
| bat | cat replacement with syntax highlighting and Git integration. |
| eza | Modern ls replacement with better defaults, colors, icons, and Git-aware output. |
| ripgrep | Fast recursive text search, exposed as rg. |
| fd | Simple, fast, user-friendly alternative to find. |
| delta | Syntax-highlighting pager for Git diffs, grep, blame, and related output. |
| mise | Project-local dev tool version manager, environment loader, and task runner. |
| lazygit | Terminal UI for Git, used directly and by LazyVim integrations. |
| Neovim | Terminal-native editor with a LazyVim-based repo config under config\nvim. |
| CaskaydiaMono Nerd Font | Nerd Font patched Cascadia Mono variant for terminal icons and glyphs. |
| Bibata Modern Classic | Modern Windows cursor theme installed and activated for the current user. |
The PowerShell profile wires common shortcuts such as n for Neovim, ls via
eza, cat via bat, and PowerShell-native wrappers for cp, mv, rm,
mkdir, and touch.
This repo includes scripts to start the window-management stack at Windows logon:
.\scripts\register-desktop-startup.ps1That creates or updates a Scheduled Task named \Dotfiles\Dotfiles Desktop Startup for the current user. It runs:
.\scripts\start-desktop.ps1The task uses a short delayed logon trigger so Windows has time to initialize the user session before the shell tools start. The startup script currently starts and health-checks:
komorebic start --whkd --masirtacky-borders
The komorebi bar config is still managed, but the bar is disabled by default. Start it explicitly when wanted:
.\scripts\start-desktop.ps1 -EnableBarCollect the current machine's known config files into this repo:
.\scripts\collect-configs.ps1Preview what would be collected without copying files:
.\scripts\collect-configs.ps1 -WhatIfCollected configs currently live under config\ and include:
komorebiwhkdtacky-borders- PowerShell profile
- Git config
- VS Code settings/keybindings/snippets
- Starship, when present
- Neovim, when present
- Windows Terminal settings, when present
Apply the configs from this repo to the current machine:
.\scripts\apply-configs.ps1Preview what would be applied without copying files or installing extensions:
.\scripts\apply-configs.ps1 -WhatIfSkip VS Code extension installation:
.\scripts\apply-configs.ps1 -SkipVSCodeExtensionsBy default, existing destination files/folders are backed up under var\backups\ before being overwritten.
Generate repo configs for a supported theme:
.\scripts\set-theme.ps1 -Name tokyo-night
.\scripts\set-theme.ps1 -Name gruvbox
.\scripts\set-theme.ps1 -Name ristrettoPreview a theme switch without changing files:
.\scripts\set-theme.ps1 -Name gruvbox -WhatIfGenerate the configs, apply them to the current user, and set the themed wallpaper:
.\scripts\set-theme.ps1 -Name tokyo-night -ApplyAlso set the current user's Windows accent color from the theme:
.\scripts\set-theme.ps1 -Name gruvbox -Apply -SetWindowsAccentSupported themes currently include:
tokyo-nightgruvboxristretto
Theme switching currently updates the repo-managed configs for komorebi, komorebi bar, tacky-borders, Windows Terminal, VS Code, and Neovim. The komorebi bar remains opt-in at startup.
Install the software stack:
.\scripts\install-software.ps1Preview planned installs without changing the machine:
.\scripts\install-software.ps1 -WhatIfUseful install subsets:
.\scripts\install-software.ps1 -SkipApps
.\scripts\install-software.ps1 -SkipWindowManagement
.\scripts\install-software.ps1 -SkipTerminal
.\scripts\install-software.ps1 -SkipFonts
.\scripts\install-software.ps1 -SkipCursors
.\scripts\install-software.ps1 -SkipVSCodeExtensionsThe installer currently uses winget for the main apps/tools, downloads tacky-borders from the latest GitHub release because it does not currently have a winget package, downloads CaskaydiaMono Nerd Font from the latest Nerd Fonts release, and installs Bibata Modern Classic from the latest Bibata Cursor GitHub release.
Install or update only the cursor theme:
.\scripts\install-bibata-cursor.ps1Preview the cursor install:
.\scripts\install-bibata-cursor.ps1 -WhatIfUseful cursor variants:
.\scripts\install-bibata-cursor.ps1 -Color Ice
.\scripts\install-bibata-cursor.ps1 -Color Amber
.\scripts\install-bibata-cursor.ps1 -Size Large
.\scripts\install-bibata-cursor.ps1 -RightCurrent winget packages:
| Tool | Package ID |
|---|---|
| Git | Git.Git |
| PowerShell 7 | Microsoft.PowerShell |
| Visual Studio Code | Microsoft.VisualStudioCode |
| Zen Browser | Zen-Team.Zen-Browser |
| Flow Launcher | Flow-Launcher.Flow-Launcher |
| Everything | voidtools.Everything |
| Docker Desktop | Docker.DockerDesktop |
| Windows Terminal | Microsoft.WindowsTerminal |
| Notion | Notion.Notion |
| Spotify | 9NCBCSZSJRSB |
| Todoist | Doist.Todoist |
| komorebi | LGUG2Z.komorebi |
| masir | LGUG2Z.masir |
| whkd | LGUG2Z.whkd |
| Starship | Starship.Starship |
| fzf | junegunn.fzf |
| zoxide | ajeetdsouza.zoxide |
| bat | sharkdp.bat |
| eza | eza-community.eza |
| ripgrep | BurntSushi.ripgrep.MSVC |
| fd | sharkdp.fd |
| delta | dandavison.delta |
| mise | jdx.mise |
| lazygit | JesseDuffield.lazygit |
| Neovim | Neovim.Neovim |
Manual follow-up still needed:
- Restart shells/apps after installing tools that update
PATH. - Launch Docker Desktop once after install so it can finish its Windows/WSL initialization. A reboot may be required if Windows enables platform features.
Set the desktop wallpaper and attempt to set the lock screen image:
.\scripts\set-wallpaper.ps1Preview without changing anything:
.\scripts\set-wallpaper.ps1 -WhatIfUseful variants:
.\scripts\set-wallpaper.ps1 -Style Fit
.\scripts\set-wallpaper.ps1 -SkipLockScreen
.\setup.ps1 -SkipWallpaperThe desktop wallpaper is applied per user. The lock screen uses Windows personalization policy registry keys, so that part may require administrator rights and can vary by Windows edition.