5 tweaks every developer should make in Windows 11

Developing on Windows can sometimes be a pain, and Microsoft’s focus for developers has long been on supporting ecosystems around their own languages. C#/F#/VB have often been first-class citizens in a Windows development environment, while easy support for other tools has often been neglected. For example, it was only in 2022 that Windows first received a first-party package manager. Whether you want to stick with Windows to play some games on the side or in an office environment where Linux isn’t an option, there are some quick and easy ways to make a power user’s life on Windows easier.

1 Install a package manager (or three)

Start with the basics, and the rest will follow

A screenshot of the WinGet command in the new Windows Terminal.

Windows package managers are in a bit of a weird state. Microsoft released the Windows Package Manager in 2022, which, in theory, should eventually replace third-party package managers like Chocolatey or Scoop. But, both have managed to carve out their own niche; Chocolatey has existed as a more complete package manager for open source projects, while Scoop focuses on reducing bloat and making it easy to install Windows apps in a more ‘portable’ manner, making them easy to remove later. The Windows Package Manager (or WinGet) should aim to replace the former and feature a similar repository system you might be familiar with from Linux or MacOS package managers like dpkg, yum, or Brew. WinGet is now available to install on Windows 10/11 via the Windows App Installer, and Chocolatey and Scoop both have single-line install scripts on their respective websites.

One great use of WinGet is in combination with Winstall, which makes it easy to automate the setup of a new dev laptop or PC. WinGet Manifests can help to install or update dependencies for a project easily.

While the ecosystem around WinGet is still developing, we’d really recommend you install a couple of package managers. Some apps (including some on this list) are still being packaged directly from GitHub for Scoop or Chocolatey. While WinGet remains a relatively new tool there will be less support available to debug issues with installs. They’re all useful in their own right, and until a clear winner emerges, users will be stuck juggling a couple of options.

2 Embrace the new Windows Terminal

One of Windows’ biggest upgrades in years

A screenshot of the new Windows Terminal with some applications running.

The new Windows Terminal is nothing short of fantastic. It’s a night-and-day improvement that allows you to run Powershell, cmd, and WSL sessions within one window. It’s customizable, has great tab support, and is even open-source. It’s got a similar JSON configuration for settings as VSCode, which is well worth exploring, and the inbuilt GUI menus allow you to set your default shell among a range of other things.

The new terminal also supports side-by-side windows or split panes, and background opacity settings. There’s a wealth of other great customization options, including on a profile-by-profile basis, great third-party theming, and customization tools like oh-my-posh.

It’s also worth embracing PowerShell Profiles and scripting. Your PowerShell profile can function in the same way as your rc (or run commands) file for ZSH or Bash. They’re the ideal place to configure a range of powerful aliases, scripts, or functions you can use daily. There’s a great ecosystem for Powershell, and browsing GitHub will find you many powerful examples of useful scripts or functions.

3 Setup Windows Defender exclusions for your development folders

Don’t slow your PC down by endlessly scanning node_modules

While Microsoft has made great strides in recent years trying to win back developers, the Windows file system has often been a pain point. Developers have long been used to a Linux/Unix file system, where managing and creating thousands of small files for dependencies is of trivial impact on the overall system performance, and many common tools have been built with this in mind. NTFS has already been known to suffer from a performance gap with the defacto Linux standard ext4, and Windows Defender’s real-time protection can slow this down even further. The end result can be a sluggish file system when working with large numbers of files in directories like node_modules.

While we don’t recommend turning off real-time protection entirely, adding exceptions to Windows Defender for specific directories is possible. We’d recommend adding any problematic directories as an exception.

If you’re using WSL and struggling with filesystem performance, we’d also recommend you avoid mounting Windows Drives directly in WSL. WSL2 moved to using the 9P protocol for mounting Windows Drives, which has introduced more performance issues for some users. Even WSL developers have acknowledged serious disk performance issues when mounting Windows drives directly in WSL, so it’s best to avoid it if you can and work directly from WSL2’s ext4 filesystem.

4 Setup WSL Integrations

Sick of development on Windows? Switch to Linux

Windows Subsystem for Linux update with new icon

The WSL has been with us for years and has only improved with time. A great ecosystem of tools (both first and third-party) has grown around it, and many native Windows apps now have WSL integration as standard. Two of the most interesting of these are Docker and VsCode.

VSCode WSL Integration

VSCode is one of the best general-purpose text editors out there. It’s got a rich extension ecosystem with support for almost any language or linter, is relatively lightweight, and is super customizable. It’s another great example of Microsoft pivoting its focus to properly supporting developers over the last decade.

The WSL Remote extension is a great add-on that allows VSCode to run locally on your Windows machine while running remotely over vscode-server on a Linux install. This is a part of the family of VSCode Remote extensions, which work by connecting to a remote device, installing the lightweight vscode-server, and proxying all access from the client through this. Similar implementations exist for SSH or for developing inside containers.

WSL Docker Integration

Both Windows and macOS rely on virtualizing a full Linux Kernel to run containers using a tool called LinuxKit. While this works silently in the background most of the time, it can cause problems with more advanced functionalities and add significant performance overhead. However, it’s now possible to configure Docker Desktop on Windows to use WSL2 as its default backend, running all of your containers transparently within your WSL2 install.

Docker has its own documentation on this, but it’s relatively easy to set up. You’ll need a clean WSL2 install (without Docker engine or CLI installed already) and Docker Desktop for Windows. From there, under Settings> General, enable WSL2 support by ticking Use WSL 2 based engine.

5 Make the File Explorer functional

Explorer’s defaults just aren’t designed for Devs

Everyone should make a few essential tweaks when using Windows Explorer. Some of these are more of a personal preference than others, but some are nearly essential.

Show Hidden Files and Folders

This can add a lot of noise to your Windows Explorer experience but is essential for managing dotfiles.

This is under File Explorer Options> Show hidden files, folders and drives.

Hide extensions for known file types

We’ve all tried to save a file, named it file.txt, only to find the created file has suddenly become file.txt.txt. By default, Windows hides some file extensions away from you. Let’s deactivate this by unchecking File Explorer Options > Hide extensions for known file types.

Disable Quick Access

If you’re not a fan of Quick Access cluttering up your sidebar (and worse, dynamically moving the placement of your stock folders), you can deactivate it. You can change this with Folder Options> Show recently used files in Quick Access.

There’s plenty more to play with here and some more advanced tweaks available. It’s worth looking around at some common tweaks for Windows Explorer and deciding what works for you. Some of these tweaks can be automated with Powershell, and if you’re regularly setting up Windows installs, you may find combining these into a script useful.

This is just the start

That concludes our list of great tweaks for developers on Windows but it certainly doesn’t complete it. You can make many tweaks to improve your quality of life, from changing simple options in Explorer to more complex registry edits (or even preferential replacements for entire Windows elements like startallback).

Windows is getting increasingly developer-friendly every day, and while it remains a second-class option for power users compared to Linux (and even macOS), that gap has started to narrow. Suppose you’re looking for more options than what we’ve covered here. In that case, there are some great repositories online of setup/configuration scripts for Windows (like this GitHub repo from Chris Titus) that strip out some of Windows’ bloat and configure sensible defaults. These kinds of repositories might also make a great starting point to build your own set of configuration scripts or dotfiles for Windows.

Anybody who’s been on Linux for a long time knows that building your perfect setup is a constantly changing process, and nothing is ever quite perfect. With similar love and attention, Windows is becoming a better and better option, and it’s clear that Microsoft is trying hard to tear developers from their beloved Macbook Pros.