Skip to content

About

A customizable macOS-style top menu bar for Windows 11 built with WinUI 3 - pinned apps, quick folders, window switcher, system widgets, and multi-monitor support.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

TopTaskBarWin11

A customizable macOS-style top menu bar for Windows 10 & 11 — built with WinUI 3.

TopTaskBarWin11 replaces the top edge of your desktop with a sleek, always-on-top bar: pin your favorite apps, jump to quick folders, switch between running windows, and keep an eye on CPU, RAM, battery, network, and the time — all in one compact strip that reserves desktop space like a real Windows AppBar.

.NET 8 WinUI 3 Windows App SDK Windows 10 | 11 MIT License Latest Release


📥 Try It Now

Zero-install portable build:

  1. Head to the latest release.
  2. Download TopTaskBarWin11-vX.Y.Z-win-x64.zip.
  3. Unzip anywhere and run TopTaskBarWin11.exe — no installer, no runtime prerequisites.

Tip: enable Run at Startup in Settings → Startup & Behavior to have the bar ready every time you sign in.

📸 Screenshots

TopTaskBarWin11 in action

The top bar: start menu, pinned apps, quick folders, active window title, window switcher, battery, and clock.

Settings window

A full settings app to tune bar height, monitor placement, themes, materials, widgets, and behavior.

✨ Features

  • AppBar integration — registers with the Windows shell so maximized windows never overlap the bar.
  • Pinned apps — launch File Explorer, your browser, or any EXE/URL; reorder, disable, or run as administrator from a right-click menu.
  • Quick folders — one-click access to Desktop, Downloads, Documents, or any folder you add.
  • Running-window switcher — see and switch between every open window, with live titles and icons.
  • Active app title — always know which window has focus.
  • System widgets — CPU & RAM usage, battery status, network state, configurable font size.
  • Clock & calendar flyout — click the clock for a full month calendar.
  • Volume & audio devices flyout — mute and switch output devices.
  • Multi-monitor aware — show the bar on the primary monitor, the monitor with the mouse, a specific monitor, or all monitors.
  • Appearance control — dark/light/system theme, Acrylic/Mica/Solid background, opacity, corner radius, bar height, widget spacing, separators.
  • Auto-hide & always-on-top — behaves like a taskbar when you want it to.
  • Fullscreen detection — automatically hides (or lowers) when a fullscreen app takes over, with a configurable exclusion list.
  • Separated windows — optional detached mini-bars for individual windows.
  • System tray — tray icon with quick access to settings and exit; single-instance enforced.
  • Run at startup — one toggle, implemented via the registry (no special permissions needed).

🏗️ Architecture

TopTaskBarWin11/
├── App.xaml / App.xaml.cs            # Single-instance bootstrap, top-bar window lifecycle, tray service
├── Views/
│   ├── TopBarWindow.xaml(.cs)        # The bar itself: layout, AppBar registration, auto-hide, flyouts
│   ├── SettingsWindow.xaml(.cs)      # Full settings app (NavigationView, 8 pages)
│   ├── AddPinnedAppWindow.xaml(.cs)  # Add/edit pinned apps
│   └── Flyouts/                      # Calendar, volume/audio, window switcher, add-pinned-app flyouts
├── Services/
│   ├── AppBarService                 # SHAppBarSystem AppBar registration per monitor
│   ├── MonitorService                # Monitor enumeration, DPI, placement modes
│   ├── WindowEnumerationService      # EnumWindows-based running window discovery
│   ├── ForegroundWindowService       # WinEventHook-based active window tracking
│   ├── IconService                   # Shell icon extraction + %LOCALAPPDATA% icon cache
│   ├── AudioService                  # Output devices + volume (Windows Audio COM)
│   ├── SystemMonitorService          # CPU/RAM polling (PerformanceCounter)
│   ├── TrayService                   # H.NotifyIcon tray integration
│   ├── SettingsService               # JSON settings at %LOCALAPPDATA%\TopTaskBarWin11\settings.json
│   ├── StartupManager                # HKCU Run-key autostart
│   └── AppActivationService          # App/folder launching helpers
├── Native/NativeMethods.cs           # P/Invoke: AppBar, shell icons, window messages, DPI
├── Models/                           # AppSettings, monitor/window/audio/pinned-app models
└── Helpers/AppLogger.cs              # Session log file at %LOCALAPPDATA%\TopTaskBarWin11\logs

Technology stack

Layer Technology
UI framework WinUI 3 (Windows App SDK 2.x, unpackaged)
Language C# / .NET 8
Shell integration Win32 SHAppBarSystem, EnumWindows, WinEventHook via P/Invoke
Tray icon H.NotifyIcon.WinUI
Audio Windows Core Audio COM (IMMDeviceEnumerator, IAudioEndpointVolume)
Settings System.Text.Json → %LOCALAPPDATA%\TopTaskBarWin11\settings.json
Packaging None — self-contained unpackaged WinUI 3 (portable zip)

🛠️ Prerequisites

  • Windows 10 (1809+) or Windows 11
  • .NET 8 SDK with the Windows desktop workload
  • Windows App SDK runtime is not required — the app ships self-contained (WindowsAppSDKSelfContained=true)

🔨 Build & Run

git clone https://github.com/uponatime2019/TopTaskBarWin11.git
cd TopTaskBarWin11

# Build (x64)
dotnet build TopTaskBarWin11.csproj -p:Platform=x64

# Run
dotnet run --project TopTaskBarWin11.csproj -p:Platform=x64

# Publish a standalone portable build to ./publish_out
dotnet publish TopTaskBarWin11.csproj -c Release -p:Platform=x64 -o publish_out

The .csproj includes a CopyAppPriToPublish target that copies the app's resources.pri into the publish output — without it, a self-contained unpackaged WinUI 3 publish crashes at startup with XamlParseException (exit code 0xC000027B) even though a Debug build runs fine. If you publish from Visual Studio instead, keep that target intact.

You can also open TopTaskBarWin11.sln in Visual Studio 2022 and press F5.

🖱️ Interaction Reference

TopTaskBarWin11 is pointer-driven (there are no global hotkeys):

Interaction Action
Left-click a pinned app Launch it (right-click for run as administrator, reorder, remove)
Left-click a quick folder Open it in File Explorer
Left-click the active-app title Show the window-switcher flyout (all running windows)
Left-click the clock Calendar flyout
Left-click the volume icon Volume + audio-device flyout
Right-click the bar's system area Settings, toggle visibility/auto-hide, exit (tray menu)
Click the tray icon Open Settings
Enter (in Settings → Separated Windows keyword box) Add the exclusion keyword

🗺️ Roadmap

  • Global hotkeys (toggle bar, open switcher)
  • Media widget: now-playing info with playback controls
  • Focus timer / pomodoro center widget
  • Drag-and-drop reordering of pinned apps directly on the bar
  • Per-monitor independent bar configuration
  • Widget marketplace: plugin model for community widgets
  • Localization (i18n) beyond English
  • MSIX packaging option for Store distribution alongside the portable zip
  • ARM64-native publish artifacts in CI

🤝 Contributing & Community

Contributions are very welcome — this project grows with its community! 🎉

Whether you're fixing a typo, adding a widget, or hunting down a tricky shell-integration bug, we'd love your help:

  • 🐛 Found a bug? Open an issue — include your Windows version, the steps to reproduce, and the log file from %LOCALAPPDATA%\TopTaskBarWin11\logs.
  • 💡 Have an idea? Start a discussion or open a feature-request issue — roadmap items above are all up for grabs.
  • 🔧 Want to code? Fork the repo, create a branch (feature/my-feature), and open a pull request. Keep PRs focused; if it's a bigger change, an issue first helps everyone align.
  • ⭐ Just like the app? Starring the repo genuinely helps others discover it.

New to WinUI 3? The Windows App SDK docs are a great starting point, and the codebase is intentionally small and readable — Views/TopBarWindow.xaml.cs is the heart of the app.

See CONTRIBUTING.md for the detailed guide.

📄 License

This project is licensed under the MIT License — free to use, modify, and distribute.

About

A customizable macOS-style top menu bar for Windows 11 built with WinUI 3 - pinned apps, quick folders, window switcher, system widgets, and multi-monitor support.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages