New
Apps 573Makers 573This week 573
Promote your app−30%
DeskTabs screenshot 1
0views in
the last 30 days

DeskTabs

Desktop app that organises work into tabs

Built with Claude Code

by paehtz · from DEGermany · added Oct 29, 2026
no ratings0 comments
Open app Code

🇬🇧 English · 🇩🇪 Deutsch

A clickable desktop bar for the virtual desktops of Windows 11. It sits in the lower left of the taskbar, one button per virtual desktop, labelled with the desktop's Windows name. Click to switch there; the active desktop is highlighted.

Built by Henning Pähtz as a lean tool for per-project time tracking: one desktop = one client, always a single click away.

DeskTabs, light theme

DeskTabs, dark theme

DeskTabs, register look: a line in the active desktop's colour runs along the taskbar

DeskTabs, sub-project picker above the active tab


⬇ Download

Setup (recommended, 2.7 MB) — a normal wizard: pick a folder (or keep the suggested one), tick autostart, done. No admin rights, and it appears in Apps & features like any other program.

Portable ZIP (0.9 MB) — unpack it anywhere and run DeskTabs.exe. Nothing is installed, nothing is written to the registry; deleting the folder removes everything.

Prefer one line in PowerShell? This downloads the latest version, puts it in %LOCALAPPDATA%\DeskTabs, starts it and sets up autostart:

irm https://raw.githubusercontent.com/paehtz/DeskTabs/main/setup.ps1 | iex

All versions and their release notes are on the Releases page. Windows SmartScreen may warn on first start because the file is not signed: More info → Run anyway.

If Windows blocks the app

DeskTabs is not code-signed yet (a certificate costs money every year; free signing for open source is being applied for). Two different Windows features can react to that:

  • SmartScreen shows "Windows protected your PC". Click More info → Run anyway. This is the common case.
  • Smart App Control says "blocked an app that might be unsafe" and gives you no way to allow it — there is no per-app exception. If your Windows has it switched on, run DeskTabs from source instead: install AutoHotkey v2, download the source as a ZIP (it contains the DLL, lang\ and data\), unpack it and double-click DeskTabs.ahk. Verified on a Windows 11 laptop with Smart App Control switched on: AutoHotkey installs and the script runs with every feature, no warning. Please do not switch Smart App Control off just for this app.

Background

I organise my projects and my time tracking around virtual desktops: one desktop per project, with exactly the windows and the layout I need for it. Switching desktops serves two purposes at once. First, it swaps the entire working context: every window of the project is instantly there. Second, ManicTime, which I use to track my working hours, records the active desktop. In the daily view I can later see precisely when and how long I worked on which project.

For this to stay clean, I need to see at any moment which desktop I am on. In the past I often ran a task on the wrong desktop by accident, which skews the later evaluation and means rework. DeskTabs solves that: a permanently visible bar shows the active desktop, and a direct click switches to it instead of cycling through the Windows shortcut. So I always land in the right context, and the time is attributed to the right project.


Features

  • Live names from Windows: the button labels come straight from the desktops you named in Windows (Task View). Nothing is maintained twice.
  • Dynamic: add or remove a desktop in Windows → the bar adapts automatically within ~1.2 s (or via Tray → "Rebuild bar").
  • Create, rename, remove and reorder desktops right from the bar: New desktop… in the grip menu ≡ (asks for the name and switches there), Rename… and Remove desktop… in a tab's menu. To reorder, drag a tab sideways like a browser tab: the other tabs glide aside while you drag, and Windows (Task View included) takes over the new order. A plain click still switches, Shift + click still sends the active window. Removing asks first and says how many windows move to which desktop, because Windows closes none of them. Colour, icon, abbreviation and the compact setting follow a desktop when you rename it, here or in Windows Task View (DeskTabs recognises each desktop by its Windows ID).
  • Direct jump: a click jumps straight to the target desktop in one step (~100 ms), no stepping through the desktops in between. Measured on 25H2 (26200) the focused window stays where it is; if a build does drag it along, DeskTabs moves it right back. Step-by-step switching (Win+Ctrl+Arrow emulation) is still available via More settings › Jump directly instead of stepping through.
  • Unexpected switches are flagged: when another app pulls you to a different desktop (say, a PDF opens in a reader that lives elsewhere), the new tab flashes orange and keeps a frame until you hover it, and a hint tells you which app is now in front. Your own switches (tabs, wheel, number keys, Ctrl+Win+Arrow, Task View) stay quiet.
  • Send windows to another desktop: right-click a tab and choose Move “…” here to send the window you are working in to that desktop, or press Ctrl+Win+Shift+1 … 0 (with the keyboard shortcuts on). Quickest: Shift + click a tab; Ctrl + Shift + click takes the window along and switches there too. Bring a window here › lists every window of your current desktop. Or simply drag a window by its title bar onto a tab and let go: it moves there and keeps its size and position. You stay where you are.
  • Show a window on all desktops: right-click the grip ≡ and tick Show “…” on all desktops (or All windows of “…” on all desktops for the whole app), or drag the window by its title bar onto ≡, or Shift + click ≡ (just this one window, not the whole app). Drag it onto ≡ again or Shift + click ≡ again, or Shift + click a tab, and it lives on that one desktop only again. A right-click on any tab shows the tick as well; untick it there to keep the window on that desktop only. DeskTabs respects the Windows setting: a window shown on all desktops that you move to a tab loses that setting openly (the tip says so); an app set to all desktops is left untouched.
  • Each desktop keeps its window order: windows shown on all desktops no longer push themselves to the front everywhere. When you come back to a desktop, DeskTabs brings back the windows that were in front there, in their order and on all monitors, and focuses the one you last used. Only the windows that are out of place are moved, in one step. Off under More settings (RestoreZOrder = 0).
  • A timer for one desktop: some tasks belong to one client but make you switch desktops. One example is a phone call during which you look something up on another desktop, another is work that needs tools on several desktops. Without a timer the time log spreads that time over the desktops you visited; with a timer it all belongs to the client whose desktop you started it for, and the note records what it was about. How: right-click their tab › Start timer (or Ctrl+Win+T for the current desktop). A small timer pill runs above that tab, and the time log assigns all that time to this desktop, even while you switch to other desktops; silence at the PC does not count as idle meanwhile. Click the pill twice (or press Ctrl+Win+T again) to stop it. DeskTabs then asks for an optional note (“Call with Christian”) that goes into the time log. A desktop's recent notes are offered as bubbles (click to use, ✎ to rename, asking whether earlier entries in the time log should change too, × to remove, right-click to pin).
  • Back to the last desktop: middle-click the bar or press Ctrl+Win+Backspace to return to the desktop you last worked on (quick pass-throughs don't count).
  • Attention dot: when an app on another desktop flashes for attention, its tab gets a small orange dot until you go there.
  • Visible on all desktops: the bar itself is pinned to every desktop.
  • Light/Dark automatic: follows the Windows theme (taskbar brightness), switchable or fixed.
  • Index prefix: "3 · ProjectName" (can be disabled).
  • Colour coding: a thin colour bar per desktop (tab-indicator style, can be disabled, overridable per desktop). Take the colour from the icon reads the dominant colour out of a fetched site icon and uses it for that desktop.
  • Icon library: a built-in picker over the whole Segoe Fluent Icons font that Windows 11 ships with (1500+ icons), searchable in English and German, with quick filters and a scrollable grid. Click an icon to mark it, then OK (or double-click). The current icon is preselected. Library icons are drawn in the desktop's own colour and stored as [Icons] Desktop = glyph:E713.
  • Desktop numbers: a small numbered badge on the top left of each icon shows which number key jumps there (on automatically while the keyboard shortcuts are on; desktop 10 shows 0). Or use the number itself as the icon: a filled circle in the desktop colour, per desktop via Icon → Number as icon ([Icons] Desktop = number) or for all desktops without an icon of their own.
  • Tab icons: give a desktop an icon from a website (DeskTabs fetches the site icon in the best resolution it can find and caches it) or from your own image file. Right-click a tab → Icon, or set [Icons] Desktop name = URL or path in settings.ini. The bare domain is enough, no https://www. needed.
  • Fluent look: rounded tabs, the active desktop tinted in its own colour (hue kept, lightness from the theme), subtle vertical gradients, hover lightens the tab like the Windows taskbar buttons. The active style is switchable: own desktop colour, uniform accent colour, or a solid fill.
  • Click on the active desktop: opens the sub-project picker if the desktop has sub-projects, otherwise does nothing (a stray click doesn't get in the way). Set ClickActiveTaskView = 1 to open Task View (Win+Tab) instead.
  • Fullscreen auto-hide: hides itself while a fullscreen app is on top on the bar's monitor (a fullscreen video on another monitor does not hide it; a fullscreen app stays respected even when you focus another monitor).
  • Compact levels: full / short / icon, automatic by available width or manual via Ctrl + mouse wheel over the bar. Fits narrow laptop taskbars.
  • Compact single desktops: right-click a tab → Compact (icon only) for projects that rest for a while but stay open. Their tab shows only its icon (or abbreviation/number), the busy desktops keep their full size. Hover a tab that does not show its whole name and a tooltip tells you which desktop it is.
  • Sub-projects for catch-all desktops: one desktop for several small projects (say Web projects) gets a list of sub-projects. Right-click the tab → Sub-project ›, or Alt + click the tab, to pick one (or none), add or remove. A plain click on the active tab slides out a slim picker above it, just for switching. It shows in small grey type under the desktop name and as its own column in the time log; switching sub-project starts a new row, just like switching desktops.
  • Built-in time log: writes how long you stayed on which desktop to a monthly CSV (timelog\desktop-log_YYYY-MM.csv), pauses on lock screen and after 5 min without input. For anyone without a time tracker, and for coding agents that do your billing. See Time log.
  • Time report: menu › Time report… opens an overview of the time log in your browser: browse day by day (← →), or by week, month, year or any range. Each day as a coloured timeline with calls and breaks, plus working time per hour; over longer periods hours per day, days stacked as timelines and your typical spread across the day. Group by desktop, sub-project, day, weekday, or list all calls; compare with the previous period up to the same point in time. Hide desktops, export any table and the single rows as CSV for Excel, and use Print / PDF for a timesheet. Call time counts for the call's client, breaks only between the first and last activity of a day. Works offline, nothing leaves your computer.
  • Right-click menu: right-click a tab to move windows there and for its icon, colour and abbreviation, plus all app settings: View (what a tab shows, icons, numbers, colour bars), Active desktop, Light or dark, Keyboard shortcuts, Language, and under More settings direct jumping, snapping, switch alerts, the attention dot, dragging windows onto tabs and the time log. No file editing needed; everything is saved to settings.ini. The tray icon offers the same menu directly.
  • Help menu: an overview of all keyboard shortcuts and gestures (with your current modifier keys), documentation, changelog, bug report and feature request (opens a pre-filled GitHub issue), e-mail to the author, update check and About DeskTabs (version, licence, links).
  • Updates: once a day DeskTabs asks the GitHub releases API for the latest version number (nothing else is sent). If a newer release exists, a small notice slides out above the taskbar on the left. With the setup install, Update now downloads the new setup, checks it against SHA256SUMS.txt, installs it without the wizard and restarts DeskTabs; the portable and script versions open the download page instead. Close the notice with X and it stays away for the day; it comes back after a restart. Turn it off under More settings (or UpdateCheck = 0).
  • What's new: after an update a card above the taskbar lists the changes of the new version, in your language (data\changelog.<lang>.md). Open it again via Help → New in this version.
  • Live config: edits to settings.ini (abbreviations, colours, level) are picked up within ~1.2 s, no restart. Handy when your AI agent configures the bar for you.
  • Keyboard shortcuts (off by default): jump straight to desktop 1 to 10 with a number key, from the number row or the numpad (the numpad works with NumLock on or off). Combine the modifier keys freely in the menu (Ctrl, Shift, Alt, Win; default Ctrl+Win). The same keys plus Shift send the active window to that desktop (if Shift is not already part of the modifier), and Backspace returns to the last desktop.
  • Mouse wheel over the bar pages through the desktops.
  • Separators between the tabs (off by default, switchable).
  • Movable by the handle ≡ on the left; the position is remembered in settings.ini.

FAQ

How can I see which virtual desktop I'm on in Windows 11? Windows 11 has no permanent indicator. You only see your desktops in Task View (Win+Tab) or when you hover the Task View button. DeskTabs puts one tab per desktop on the taskbar, labelled with the desktop's name, and highlights the active one, so you always know where you are.

How do I switch to a specific virtual desktop with one click? Windows itself offers Task View or Ctrl+Win+Left/Right, which steps through the desktops one by one. With DeskTabs you click the tab and land directly on that desktop, without passing through the others. Optionally Ctrl+Win+1 … 0 (number row or numpad) jumps straight to desktop 1 to 10.

Can I give each virtual desktop a colour or an icon? Yes. Right-click a tab and pick a colour, an icon from the built-in library of 1500+ Windows icons, a website's icon, your own image, or simply its number.

Can I track how long I work on each desktop or project? Yes. If you keep one desktop per project, DeskTabs writes a monthly CSV with every stay per desktop and pauses when the screen is locked or you are idle. Open it in a spreadsheet or let an AI assistant summarise it.

Why does Windows suddenly jump to another desktop? When you open a file whose program already runs on another desktop, Windows switches there without asking. DeskTabs flags these switches: the tab flashes orange and a short hint names the app that is now in front, so no time ends up on the wrong project unnoticed.

Is it free? Does it need admin rights? DeskTabs is free and open source (GPL v3). The setup installs per user without admin rights, and there is a portable ZIP as well.

DeskTabs compared with Windows 11 alone

Windows 11 alone With DeskTabs
See the active desktop at a glance No, only in Task View Always, right on the taskbar
Jump to a specific desktop Task View, or step with Ctrl+Win+Arrow One click, or Ctrl+Win+number
Desktop names Set in Task View Shown live on the tabs
Tell desktops apart Wallpaper per desktop Colour bar, tinted active tab, icon, number
Time per desktop No Monthly CSV
Notice switches caused by other apps No Tab flashes, hint names the app

Other tools cover parts of this: hotkey scripts for switching, tray icons that show the desktop number, or full desktop managers. DeskTabs combines a visible, clickable indicator on the taskbar with names, colours, icons and a time log.


After switching, a window flashes in front for a moment before the right one comes up. Why? Windows decides which window gets the focus on arrival, before DeskTabs can act: it takes the last used window that belongs to that desktop and ignores windows shown on all desktops. So if a window on all desktops (say your main chat app) was in front, and right behind it a window of this desktop only, that window flashes up briefly until DeskTabs puts your order back, usually within a tenth of a second. It is a Windows quirk, not a fault. To avoid it, minimise that desktop's window while you don't need it, or work last in a window that belongs to this desktop only.

Requirements

  • Windows 11: developed and tested on 25H2 (build 26200). Works from 24H2 (26100).
  • AutoHotkey v2 (tested with 2.0.29), default path C:\Program Files\AutoHotkey\v2\AutoHotkey64.exe.
  • VirtualDesktopAccessor.dll (bundled in this repo), built from the source of Ciantic/VirtualDesktopAccessor at commit ceb6488 (October 2026, unmodified), which includes the MoveDesktop export DeskTabs contributed for reordering (#119). Built by the workflow build-dll.yml until an official release ships it.

Installation & start

Option A: ready to run (no AutoHotkey needed)

  1. Download the latest DeskTabs-vX.Y.Z.zip from the Releases page.
  2. Extract it anywhere and keep the folder together: DeskTabs.exe, VirtualDesktopAccessor.dll, lang\ and data\.
  3. Double-click DeskTabs.exe. On the first start DeskTabs says hello and points at the right-click menu.

Windows SmartScreen may show "Windows protected your PC" because the executable is not code-signed (a certificate costs money per year; this is a free tool). Click More info → Run anyway. If you prefer not to trust an unsigned binary, run the script instead (Option B) or build the executable yourself with Ahk2Exe.

Or install (and update) in one line, from PowerShell:

irm https://raw.githubusercontent.com/paehtz/DeskTabs/main/setup.ps1 | iex

That installs to %LOCALAPPDATA%\DeskTabs, adds an autostart entry and start

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#desktop · #tabs · #productivity