Moving to Windows from Linux Pt 1
Published: 2021-10-05 11:17:20

I've started recently at Microsoft and being a die-hard Linux user for some time, I missed a lot of the cool features I had been using on both Linux and MacOS. In this post, I'm going to talk about some of the tools that I use day to day and how I replaced them on Windows. Even though I used Windows growing up, I was not very technical then, so I still feel like I'm new to the Windows world, so do let me know if there are any other tools that I should know about. Hopefully, this can help some other Linux users who are trying to get comfortable in a Windows environment. I wasn't able to cover all of the tools that I found in this post, so I'll be adding more parts to this as I have time.

## Package manager (pamac, brew -> scoop)
Lets start with how we can install the software that I will be talking about in later sections!

Most Linux users are used to some sort of package manager, and I have used quite a lot of them over the years like apt, dnf, yum, pacman, nix + home-manager, and homebrew + linuxbrew. After trying so many, personally, I felt that choosing the path of least resistance is usually the easiest for me because the software tends to be more compatible with each other if I don't mix them or use the one the system intended. Manjaro recommends pamac, so I use that. And on Mac, Homebrew is the staple in this category.

I know actually these installers are somewhat different. Pamac and its kin actually install onto the system (which is why you need sudo), but I like Homebrew's approach of installing at the user level (which is why you should not use sudo). I am the only user on any of my computers (as are most people these days), and I like the idea of not messing with my system when I don't need to, so I generally prefer to install things as a user. The good people at Apple and Microsoft work hard, after all, to make the System OS stable, and I don't like to mess with their work. Actually, it's even more annoying on Windows because you can't just sudo, you have to open an entire new window as Admin (without any of your user customizations) in order to install software on the system.

In the Windows world, I found that there's chocolatey, scoop, and winget that are generally used for this purpose. I don't really have access to winget yet, so I ruled that one out pretty quickly. Chocolatey installs on the system rather than as the user, so I chose scoop since I prefer to install as a user. That being said though, I did install chocolatey anyway because their repositories tend to have more software and sometimes that's the only way for me to get software.

## (Pseudo) Tiling Window Manager (pop-shell, amethyst -> komorebi)
Do you ever get lost in all the windows that you have open? Tiling Window Managers help you keep your windows organized so you can spend more time doing things rather than arranging your windows. I also like that you can drive your entire desktop experience using your keyboard.

More die-hard Linux users use full-on window managers e.g. i3 or awesome, but I actually prefer to still have a desktop environment, so I use scripts that emulate some of the most important behaviors for me. For most linuxes, I use either pop-shell on GNOME or krohnkite on KDE. On macOS, I use amethyst.

Pop shell is pretty different from most tiling window managers, but I think it finds a good balance between usability and feature set. On the other hand though, it's hard to find a direct replacement for it. Ultimately (tldr), I settled on komorebi for Windows.

At first, I used the Microsoft PowerToys, where I found an issue about emulating pop-shell. Eventually in that issue, I found a list of various projects trying to emulate tiling window managers on Windows. At first, it was pretty overwhelming because there are a ton of little-used projects. They were mostly either really young or no longer maintained. Luckily (or maybe not so luckily), I mostly had trouble actually installing a number of them due to being pretty inexperienced with installing OSS on Windows, so I was able to narrow it down quickly to a few projects that had relatively easy install instructions. I started off using workspacer, which worked really well out of the box, but I had trouble configuring it because I didn't know a lot of dotnet or C#.

I liked komorebi the best because it was using a familiar technology (rust, cargo, autohotkey) and was intuitive to install and configure how I needed it. Since I have to use dotnet and C# for work, I imagine that eventually it'll be easier for me to use workspacer, so I think it might be interesting to try that one again later.

## System stats monitor (system-monitor, iStat Menus, powerline stats -> Xmeters)
Do you ever run a command and wonder if it actually worked? Especially on an ssh session, I find it comforting to see that the computer is actually doing something. It's also nice to have some system stats visible at all times so that when your computer freezes, you have a general idea as to why that happened.

Currently when on Linux, I use system-monitor or the built-in KDE widgets. Alternatively, on an ssh session, I use tmux and powerline plugins. On macOS, I use iStat Menus, which work decently well but don't really fit in with the rest of the more elegant macOS aesthetic, or at least the free version.

This was a pretty quick fix for me. I just searched it quickly on google and came up with XMeters.

## System monitoring software (Activity Monitor, Gnome System Monitor -> ProcessExplorer)
I'm normally not super picky about this kind of software, and having used Windows throughout my childhood, I am pretty familiar with Task Manager, but there is no way to even search for a process. While googling this issue, I found that a lot of people use Process Explorer, which has a lot of features that Task Manager lacks. I'm honestly not sure how Windows users have gone this long without even the ability to search for a process built-in.