
StarDesktop
StarDesktop is a replacement Windows shell written in C++ with plain Win32 and GDI+. It gives you a desktop with real shell icons, a taskbar, a start menu, a Spotlight / KRunner style launcher, window snapping, virtual desktops and a lot of small conveniences, in a dark and orange style that follows the FModModern file manager. It can run as the shell instead of Explorer or be tried out first as a normal program.
It is a single executable with no runtime to install. Settings live in HKEY_CURRENT_USER\Software\StarDesktop, logs and caches in %LOCALAPPDATA%\StarDesktop.
Status: StarDesktop is built and tested by one person on one machine. Every release note in
CHANGELOG.mdsays which parts have not been checked on real hardware. Try it as a normal program first, and read “Using it as your default shell” before you register it.
Contents
- Requirements
- Installing
- Building from source
- What is in it
- Keyboard shortcuts
- File search (voidtools Everything)
- Using it as your default shell
- Settings, logs and troubleshooting
- Files in this folder
- License
1. Requirements
Windows 10 or Windows 11, 64-bit (a 32-bit build exists for 32-bit Windows). To build it yourself you need the Visual Studio Build Tools (MSVC) and the Windows 10/11 SDK. File search needs the free voidtools Everything program, which StarDesktop can download for you the first time you search for a file.
2. Installing
There are three ways, from simplest to most involved.
- Run it where it is. Build it (section 3) or take a built
StarDesktop.exe, put it in any folder together withEverything64.dll, and start it. Nothing is written outside your user profile. - Use the installer.
installer\StarDesktop.issis an Inno Setup 6 script. Build StarDesktop, install the free Inno Setup, runbuild-installer.bat, and you getdist\StarDesktop-Setup-<version>.exe, which installs to Program Files, adds Start menu and optional desktop shortcuts and registers an uninstaller. The uninstaller puts Explorer back as the shell if StarDesktop was registered as it. - Without extra tools.
installer\install.batcopies the built files to Program Files with a Start menu shortcut and an uninstall entry.installer\PAQUET-BUILDER.mdlists everything a Paquet Builder project needs.
3. Building from source
The sources are main.cpp, version.h, version.rc, app.manifest and assets\StarDesktop.ico. Open a normal Command Prompt in this folder and run:
build-all.bat everything a release needs: 64-bit + 32-bit + installer + self-test
build.bat 64-bit build, produces StarDesktop.exe
build32.bat 32-bit build, produces StarDesktop32.exe
build-installer.bat the Inno Setup installer, into dist\
build.bat finds the newest MSVC toolset under C:\BuildTools and the newest Windows SDK under C:\Program Files (x86)\Windows Kits\10 by itself. Set BT, SDK, MSVC or SDKV before running it if yours are elsewhere. It also writes a copy named StarDesktop-v<version>.exe and a .map file. For the 32-bit build you need the “MSVC x64/x86 build tools” component, the SDK’s x86 libraries and Everything32.dll.
build-all.bat runs the three steps in order and stops at the first failure; the summary at the end names the steps that passed and the one that broke. Each step script returns a real exit code, so it also works from another script.
Both builds expect the matching Everything DLL (Everything64.dll or Everything32.dll, from the voidtools SDK) next to the exe. build.bat copies it from Documents\EverythingSDK\dll when it is there. Without it everything works except file search, and StarDesktop offers to download it.
Checking a build
StarDesktop.exe --self-test
writes a report (and prints it when started from a console), writes selftest.log next to the exe and returns 0 or 1. It checks that the settings key can be written and read back, that the Winlogon key is readable, whether the Everything SDK loads and its index answers a query, how many programs the Start-menu scan finds, and whether the watchdog can really launch a child process and hear back from it. It never creates a window or touches the session. build-all.bat runs it as its last step.
Signing a build
Set SD_PFX to a .pfx file (plus SD_PFX_PASSWORD), or SD_THUMBPRINT to the SHA-1 thumbprint of a certificate in your store (plus SD_MACHINE_STORE=1 for the machine store), and the builds pick it up: build.bat signs the program, build-installer.bat signs the setup and the uninstaller through Inno’s SignTool. Signatures are SHA-256 and timestamped (SD_TIMESTAMP, DigiCert by default) and are verified after signing. sign.bat <file> ... on its own signs any file. With nothing configured it prints how to set it up and does nothing else, so the build never fails over a missing certificate.
A shell is a good candidate for signing: the installer writes to HKLM and the program registers itself in Winlogon, which is the behaviour SmartScreen and antivirus heuristics look for.
4. What is in it
Desktop. Wallpaper (fill, fit, stretch, center, tile, slideshow, or follow the Windows wallpaper) with the real shell desktop icons: genuine context menus, drag and drop with the shell’s own copy dialogs, multi-select, rename, delete, stacks that group icons by kind or date, and Quick Look previews on Space. The icons can also be gathered into fences - boxes you draw, drag and roll up, on four pages you turn with Ctrl+Wheel - and resting the pointer on a folder for half a second peeks inside it; each of the four pages can wear its own wallpaper (see 4.34.0 below). A docked widgets panel (off by default) reserves a strip of the desktop so icons never sit under it. It is a stack of applets you switch on and off from its own menu (right-click the panel or the desktop > Widgets > Applets): clock and date, CPU and memory, drive space, uptime, key state (Caps/Num/Scroll), a countdown timer, a colour picker, the machine’s network address, the current display mode, a batch launcher, sticky notes, a media transport (Prev / Play / Next / Stop for whatever player is listening, with a now-playing line read out of the player’s own window title) and a weather card (which draws an hourly strip and can be pointed at a place of your own). Each keeps its own on/off flag in HKCU\Software\StarDesktop (WidgetOnClock, WidgetOnSystem, …), the panel resizes to fit what is on, and every applet does something when clicked - toggle the clock’s 12/24-hour format, copy the sampled colour, refresh the address, open the display settings, run the batch file. Your own cards sit at the bottom of the panel: small .ini skins you write yourself (see Widgets you write yourself below).
Taskbar. Window buttons with live thumbnails, pinning of programs, files and folders, a notification area that other programs can use, volume, network and battery indicators, a calendar flyout and a quick settings flyout (Wi-Fi - including every network in range, with joining and a password prompt - volume, brightness, media keys, power). The start button’s icon is yours to choose - right-click the taskbar > Start button icon for the StarDesktop wordmark (default), the Windows logo, or a picture of your own (PNG/JPEG/BMP/GIF/ICO/TIFF), stored in HKCU\Software\StarDesktop (StartIcon, StartIconPath) and applied at once. It can dock to any screen edge (top, bottom, left, right), show extra bars on several edges at once plus floating bars, auto-hide, change height, and take any colour and opacity. Drag empty space to move / dock / undock a bar, drag pins to reorder within and across bars, and drop files onto any bar to pin or open-with. Every extra monitor gets the wallpaper and its own taskbar, and can host its own docks and floating widgets.
Taskbar menus. A taskbar button can be a list instead of a single program (right-click a pin > “Show as a menu”). Build the menu yourself - “Edit this menu” adds a file, program or shortcut, a folder, a sub-menu (menus nest, any depth) or a gap, and can rename, trim or empty it - or let a folder menu list a folder live: right-click the taskbar > Menus > “Add a folder menu…”, and its sub-folders become sub-menus, so a whole drive is browsable from the bar. Menus and their items wear real icons and the button shows a chevron. Drag files onto a menu button to add them to it; drag them onto a folder-menu button and the shell copies them into the folder. “Add a gap to the right” inserts a narrow spacer to group buttons. Menus live in HKCU\Software\StarDesktop (Menus, Menu<id>, MenuName<id>), and a pin’s kind is written into its launch string (menu:<id>, folder:<path>, spacer), so pin lists from older versions keep working.
Jump lists. Right-click a taskbar button for its jump list: the documents of that program you opened most often and most recently, plus Open, Run as administrator and Select file. Windows keeps another program’s list in a private format with no way to read it, so StarDesktop keeps its own per program under HKCU\Software\StarDesktop\RecentByApp - a document opened from the desktop, the launcher or a pin is remembered with its open count and time, and “Clear” empties the list.
Grouped buttons and the overflow chevron. The windows of one program share a single taskbar button that carries their count: click it to walk through the group (the window in front is followed by the next, wrapping around; clicking the one in front minimises it), and right-click it for Grouped windows (activate any of them) and Close a grouped window. When the bar runs out of room the buttons shrink to their minimum width and what still does not fit moves behind a chevron at the end of the row - click it for the list. Taskbar menu > “Combine windows of one program into one button” turns grouping off and gives every window its own button again.
Notifications. A balloon from any program is also kept in a notification center: Win+N, a right-click on the clock, “Notifications” in the taskbar menu, or notifications in the launcher. Click a row to send the program the same message it gets when you click its balloon, the x dismisses one, “Dismiss all” clears the list. The footer has “Do not disturb” (setting Dnd): while it is on, or while a fullscreen program runs, a notification is recorded without a balloon. The list survives a restart.
Clipboard. Win+V opens the clipboard history, which keeps copied text, files and pictures and survives a restart. Pictures are stored as PNG under %LOCALAPPDATA%\StarDesktop\clips and pasted back as a real bitmap, file lists are pasted back as files. Type to filter the list, Ctrl+P pins an entry (pinned entries are labelled “Pinned”, sit at the top and are never pushed out), Ctrl+S saves the selected entry as a reusable snippet (Win+Shift+V), and Enter pastes it into the window you came from.
Shortcuts you can change. Every Win+ shortcut is rebindable: open the settings window (Keys tab) or type :hotkey, click a row, then press the combination you want. Right-click a row to switch that shortcut off, and “Reset all shortcuts” restores every default. Win+1..9, Win+Ctrl+Left/Right/1..9, the Win tap, Alt+Space, Alt+Tab, Win+Tab and Ctrl+Alt+R stay fixed.
Two languages. The settings window, the notification center, the jump list and the shortcut names are translated into English and Chinese (simplified); switch in General > Language or with :lang. Anything not translated yet falls back to English, and the string table is one line per string, so adding a language is mechanical.
Sticky notes. The widget panel’s Notes applet opens floating notes on the desktop: a coloured title bar (new / colour / close), a multi-line editor, and a corner grip to resize. Drag the title bar to move one, cycle six colours, and open as many as you like - position, size, colour and text are saved as you go and restored on the next start. The card lists them (click a row to bring one forward). Win+Shift+G makes a new note from anywhere.
Window effects. Win+Ctrl+T keeps the foreground window always on top, Win+Ctrl+PgUp / PgDn fade it in 20-point steps, and Win + wheel over a window does the same. They work on any program through its own style bits, and StarDesktop removes the layer bit again when it exits. Also on the desktop right-click menu under Active window.
Launchpad. Win+Shift+B covers the screen with every app at once, the way a Mac opens one - or click the 3x3 grid icon in the start-menu footer, right-click the desktop or the taskbar, or type :launchpad. The grid is derived from the screen (8 columns by 5 rows on a 1920x1080 panel, 5 by 2 on a small one) and opens on the monitor the pointer is on. Type to filter - keystrokes go straight into the field at the top, the grid re-filters as you type and the first match is selected, so Enter opens it without touching the mouse. Arrows move the selection, Tab / PgUp / PgDn and the mouse wheel turn the page, Esc or a click on the backdrop closes it, page dots appear when there is more than one page, and a small accent dot under an app means it is already running. The backdrop is your desktop, blurred (captured once when it opens, scaled down and back up), so the launchpad reads as a layer over the desktop rather than as another panel. Drag a tile onto another and the two become a folder (click it to open its page, right-click it to rename or ungroup); drag it to the left or right third of another tile and it is inserted there. The arrangement is remembered in the registry as you go (LpLayout), and an app the layout does not mention is appended alphabetically, so nothing new ever goes missing. A folder can wear the icon of its first app instead of the 2x2 mini grid: right-click the folder > “Use the first app’s icon” and it becomes a single tile that launches that app (right-click again to go back to a folder). Drop a tile on the taskbar or a dock and it becomes a dock item there (hold and drag to the strip, a caption tells you to release to put it on the dock). Drag a tile onto a page dot and it moves to that page - the dot lights up as you hover. And the whole setup - launchpad arrangement, your custom zones and every dock - can be saved to one file and brought back: see Export and import your layout below.
Resizable flyouts - every one of them. The quick settings panel (Win+A), the notification centre (Win+N), the appearance panel (Win+Shift+T), the calendar flyout (click the clock) and Quick Look (Space on a file) all have a corner grip: drag it and the panel reflows rather than stretching (quick settings goes 4 / 3 / 2 columns with the width, its power row stays on the bottom edge; the appearance panel’s tabs, pills and swatches resize with it; the calendar’s seven columns and six rows grow and its day numbers and today-circle grow with them; Quick Look shows a bigger picture, more icons per row and more lines of text). Each remembers its own size in the registry and is clamped to a usable range, so nothing can be dragged down to nothing and nothing overlaps at any size. A floating widget skin resizes from its own bottom-right corner, and dragging anywhere else still moves it.
4.29.0. The launchpad now opens with a Recents row above the grid - your most-used apps, the same list that feeds the start menu’s Recent strip - so the things you open daily are one click from the top; it hides itself while you search or inside a folder, and the grid simply moves down to make room. You can also drag a file from Explorer onto a folder tile (or an open folder) to keep it as a shortcut tile inside that folder, opened with the shell and wearing the file’s own icon. Mission Control gained desktop renaming - double-click a dot, or press F2, to name a desktop, and while you type 1–6 gives it an accent colour (0 clears it) - and a row of monitor chips so you can drag a card onto another screen. Win+Z with no window now shows a full-screen zone preview, the zone editor takes the keyboard (arrows nudge, Shift+arrows resize, Tab cycles the zones, Delete removes), and its Templates button saves your own named layouts. Importing a layout now opens a preview with Replace or Merge, and the exported file carries the UI mode, the accent and the whole hotkey map - a complete snapshot of how your shell behaves, not just where your icons sit.
4.30.0. Each virtual desktop can carry its own wallpaper (right-click a desktop tile in Mission Control > Set wallpaper for this desktop…), falling back to the global picture when it has none. The launchpad has a visual edit mode - Ctrl+E (or right-click empty space / a tile > Edit layout…) - that lets you drag a tile onto a folder to add the app and reorder the tiles inside an open folder, with an accent bar and an editing banner to show you are in it. Saved zone profiles are now named when you save them, with rename and delete submenus in the Templates menu. There is a full registry backup / restore - desktop menu > Back up all settings… / Restore all settings… - that snapshots every value under HKCU\Software\StarDesktop to one file and restores it (then restarts the shell), a stronger tool than the layout export. Auto-hide docks now slide in from their edge, the launchpad Recents row is walkable from the keyboard, Mission Control gives minimised windows a live thumbnail where Windows provides pixels, Personalize gained Auto (time of day) for a scheduled light/dark theme, and every string the shell shows can be overridden from %APPDATA%\StarDesktop\lang.ini (English = your text) without touching the code. Win+Ctrl+Shift+Left / Right now wraps around the ends when it sends a window to the next desktop.
4.31.0. The launchpad search now looks inside folders - an app that lives in a folder is matched too, and a hit says which folder it came from, so you never have to open a folder to launch from it. Mission Control’s search matches your recent documents as well as titles and executables, so the spreadsheet you had open yesterday is findable. Every secondary display can wear its own accent colour (right-click its taskbar > Accent for this display), resolving display -> desktop -> global. The string editor (Settings > General > Translate the shell…, or the taskbar menu) lists every string the shell shows and writes lang.ini for you as you type, and the start menu’s Recent strip is configurable - off, 3, 6, 9, 12 or 18 entries - with pin and remove on a right-click. A desktop’s whole look (accent, wallpaper, zones) can be saved as a named profile and restored on any desktop. Window rules (Win+Shift+R) say per program: always on top, how transparent, and which virtual desktop it opens on. Taskbar buttons group the windows of one program into one button you click through, and when the bar runs out of room the extra buttons move behind a chevron. Win+Shift+V opens a clipboard snippet library of texts you save and paste where you last typed. And the Alt+Tab switcher takes its tile size, glass and footer from the UI mode, so it matches the rest of the shell.
4.32.0. A window rule can now name one window instead of the whole program - right-click a taskbar button > Window rule for this window only… and the rule keeps the window’s title, so the program must match and the title must match, and such a rule beats the program’s own (WinRules lines grew to exe|top|desk|opacity|notop|mon|title; old four-field lines still load). Two new rule actions arrived with it: open on this screen (a rule can move a window to the monitor the pointer is on when it appears) and never covered (a rule with notop keeps its window above even other programs’ always-on-top windows, re-asserted whenever a topmost window takes the foreground). Every secondary screen’s taskbar can now wear its own colour scheme, opacity and height - right-click that screen’s taskbar > This display’s taskbar and pick, or Follow the shell for each of the three (MonBar<i>, one packed byte-triple per display). Hovering a grouped taskbar button no longer shows one window: it shows a small grid of every window in the group (up to four), each cell with its own title strip and its own close box - click a cell to switch to that window, click its close box to close just that one. The snippet library (Win+Shift+V) groups snippets under their folder’s title and grew a filter box that narrows the list by name, text or folder; the New / Edit prompt has a folder field, and storage is name<TAB>folder<TAB>text per line (old folder-less snippets load unchanged). Select a clipboard-history row in the launcher and press Ctrl+S and the text becomes a reusable snippet on the spot. And your window rules travel with the layout: the export/import file carries them as RULE lines (escaped like every other line), and merging a layout adds its rules without duplicating the ones you already have.
4.33.0. The desktop can group its icons into fences - boxes you draw: right-click the desktop > Group icons into stacks > Fences (boxes you draw), then New fence, and a titled, translucent box appears (its name selected for renaming). Drag the title bar to move a fence, drag its bottom-right corner to resize it, click the bar to roll the whole fence up into it and again to open it; right-click a fence for Rename, Roll up, Move fence to page and Delete (its icons simply become free icons again). An icon belongs to a fence by name, like icon positions: dropping it inside a fence makes it a member wherever the fence later moves, and a refresh or restart keeps every icon in its fence. In Fences mode the desktop has four pages: Ctrl+Wheel on the desktop turns them (the menu has them too, with each page’s fence count), and a fence or a free icon can be moved to another page from its right-click menu - the view follows it there (DeskPage, IconPage). Rest the pointer on a desktop folder for half a second and a small popup peeks inside it: an icon grid of the first nine entries and the total count, a click on a cell opening that item and a click on the title opening the folder. The widget panel gained two applets: a media transport card (Prev / Play / Next / Stop, reaching whatever media player is listening the way a keyboard’s media keys do) and a weather card (temperature, sky and place from wttr.in, no key, located by your IP, refreshed on a background thread every 30 minutes; click the card for the full forecast, and while offline it says so and retries every five minutes).
4.34.0. The shell finally moves: popups fade in, a fence rolls up into its title bar along an eased curve and turning a desktop page crossfades through the old one - all behind one switch, Personalize (or the desktop menu) > Animations (menus, fences, page turns). Rest the pointer on the taskbar’s overflow chevron and a strip appears above the bar listing the buttons that no longer fit, each with its icon and title, one click from the window. The launchpad search ranks what you type - an exact name first, then a prefix, then a substring, with folder-name hits between and your most-used apps floating up. The first start shows a welcome tour: one page of the four shortcuts worth knowing, each with its live binding, dismissible with Got it (and re-openable from the taskbar menu). A fence you drag or resize by hand now snaps to whole cells of the icon grid, and its menu grew Snap the box to the icon grid. The media transport card gained a now-playing line read out of the player’s own window title, and the weather card an hourly strip plus a place of your own (right-click > Set the place…, WxPlace). The snippet library takes a drag onto a folder title to file a snippet and a double-click on a folder title to rename it, with every snippet inside following. Mission Control’s right-click menu offers a window rule for that window, and a window rule can now name a window class, a fragment the title must contain and one screen only (WinRules grew to ten fields; older lines still load). Each of the four desktop pages can wear its own wallpaper and fill mode, falling back to the desktop’s when it has none.
4.35.0. Two new shortcuts sit beside Ctrl+Alt+R: Ctrl+Alt+I throws the icon and thumbnail caches away and refreshes - the shell’s own iconcache_*.db and thumbcache_*.db files are deleted (only those, and only the ones not held open), SHCNE_ASSOCCHANGED makes Windows rebuild its cache, and the desktop re-reads every icon - and Ctrl+Alt+N creates a New Text Document.txt on the desktop with its name selected, taking the first free name so nothing is overwritten. Both are on the desktop menu too. The launchpad now keeps a Recent searches strip of chips above the grid (newest first, deduplicated, only searches that actually opened something) and runs one again on a click. Snippets grew placeholders - {date}, {longdate}, {time}, {datetime} and {clipboard} - expanded when the snippet is pasted, so a dated template is always today’s. A fence can wear its own colour and opacity (right-click > Appearance: six tints plus the theme’s, four opacity steps; a pre-4.35.0 fence line still loads). The weather card draws a chance-of-rain bar under every hour of its strip. A Mission Control card dragged onto a fence turns that program into a tile in that fence. And a window rule can keep office hours - an eleventh field, 540-1020, with a Hours button that cycles any / 09:00-17:00 / 08:00-18:00 / all day / your own - and outside those hours the rule stops applying and undoes what it had done.
4.36.0. A new shortcut joins them: Ctrl+Alt+T opens a terminal - wt.exe -d "<dir>" (Windows Terminal) in the folder of the program you are working in, else the desktop, else your profile, falling back to powershell.exe then cmd.exe. A fence can now wear the accent of the desktop it sits on (right-click > Appearance > Accent colour (follows this desktop)), so it recolours as you switch virtual desktops, keeping its own opacity. Snippets take single lines and ranges off the clipboard: {clipboard:N} and {clipboard:A-B} join {clipboard}, all expanding at paste time. The launchpad’s Recent searches can be pinned to the front of the strip (an accent edge + dot, right-click to unpin or clear all). A window rule gained a power-source field - mains only or battery only - so a window can pin itself at your desk and stand down when you unplug (WinRules is now twelve fields, older lines still load). In Mission Control, hold Ctrl while dropping a card on a desktop dot to move every window of that program at once. The cache controls also moved into Settings > Desktop as three buttons (icons, thumbnails, both), and the desktop New submenu now groups Folder / Text document / Shortcut / Fence with an Open a terminal here.
4.37.0. The Personalize menu (desktop and taskbar) gained a Windows XP / 11 looks submenu with five one-click looks - Windows XP - Luna Blue, Luna Silver, Luna Olive, Windows 11 - Light and Windows 11 - Dark - each a ready-made bundle of layout mode, colour scheme, custom colour, light/dark and aero (ApplyThemePack). StarDesktop can now wear a recognizable Luna or Windows 11 flavour without editing the registry; faithful XP (gradient taskbar, green Start orb) and Windows 11 (centred taskbar, Mica) layouts are a separate, larger effort.
Flyouts from the keyboard. None of the three flyouts needs a mouse. Up / Left and Down / Right / Tab walk a keyboard cursor over the controls in reading order - a thin accent ring marks where it is - and Enter or Space presses the control under it. On the volume and opacity sliders the arrows nudge the value 5% instead of moving on; in the notification centre Enter opens a notification and Delete dismisses it without opening; Esc closes the panel. The password prompt for a new network is a three-stop walk (field, Connect, Cancel).
Joining a Wi-Fi network. The quick settings flyout lists every network in range, not just the profiles you have saved - saved ones first, then by signal strength, each with its strength and a padlock when it is secured. Pick a saved network and it connects; pick an open one and it joins; pick a secured one you have never used and the panel turns into a small password prompt that creates the profile and connects. A key under eight characters is refused with a notification. The list follows the radio: no Wi-Fi, or airplane mode, and it stays empty.
Settings window. Right-click the taskbar > “Settings…”, or shellsettings in the launcher. Five tabs (General, Taskbar, Desktop, Keys, About) hold every setting the menus offer: theme and accent, language, do-not-disturb, previews, drag snapping, file manager, taskbar height, edge, auto-hide, colour and opacity, virtual desktops, crash recovery, shell-extension safety, icon overlays and the keyboard shortcuts. The window is resizable and remembers its size, every tab scrolls, and the search box at the top finds a setting by label, hint or current value across all tabs. The About tab shows the version, the state of file search, the size of the start-menu index and whether this copy is the registered shell.
Start menu and launcher. The start menu has a search box; Alt+Space opens the same search as a centred launcher. When idle, the menu shows your most-used apps in a Recent strip followed by the full app list grouped alphabetically under per-letter headers (the app column scrolls with the mouse wheel). As you type, the part of each result that matches your query is highlighted in the accent colour and bold. It finds programs, files and folders (through Everything), runs commands, calculates, converts units and currencies, previews colours, switches windows and keeps a clipboard history. See the table below for the syntax.
Metro style. Win+Shift+B (Metro tablet mode) not only relayouts for a finger, it also switches the desktop to a dark-teal Windows 8 style wallpaper with bokeh circles and the start menu to a tile grid (4 columns of accent-coloured square tiles, with your user name and the version on the right). Toggle it off and the wallpaper and the row list come back.
Windows 7 style start menu. The third start-menu layout is the classic Windows 7 / OpenShell menu: your account picture in the header, pinned programs on the left, jump links (Documents, Pictures, Music, Recent Items, This PC, Control Panel, Settings, Run…) on the right, All Programs to expand the full app list, and the search box at the bottom above the power buttons. Pick a layout in Settings > General > Start menu layout (Classic / Metro / Windows 7), on the appearance panel’s three pills, with :ui classic|metro|win7, or by clicking the footer icon / Win+Shift+B, which cycles all three - the start menu stays open while it switches, re-laying itself to the new width and contents under the cursor.
Start menu size. Drag the bottom-right corner of the start menu to resize it (the right or bottom edge changes one dimension). Or pick a size in Settings > General > Start menu size (Auto / Small / Medium / Large), or type :menusize auto|small|medium|large|900 in the launcher. Your size is remembered.
Quick controls in the start menu. The bottom-right of the footer holds a gear (opens Settings) and a layout icon (cycles the classic, Metro and Windows 7 UIs on the spot; the glyph shows which one is live). The same switch is Win+Shift+B and on the desktop right-click menu.
Docks, as many as you want. Win+Shift+D (or right-click the taskbar > Dock > Show all docks, or :dock in the launcher) opens a floating dock above the taskbar. It holds apps (click to launch, a dot shows which ones are running), folder stacks (a click pops up that folder’s contents), separators, and live widgets: a clock, live CPU / RAM bars, a 2x2 quick-toggles tile (dark mode, taskbar transparency, quick settings, start-menu layout) and a search tile. Hovering magnifies the icons like a real dock, drag an item sideways to reorder it, and Right / Left with Enter works from the keyboard. Right-click the dock for icon size, labels, auto-hide, the edge (bottom / top), alignment (left / centre / right) and to add, remove or reset items. A dock goes where you put it: grab the three-dot grip at its leading edge (or any empty part of it) and drag - drop it near the bottom or top edge and it snaps back into a strip, drop it anywhere else and it floats right there. More than one: taskbar > Dock > New dock (or right-click a dock > New dock), up to 8, each with its own items, size, edge and alignment; Rename this dock and Remove this dock are in the same place. Everything is remembered - including profiles: right-click > Profiles > Save the current dock as a profile…, name it, and switch between saved layouts (Work, Quiet, Media…) at any time; rename or delete one from the same submenu. A profile stores its own items and keeps following your edits while it is live; up to 12 are kept. Type :dock quiet in the launcher to switch to one by name, or :dock on its own to show or hide the docks. A dock can live on any screen: right-click it > Move to screen (the submenu appears when you have more than one display and ticks the one it is on), or just drag it onto another monitor - it re-homes there, and from then on it is placed, aligned and auto-hidden against that screen, so it slides off the second monitor’s edge instead of the first. The screen is remembered by device name, so a dock survives Windows renumbering your displays, and one whose monitor is gone comes back to the first screen. Upgrades keep the dock you already had.
Widgets you write yourself. Next to the built-in applets the widget panel shows your own cards, Rainmeter-style. A card is one small .ini file in %LOCALAPPDATA%\StarDesktop\widgets - right-click the desktop > Custom widgets > New widget…, and it opens in your editor; save it and the panel picks the change up within a few seconds. Set the name, height, font size, colour and alignment, and write the body as a template: %time% %date% %weekday% for the clock, %cpu% %ram% %up% %ip% %user% %host% for the machine, %free:C% / %used:C% for drive space, %% for a percent sign. Pull text in from outside with source=file (the first lines= lines become %data%) or source=command (runs off the UI thread, cached for interval= seconds, 10-second cut-off), and give a card a click action: run a program, open an address, copy its text. The same menu lists every card with a tick to show or hide it, plus Reload widgets and Open the widgets folder; two starter skins and a README.txt documenting every key appear the first time. A skin can float instead of sitting in the panel: add float=1 and the card becomes its own small always-on-top tile with transparent corners, which you drag anywhere - including onto another monitor - with width= (100-800 px), x= and y= setting where it first appears, and whose bottom-right corner resizes it once it is on screen. Its position and size are kept in the registry, so your .ini is never rewritten; right-click it for the same menu (edit, re-read, hide), and float=0 puts it back in the panel.
Mission Control. Win+Shift+W (or the taskbar / desktop menu, or :mission) spreads every window of the desktop you are on across the screen as live thumbnails - each card keeps the shape of the window it shows, the way Exposé looks. Click a card to bring that window forward (a minimised one is restored first), or walk the grid with the arrow keys and press Enter. The row of desktop dots underneath is your virtual desktops: click one to go there, or drag a card onto a dot to move that window to that desktop. Windows on other desktops are left out, Esc closes it, and any other shortcut closes it first. Type to filter the cards by title or executable name - the field at the top takes keystrokes straight from the keyboard, the grid narrows as you type, and Backspace / a second Esc clears the search. A “This screen” chip (top-right) shows only the windows on the monitor the pointer was on when Mission Control opened, dimming the rest - click it to toggle the filter. And every card carries a small close × in its corner: click it to close that window (a minimised one is restored and then closed), and the card disappears from the grid.
Window management. Snap by dragging to an edge or corner, snap layouts (Win+Z), Windows-style Win+Arrow snapping, a thumbnail Alt+Tab switcher, nine virtual desktops with their own strip on the taskbar, and hot corners. Win+Z now also carries your own tiling zones (the FancyZones idea): a mini monitor under the six presets shows them, one click puts the window in one, and Edit zones… opens a full-screen editor where you drag out rectangles - move them, pull their edges, right-click to delete, Clear all, and now a Templates button that stamps ready-made layouts (Halves, Thirds, Main + 2 stack, Main + 3 stack, Grid 2x2, Grid 3x2) onto the screen you are editing. Zones are kept per monitor in per mille of the work area (Zones<i>), so a resolution change does not lose them, and they snap through the same path as the presets, so Win+Down still restores the window’s old size. :zones opens the editor on its own. Drop a window into a zone the same way FancyZones does: hold Shift and drag a sizable window; when it is over one of your zones a highlight shows where it will land and releasing snaps it exactly there (drop it outside any zone and the drag is just a normal move). And Win+Alt+1..9 snaps the foreground window straight into zone 1..9 of the monitor it is on - no mouse needed.
Export and import your layout. Right-click the desktop > Export my layout… writes one file that captures everything you have arranged: the launchpad arrangement (LpLayout), your custom zones for every monitor (Zones<i>), and every dock with its items and profiles (DockCfg, DockItems<i>, DockProfs, DockProf<i>). Bring it back on any machine with Import a layout… (also in the desktop menu), and the launchpad, zones and docks are restored exactly - including any single-icon folders you set. It is a plain text file (header StarDesktop layout 1) you can read or hand-edit, and it is the quickest way to move your whole desktop setup to another PC or to keep a snapshot before you experiment. For an even fuller snapshot, Back up all settings… in the same menu writes every value under HKCU\Software\StarDesktop to one file, and Restore all settings… brings the whole shell’s state back (then restarts it).
Robustness. A supervisor restarts the shell after a crash or hang, third-party shell extensions are fault-isolated, and crashes are written to crash.log. A set of recovery options sits in the taskbar menu under “Crash recovery”.
Updates (opt-in). Setting UpdateCheck plus UpdateUrl (a GitHub Releases API URL, or a text file whose first line is the version and second line the page) makes StarDesktop look for a newer release at start-up on a worker thread. When one exists the taskbar menu grows an “Update available: ” entry and a notification points at it. :update in the launcher reports the state, :update <url> sets the source. The check never installs anything - it opens the download page in your browser, because replacing the files of a shell that is running is not something it should do behind your back.
Launcher syntax
| You type | You get |
|---|---|
| a name | programs, files and folders; Everything operators work (ext:pdf invoice, size:>1gb) |
> dir or >> Get-Process |
run in Command Prompt or PowerShell, or show the output in a preview window |
= 2+2*3, 20% of 150, sqrt(2) |
a calculator with history (= lists it, ans is the last result) |
5 km to mi, 100 usd to eur |
unit and currency conversion |
#ff8800, rgb(255,136,0) |
colour preview in hex, rgb and hsl |
? text |
web search |
:lock, :vol 40, :dark, :qs, :everything … |
commands; : alone lists them |
clip, note text, kill name, w text |
clipboard history (text, files and pictures), notes, end a process, switch to a window |
:hotkey, :lang |
rebind the shortcuts (Keys tab), switch the language |
:update [url] |
report the update state, or set the update source |
:export / :layout |
save the whole setup (launchpad, zones, docks) to a file |
:import |
load a saved layout file back |
In the result list: Enter opens, Ctrl+Enter runs as administrator, Shift+Enter opens the containing folder, Alt+Enter shows properties, F3 toggles the preview pane, Ctrl+Space opens Quick Look, Ctrl+D pins to the desktop, Ctrl+P pins to the taskbar, and a right-click gives the shell menu.
5. Keyboard shortcuts
| Keys | Action |
|---|---|
| Win | start menu (tap again to close) |
| Alt+Space, Win+S, Win+Q | launcher |
| Win+E / Win+Shift+E | file manager (FModModern by default) / Windows Explorer |
| Win+V | clipboard history |
| Win+N | notification center |
| Win+A | quick settings |
| Win+Z, Win+Arrows | snap layouts, your custom zones and zone templates, snap the active window |
| Win+Alt+1 … 9 | snap the active window into custom zone 1..9 of its monitor |
| Win+Shift+W | mission control: every window of this desktop at once (type to filter, “This screen” chip, close ×) |
| F2 (in Mission Control) | rename the focused desktop (type a name; 1–6 sets its accent colour, 0 clears it) |
| Win+Ctrl+Left / Right / 1-9 | switch virtual desktop (add Shift to move the window) |
| Win+1 … 9 | taskbar buttons |
| Alt+Tab, Win+Tab | window switcher |
| Win+D, Win+M, Win+Shift+M | show desktop, minimize all, restore all |
| Win+R, Win+X, Win+I, Win+P, Win+Pause | Run, power user menu, Settings, display switch, System |
| Win+T | taskbar solid / transparent |
| Win+Shift+T | taskbar colour and opacity panel |
| Win+Y / Win+Shift+Y | next / previous taskbar colour |
| Win+PgUp / PgDn | taskbar more opaque / more transparent |
| Win+Ctrl+T | keep the active window always on top |
| Win+Ctrl+PgUp / PgDn, Win+wheel | fade the active window in / out |
| Win+Shift+G | new sticky note |
| Win+Shift+B | launchpad (every app at once) |
| Ctrl+E (in the launchpad) | edit layout: drag tiles to arrange, drop an app on a folder to add it |
| Win+Shift+U | start menu layout: classic / Metro / Windows 7 |
| Win+Shift+D | show or hide every dock |
| Win+Shift+C | custom taskbar colours on / off |
| Win+Shift+L | StarDesktop light / dark |
| Win+Shift+R | window rules: always on top, opacity, the desktop a program opens on |
| Win+Shift+V | clipboard snippets: save a text, paste it where you last typed |
| Ctrl+Alt+R | restart the shell |
| Space (desktop icon selected) | Quick Look |
| Ctrl+P (in the Win+V panel) | pin / unpin the selected clipboard entry |
| Ctrl+S (in the Win+V panel) | save the selected clipboard entry as a snippet |
| F5, F2, Del, Ctrl+A / C / X / V | refresh, rename, delete, select all, copy, cut, paste on the desktop |
Every shortcut in this table except Win+1..9, Win+Ctrl+Left/Right/1..9, the Win tap, Alt+Space, Alt+Tab, Win+Tab and Ctrl+Alt+R can be changed: settings window > Keys, or :hotkey.
6. File search (voidtools Everything)
File and folder search is done by voidtools Everything, a free search engine that indexes your drives in seconds. It needs two parts: the Everything program, and the SDK DLL next to StarDesktop (Everything64.dll, or Everything32.dll for the 32-bit build).
When either is missing, the launcher shows a row at the bottom of the results saying so. Press Enter on it to download what is missing from voidtools.com; an inline progress bar shows how far it is. The DLL is loaded straight away, and the Everything installer opens for you to finish. Shift+Enter hides the row, and typing :everything shows it again.
7. Using it as your default shell
Right-click the taskbar, then “Default shell and alternate shell”. “Make StarDesktop the default shell (this user)” writes the program’s path into HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell, so Windows starts StarDesktop instead of Explorer at your next sign-in. The all-users option does the same under HKLM and asks for administrator rights. Both restore the old value from the same menu.
Safety nets: exiting StarDesktop while it is the only shell asks whether to start the alternate shell (Explorer by default), holding Shift while signing in starts the alternate shell instead, and five crashes within a minute start it automatically. If the registered file is ever moved or deleted you get a black screen: press Ctrl+Alt+Del, open Task Manager, choose Run new task, start explorer.exe, then restore the shell from the menu or delete the Shell value. Try this on a spare account first.
8. Settings, logs and troubleshooting
Settings are stored under HKCU\Software\StarDesktop (taskbar colour and height, hot corners, virtual desktops, file manager, the shortcut bindings Hk*, the clipboard history ClipHist, the language Lang, and so on). The taskbar menus change them, and the settings window (right-click the taskbar > “Settings…”) shows the same values in one place, so there is normally no need to edit the registry. %LOCALAPPDATA%\StarDesktop holds crash.log, protocol.log, rates.txt (cached currency rates), clips (pictures from the clipboard history) and any downloaded Everything64.dll.
If something crashes, the newest part of crash.log names the module involved; open it from the taskbar menu under “Crash recovery”. “Safe shell extensions” restricts the shell to Microsoft-signed DLLs. Start with --bare to run without any shell extension and --nowatchdog to run without the restart supervisor. StarDesktop.exe --self-test checks the parts a release is most likely to break and writes selftest.log (see section 3).
If a window goes missing after using virtual desktops, set the number of desktops to 1 (right-click a desktop box on the taskbar) and everything comes back.
9. Files in this folder
| File | Purpose |
|---|---|
main.cpp, version.h, version.rc, app.manifest |
the program |
build-all.bat |
the whole release: 64-bit + 32-bit + installer + self-test |
build.bat, build32.bat |
64-bit and 32-bit builds |
build-installer.bat, sign.bat |
the installer into dist\, and optional Authenticode signing |
assets\ |
icon (StarDesktop.ico, PNGs), installer images and make_icon.py, which draws them |
installer\ |
Inno Setup script, install.bat, Paquet Builder notes |
CHANGELOG.md |
every release and what is unverified |
LICENSE |
the MIT license |
StarDesktop is made by Nossy Drelich. The voidtools Everything program and SDK are the property of voidtools and are not part of this package.
10. License
StarDesktop is open source under the MIT license - see LICENSE. In short: use it, change it, ship it, sell it, as long as the copyright notice and the permission notice stay with it, and with no warranty of any kind.
Two things that license does not cover:
- The voidtools Everything program and SDK (
Everything64.dll/Everything32.dll). They are not part of this package and keep their own license; StarDesktop only loads them when they sit next to the exe. - The name and the icon, if you publish a modified build. Fork the code freely, but call your fork something else so people do not report its bugs here.
If you would rather have a copyleft license (GPL-3.0) or one with an explicit patent grant (Apache-2.0), say so - swapping the file is a one-commit change.