← All blogs

Nuking Windows for the shiny new distro on the block (Omarchy, Part 1)

Omarchy looked cool. That is roughly the entire justification for wiping the only laptop I own, but it took a few years of Windows-induced friction to get me to that point, so let me back up.

A lifetime on Windows

Growing up, I always had a desktop at home, and it always ran Windows. I never really thought about the operating system as a choice; it was just the thing the computer came with. When I started college, I got my first laptop, a Microsoft Surface, and naturally it ran Windows too. That was fine for lecture notes and the occasional Word document. It was less fine once I actually started programming.

I’ll just say it: Windows is the worst OS for development. The files are weird. Paths use backslashes while every tool and tutorial assumes forward slashes, the filesystem is case-insensitive so Main.cpp and main.cpp are the same file until they suddenly aren’t on someone else’s machine, and line endings are \r\n for reasons that predate me. Git has a whole config option just to paper over that last one. And then there are the mystery cases where a file is “in use by another process” and refuses to be deleted until you reboot.

Installing anything was its own ritual. There is no real package manager, so every tool meant finding the right download page, clicking through an installer wizard, and then manually editing the PATH because the installer either forgot or put it somewhere unexpected. Then you close and reopen the terminal, and it still doesn’t work, and you find out you edited the system PATH when you needed the user PATH, or vice versa. I wrote about a lot of this in my Neovim post, where the majority of the hours went into getting the editor to open at all.

The command line was the same story. There is cmd, there is PowerShell, and they have different syntax from each other and from every shell script you will ever copy off the internet. Half of the commands you learn from documentation simply don’t exist, and the other half exist under a different name with different flags.

WSL as a bandage

Like everyone else, I mitigated this by installing WSL. It genuinely helped; I finally had a real shell, apt, and tooling that behaved the way documentation said it would. But it never stopped feeling like two computers stapled together.

WSL is a separate app that you open separately, with its own filesystem. Files on the Windows side live under /mnt/c/... and are painfully slow to access from Linux, while files on the Linux side are reachable from Windows only through a special network path. So you constantly make a decision about which side a project lives on, and then something on the other side needs it. My editor was on Windows, my compiler was in Linux, my browser was on Windows, my scripts were in Linux, and line endings got mangled every time a file crossed the border. It worked, but there was always friction, and I always had the feeling that I was learning WSL-flavored workarounds rather than actually learning Linux.

Committing

So at the beginning of my junior year, I decided to commit to Linux fully. No dual-boot, no “I’ll keep Windows around just in case.” If Windows was still there, I knew I’d fall back to it the first time something annoyed me. Making Linux my daily driver was the only way to force myself to actually deal with problems, and the side benefit was developing the Linux knowledge I’d been lacking. I had used the command line for years without really understanding what a bootloader or an initramfs was, and it was time to fix that.

The distro of choice was Omarchy, DHH’s opinionated Arch + Hyprland setup. I installed it on October 1, 2025, which was just a couple of weeks after 3.0 came out with the new ISO installer, so the version I ended up on was Omarchy 3.0.2. Arch was a slightly terrifying starting point for a first-time Linux user, but Omarchy makes all the decisions for you, and I liked those decisions.

The rite of passage

The installation was a pretty arduous process. Arch is the kind of system where one wrong step can brick the device, and there were a few points where I was fairly sure I had done exactly that. A few times I lost my input devices entirely: the keyboard and touchpad would just stop responding, and with no way to type anything, the only option was to hold the power button and hard restart. Each time, I got to spend some quality time wondering whether I would be booting back into a working system.

Part of this is that I’m forcing Linux onto Windows hardware. The Surface line was never meant to run anything but Windows, and a lot of its hardware (the keyboard, touchpad, touchscreen, and various sensors) talks over a Surface-specific controller that mainline Linux doesn’t fully support. The fix is the linux-surface kernel, which is maintained by the community and not by Microsoft. Getting it installed on top of Omarchy’s own defaults was its own adventure, and there are still a few kinks I’m living with rather than fixing.

First impressions

I really like it. The Hyprland tiling system is the biggest change to how I use a computer. Windows never overlap, everything snaps into place, and I move between workspaces with the keyboard instead of alt-tabbing through a pile of windows. It took a couple of days to stop reaching for the mouse, but once it clicked, going back to floating windows felt clumsy.

The native vim integration is the other big win. Omarchy ships with Neovim (via LazyVim) as the default editor, vim keybindings are everywhere, and the terminal is not an afterthought. Everything that took me hours of PATH surgery on Windows just worked out of the box, which I wrote about in my second Neovim post.

The main downside is that sleep and hibernate behavior is finicky. The Surface only supports Modern Standby, which Linux doesn’t handle well, so closing the lid sometimes means opening my bag to a warm laptop with a drained battery. For now I’m mostly dealing with it, but it’s annoying enough that it will probably be the next thing I fix.

Overall, no regrets. Windows is gone, I’m learning things I would never have learned behind WSL, and my laptop finally feels like a development machine instead of something I fight with.