# WindowsVirtualDesktopHelper: the virtual desktop indicator Windows does not have

> WindowsVirtualDesktopHelper is a small .NET Framework application that adds the missing pieces to the Windows virtual desktop feature, an indicator showing which desktop you are on, its number and its name, plus hotkey mapping and a config file. It ships as an MSI, as a portable zip and as a Scoop package, and it is not code-signed, which is the first thing a security conscious user has to think about.

**dankrusi/WindowsVirtualDesktopHelper** — App to help manage Virtual Desktops for Windows 10 and Windows 11

- Repository: https://github.com/dankrusi/WindowsVirtualDesktopHelper
- Stars: 974 · Forks: 63
- Language: C#
- License: NOASSERTION
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/dankrusi-windowsvirtualdesktophelper

## The indicator Windows leaves out

Windows has had virtual desktops, the feature that lets you keep separate sets of windows and switch between them with a keyboard shortcut or the task view, since Windows 10. What it has never had is a visible answer to the question of which desktop you are on. The desktop is a numbered concept in the API and in the shortcuts, but nothing on screen says it.

WindowsVirtualDesktopHelper is described as a simple and lightweight app to help with virtual desktops on Windows 10 and Windows 11, and the README is direct about the reason: some important features are missing, such as displaying which desktop you are on when switching. The app's own feature list is short. It shows the desktop number in the notification area, shows the desktop name when you switch desktops, shows the previous and next desktop through icons in the notification area, and shows the desktop initial. On top of that it offers custom hot keys for virtual desktop actions, autostart with Windows, and a claim to be simple, lightweight, configurable and free.

The notification area part is a deliberate design choice. The app lives in the system tray, alongside the clock and the volume control, which means the current desktop is visible without a key press and without a window that could get in the way. The prev and next icons in the same area are a second route to switching, next to the hot keys, so you have a pointer based path and a keyboard path.

The target user is someone who lives in virtual desktops, and the app is a utility rather than a platform. It does not create desktops, it does not manage window placement, and it does not try to replace the built-in feature. It makes the built-in feature legible.

## Three ways to install it, and the .NET requirement

The requirement is the Microsoft.NET Framework 4.7 or higher, and the README's assumption is that most people already have it, since Windows has shipped a version of the framework for years.

That assumption is a design decision, and the FAQ explains it directly. The idea is to make the app as easy and lightweight to run as possible, and since most systems have some version of.NET installed, the project targets a low version to cover as many users as possible. The technical roadmap shows the same instinct elsewhere, with a refactor that replaced the.NET settings loader with its own system, described in the author's own terms as bloated, and with the settings interface and the application interface split apart. Both of those are marked as done.

There are three installation routes. The first is the installer, an MSI called WindowsVirtualDesktopHelper.Setup.v2.0.msi from the releases page, which is the conventional choice. The second is the portable archive, WindowsVirtualDesktopHelper.Executable.v2.0.zip, which you extract and run as WindowsVirtualDesktopHelper.exe with no installation at all, and the README recommends this route specifically for people who want to avoid the installation related warnings. The third is Scoop, the command line package manager for Windows, and the two commands are:

```bash
scoop bucket add extras
scoop install windows-virtualdesktop-helper
```

The Scoop route is worth a second look for anyone who manages their own machines, because it puts the update on the same footing as every other package they install, which is a better answer than remembering to visit a releases page.

For the record, the release history shows v2.0 on 2024-10-25, v1.17 on 2024-10-14 and v1.16 on 2024-01-29, and the repository is not archived with the last push on 2026-07-17.

## The unsigned binary and the Defender warning

The README mentions twice that the app is not code-signed, and the FAQ has two separate entries on it, one about being reported as untrusted and one about being reported as malware. The distinction is worth keeping because the causes differ.

The untrusted warning is the ordinary consequence of running an unsigned binary. The malware warning is connected to the installation option that registers the app to autostart with Windows, since an autostart entry is one of the patterns that security software looks at, and the README says the app may be flagged for that reason. The mitigation it offers for both is the same: typically, after enough users download, install and report the software as safe, the warning goes away, and if you prefer to avoid the issue, use the zip version of the executable rather than the installer.

That is a genuine trust problem rather than a cosmetic one. An unsigned binary from a GitHub release is exactly the shape of thing a security team blocks, and a company endpoint that flags it will block it regardless of the reputation the project builds on the community side. The author has also tied the solution to funding, and the FAQ is blunt about it: with USD 70 in donations per year, the app will be signed.

So the resolution path is a threshold, and the project publishes it. That is unusual candour, and it also means that a user today, in the current state of the releases, should expect an unsigned binary and should verify it themselves rather than trusting the reputation of the download count.

The project is free and accepts donations through PayPal, and the FAQ also frames the whole thing as a funding problem rather than a technical one, which is the honest description of what code signing costs a solo developer.

## Compatibility, and the API churn behind it

The app works on Windows 10 and Windows 11. It does not support Windows 7, Windows 8 or Windows Server, and the README asks readers to report a working or non-working version if they find one.

The interesting part is the reason, which appears in both the compatibility section and the FAQ. Microsoft is constantly changing the API for managing virtual desktops, so with each new Windows version the project has to write a new API wrapper to interface with Windows, and that takes time and is sometimes not easy to integrate. The FAQ says plainly not to expect immediate support for unreleased versions such as Insider builds, and the compatibility section repeats that bleeding-edge insider builds may not be compatible.

This is the real constraint on adopting the app, and it is not the same as a compatibility matrix. The app is not behind because it lacks a feature for a new Windows release, it is behind because the platform surface it sits on is not a stable contract. Virtual desktops are exposed to applications through a Windows API that Microsoft revises, and every revision can mean a new wrapper. A tool that depends on that API inherits the release schedule of the operating system rather than its own.

That has a practical consequence for a team. If you are on the current Windows release and the app works, it will keep working until the next feature update changes something, and you should expect the app to lag by a release or two. The FAQ is honest about this, and the compatibility section says the same thing in different words, but it is the kind of dependency that a procurement conversation needs to cover.

## Configuration: the settings window, the config file and the command line

The README distinguishes the common case from the advanced one. The most common and basic settings are configured through the graphical settings window, and for more advanced configuration and features you can use the config file or command line arguments, which the README notes is new as of version 2.0.

The config file lives in the application data directory, at %appdata%\WindowsVirtualDesktopHelper, for example C:\Users\<USER>\AppData\Roaming\WindowsVirtualDesktopHelper, and it is a .config file. The hot key syntax is the part worth reading, because it is not the usual Windows accelerator notation. Binding a specific desktop is a key combination followed by an equals sign and the desktop name:

```ini
hotkeys.myCustomHotkey1 = "Ctrl + Alt + Shift + D1 = Desktop1"
hotkeys.myCustomHotkey2 = "Ctrl + Alt + Shift + D2 = Desktop2"
```

And the previous and next actions use the same shape with different target names:

```ini
hotkeys.myCustomKey1: "Alt + W = DesktopForward"
hotkeys.myCustomKey2: "Alt + Q = DesktopBackward"
```

The two examples differ in one small way, using an equals sign in one and a colon in the other, which is a hint that the parser is lenient. The action names DesktopForward and DesktopBackward are the ones the app understands, and the desktop names are the ones you have given your desktops, which is why the ability to show the desktop name is more useful than it first appears: the name is what you can use in a hot key binding.

There is a Hotkeys documentation file and a Settings documentation file in the repository under a Documentation directory, and the README points to both for the full list, so the surface is documented rather than discovered. The full list of settings is in the settings documentation, and the changelog is in CHANGELOG.md.

The repository layout matches a classic .NET desktop application: a Visual Studio solution file at the root, Source, Setup and Installers directories for the project and the packaging, Scripts, devtasks for build automation, Documentation and Images.

## The roadmap, the licence and the judgement to make

The roadmap is short and has a clear stated constraint. The goal is for the app to remain simple and lightweight, and within that, the settings interface has more configuration options, a console mode is planned that can be used by scripts, the features are to be made more modular, and the three engineering items already delivered are the settings refactor, command line support for settings and splitting the settings interface from the application interface.

The console mode is the item that would change the character of the tool, because it turns a tray application into something a script can drive, and that is what makes it usable from a keyboard-driven workflow rather than a mouse-driven one.

The licence is recorded as a custom one that GitHub cannot classify, with the terms in a LICENSE.md file at the repository root, so that file is the document to read rather than assuming MIT or Apache-2.0. The FAQ mentions donations to PayPal, and the signing threshold of USD 70 per year, so the project runs on small individual contributions.

The judgement to make is a small one. The app does one thing, does it in the tray, adds a visible indicator and some hot keys, and is free. Its weaknesses are equally clear: it is unsigned, which will block it in some managed environments, it depends on a Windows API that changes, it does not support the operating systems outside Windows 10 and 11, and it has not had a release since October 2024 even though the repository was pushed to in July 2026, which suggests work is happening without a new tagged build.

For an individual who wants a virtual desktop indicator, that trade is good. For an organisation, the combination of an unsigned binary and an API that moves with every feature update is the deciding factor, and the sensible response is to check whether the portable zip passes your endpoint policy before anything else.

## Conclusion

Adopt WindowsVirtualDesktopHelper if you use Windows virtual desktops daily and want to see which one you are on without opening the task view, and install the portable zip rather than the MSI so that you are not relying on an unsigned installer with an autostart option. It is the wrong tool if you need signed software in a managed environment, on Windows Server, or on a build that has just changed the virtual desktop API. Before installing, check whether your organisation blocks unsigned binaries, and read the .config file documentation, because the command line and file configuration arrive in version 2.0 and the hotkey syntax is not obvious from the interface.

## FAQ

### What does WindowsVirtualDesktopHelper add to Windows?

It shows the virtual desktop number in the notification area, shows the desktop name when you switch desktops, shows the desktop initial, and provides previous and next desktop icons in the notification area. It also adds custom hot keys for virtual desktop actions and can start with Windows.

### How do I install WindowsVirtualDesktopHelper?

With the MSI installer from the releases page, with the portable zip that you extract and run as WindowsVirtualDesktopHelper.exe, or with Scoop, which needs the extras bucket added and then scoop install windows-virtualdesktop-helper. The app requires the Microsoft .NET Framework 4.7 or higher.

### Why does Windows Defender flag the installer?

The app is not code-signed, and the installer registers it to autostart with Windows, which is one of the patterns security software looks at. The README suggests using the zip version instead, and the FAQ says the warning typically goes away as more users report the software as safe, with signing planned once donations reach USD 70 per year.

### Does WindowsVirtualDesktopHelper work on the latest Windows 11 builds?

Not always. Microsoft constantly changes the API for managing virtual desktops, so the project has to write a new API wrapper for each new Windows version, and the README says not to expect immediate support for unreleased or Insider builds. Windows 7, Windows 8 and Windows Server are not supported.

### Where is the config file and how do I set a hot key?

The .config file lives in %appdata%\WindowsVirtualDesktopHelper. A hot key is written as a key combination followed by an equals sign and the target, for example hotkeys.myCustomHotkey1 = "Ctrl + Alt + Shift + D1 = Desktop1", with DesktopForward and DesktopBackward as the previous and next actions.

## Sources

- [dankrusi/WindowsVirtualDesktopHelper on GitHub](https://github.com/dankrusi/WindowsVirtualDesktopHelper)
- [Issues](https://github.com/dankrusi/WindowsVirtualDesktopHelper/issues)
- [README](https://github.com/dankrusi/WindowsVirtualDesktopHelper/blob/main/README.md)
- [Releases](https://github.com/dankrusi/WindowsVirtualDesktopHelper/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dankrusi-windowsvirtualdesktophelper
