Observatory
Build Logs·Aug 8, 2026·5 min read

Building a Safer macOS-Style Setup for Windows 11

A practical Observatory write-up on creating a macOS-inspired Windows 11 desktop without patching system files, including my MacTrafficLights utility.

Windows 11macOSDesktop CustomizationC#Win32MyDockFinderOpen Source

I like the visual language of macOS: the dock, the clean menu bar, the rounded surfaces, and especially the small red, yellow, and green window controls. Windows 11 is already a polished operating system, but I wanted to see how close I could get to that macOS desktop feeling without doing the risky thing most transformation packs do: modifying system files.

This started as a customization experiment, but it turned into a small software project. The result is a safer macOS-style Windows 11 setup built around reversible tools, with my own utility, MacTrafficLights, handling the macOS-style window control buttons.

This post is part of the Observatory section because it is not just a theme showcase. It is a build log about desktop UX, Win32 limitations, tradeoffs, and how far you can push Windows customization while still keeping the system recoverable.

The problem with full transformation packs

The fastest way to make Windows look like macOS is to install a full macOS transformation pack. That also tends to be the most dangerous way.

A lot of those packs touch sensitive areas of the system. Some patch theme files. Some modify Explorer behavior. Some depend on old Windows internals. Some ask for restarts before replacing pending system files. When something goes wrong, uninstalling is not always clean.

For this setup, I wanted a stricter rule: If I cannot remove it without repairing Windows, I do not want it in the setup.

So the goal became clear. I wanted the macOS feel, but I did not want to patch System32, replace DWM, modify Explorer binaries, inject into apps, or depend on anything that could break Windows updates.

The setup goal

The target desktop experience was simple:

  • a macOS-style dock
  • a top menu bar
  • clean dark-window styling
  • macOS-inspired traffic-light window controls
  • no permanent system patching
  • no risky theme engine modifications
  • easy uninstall

Tools like MyDockFinder already cover a big part of the macOS-style desktop experience: the dock, Finder-like behavior, and the top bar. The missing piece for me was the window controls.

Windows puts close, maximize, and minimize buttons on the top-right. macOS puts close, minimize, and maximize on the top-left as colored traffic lights. That difference is small, but visually it changes the whole desktop.

So I built my own version.

Introducing MacTrafficLights

MacTrafficLights is a lightweight Windows 11 utility that adds macOS-style traffic-light controls to normal app windows.

The buttons are simple: red closes the window, yellow minimizes the window, green maximizes or restores the window.

The important part is how it works. MacTrafficLights does not patch Windows. It does not replace system DLLs. It does not inject code into Spotify, Discord, Brave, Edge, Explorer, or any other app.

Instead, it uses separate lightweight overlay windows that sit above the normal Windows title bar area. Those overlays cover the native controls visually and provide macOS-style buttons on top.

That is not as powerful as a real native Windows theme engine, but it is much safer.

MacTrafficLights showing traffic light window controls on File Explorer
MacTrafficLights overlaying red, yellow, and green window controls on the Windows 11 File Explorer.

Project links:
GitHub repository · Latest release

Why I avoided true embedding

The obvious question is: why not embed the buttons directly into every app window?

On Windows, doing that properly usually means using one of the approaches I wanted to avoid: DLL injection, subclassing windows from another process, patching app windows at runtime, modifying system theme behavior, or replacing/altering native caption rendering.

Those methods can work, but they come with real costs. They can trigger antivirus warnings. They can fail on elevated administrator windows. They can break when apps update. They can behave badly with Chromium apps, Electron apps, UWP apps, games, or protected windows.

For a personal desktop experiment, that is not worth it. MacTrafficLights stays on the safer side. It behaves more like a visual companion layer than a system modification.

What changed in v4

Earlier versions proved the idea, but they were not good enough.

The first builds tracked only the foreground window. That meant if two windows were visible, only one got traffic lights. It looked fine in a simple screenshot, but it felt incomplete during normal use.

The v4 rewrite changed the architecture completely.

Instead of one overlay chasing one window, v4 uses a multi-window overlay manager. Every visible normal app window can get its own traffic-light overlay. The active window gets brighter buttons, while background windows get dimmed controls. That makes the result feel closer to macOS, where inactive windows still have visible controls but they are less emphasized.

v4 also became z-order aware. If one window covers another window’s control area, the covered window’s overlay is hidden instead of floating above the foreground window. That was an important fix because an overlay that ignores window stacking instantly feels fake.

The result is still not native rendering, but it is a more serious version of the idea.

MacTrafficLights on a browser window
Active and inactive window control states overlaid on browser windows.

Handling custom title bars

The hardest apps are not always the classic Windows apps. They are the custom ones.

Spotify, Discord, browsers, and Electron-based apps often draw their own top bars. Some have search boxes, profile buttons, navigation icons, queues, side panels, or custom controls near the same area where the overlay wants to appear.

That created two problems: the overlay background could visibly mismatch the app title bar, or the traffic lights could overlap actual app UI.

To reduce that, MacTrafficLights v4 uses different masking behavior depending on the app. Normal apps can use a color-matched patch over the native Windows controls. Apps like Spotify and Discord use a smaller micro-mask style so the overlay does not become a giant rectangle over custom UI.

There is still a tradeoff here. Windows apps are not consistent. Some use native title bars, some use custom-drawn regions, and some change layout depending on window size. A universal overlay has to make practical guesses.

That is why MacTrafficLights includes tray options for alignment, button size, app exclusion, and custom micro-mask behavior.

Dragging windows

Dragging was another edge case.

When a window moves, an overlay has to follow it. If it updates too slowly, the native Windows controls briefly become visible. If it updates too aggressively, the utility can feel laggy.

v4 keeps the native controls covered while the target window is moving, then restores the traffic-light rendering when the window settles. This keeps the illusion cleaner without modifying the actual app window.

Again, it is not the same as native compositor-level rendering. It is a practical compromise that keeps the setup reversible.

Safety design

The main design rule is that MacTrafficLights should be removable without repairing Windows.

It does not modify System32, patch uxtheme.dll, replace Explorer, replace DWM, inject DLLs into apps, permanently alter app window styles, or require a custom boot process.

If I exit MacTrafficLights, the overlays disappear and the original Windows controls are visible again. If I do not want it anymore, I can remove it like a normal utility.

That is the biggest difference between this setup and a traditional transformation pack.

Build and run

Extract this folder to a permanent location, for example Documents\MacTrafficLights.

Double-click Build-and-Run.bat.

After it builds, MacTrafficLights.exe can be launched directly.

The build uses the .NET Framework C# compiler already present on most Windows 11 installations. No third-party compiler or NuGet packages are required.

Windows SmartScreen can warn about MacTrafficLights.exe because it is a locally compiled unsigned personal executable. The complete source is included in MacTrafficLights.cs.

What the final setup includes

My current macOS-style Windows 11 setup is built from safer layers:

  • MyDockFinder for the dock and top menu bar experience
  • MacTrafficLights v4 for macOS-style window controls
  • a macOS-style wallpaper
  • matching icons where needed
  • dark mode across Windows and apps
  • optional cursor and sound tweaks

The goal is not to pretend Windows has become macOS. It has not. The goal is to make Windows feel visually cleaner while keeping it stable, reversible, and usable for daily work.

Known limitations

MacTrafficLights is still an overlay utility, not a native Windows shell replacement.

That means there are limits:

  • some protected or elevated windows may not respond to normal commands
  • games and exclusive fullscreen apps are not ideal targets
  • unusual custom title bars can require manual adjustment
  • aggressive topmost windows can fight for visual priority
  • app updates can change layouts and require tuning

For me, those limitations are acceptable because the safer design is the point. I would rather have a reversible utility with a few edge cases than a deep system patch that looks cleaner but creates repair problems later.

Why this matters

Desktop customization is usually treated like a visual hobby, but there is an engineering side to it.

A theme can look good in a screenshot and still be badly designed. If it breaks updates, modifies protected files, or cannot be removed cleanly, then it is not a good setup for daily use.

This project became a reminder that good customization should respect the system it runs on. The cleanest-looking solution is not always the best one. Sometimes the better solution is the one that leaves the operating system untouched.

Final thoughts

MacTrafficLights started because I wanted three small colored buttons on Windows. The real project became figuring out how to do that without turning the system into a fragile theme experiment.

v4 is the first version that feels close to the direction I wanted: multi-window support, safer overlays, active and inactive states, app-specific behavior, and no system patching.

It is not perfect, and it is not pretending to be native macOS. But as part of a complete macOS-style Windows 11 setup, it gets surprisingly close while staying practical.

That is the kind of customization I want to keep building: visual, experimental, reversible, and safe enough to actually use.