Disclaimer: This is my Setup and how I like to work. If you like to develop on Windows or OSX then this is totally fine and as long as it keeps you productive it is the best tool for you.
Windows 10 gets better with every update. With the new Terminal and WSL, it was a way more pleasant experience but it still had some flaws.
🐌 WSL(1) compared to a native Linux was at least for me 10x times slower. Even with WSL2 it was not much faster and working with docker and WSL was just a mess. I had to restart my machine after some hours of work because somewhere was a memory leak.
🙈 Currently, I'm working on a Laravel/PHP project and some PHP extension would not work with Windows. So I needed to run the backend in a VirtualBox and this would cause my ThinkPad T480 to bluescreen randomly.
💣 Also other development tools that only work on Unix system either needed a special setup or would not work at all with Windows. Sometimes they would work with WSL but for example symlinks would be broken or not work at all in WSL.
📮 One thing I could not get to work or sometimes it would work sometimes not is notifications in Windows. Randomly they would not show in the bottom right but when I would open the notification center I would see them. This happened mostly with notifications from browsers.
☎ The Windows Phone companion App was not working for me most of the time. When it did it would now show half of the notifications. I removed the App on my phone from every possible energy saving mod and all that stuff and It still would not work.
😵 The general flow of working did not feel right for me. It is maybe not a problem with Windows but just how my brain works. We are just not the best match. One example is when you press the key (No its not the Windows key just because it has the windows flag on it) and start to type the application you want to open, it would take ages to find anything and if it would find something it was the wrong thing. It was these small things that added up and made it not very pleasant to use.
First of all I'm not new to Linux. I was using Linux now for over 10 years. Back in the days when Ubuntu was actually good. Where you had to compile your Wifi drivers to make them work with Linux. Which by the way you don't have to do anymore. I was working on elementary OS at some point and even fixed the Ubuntu build system. I was installing Arch without any UI. One of my favourite distros was Archbang.
My workflow and my setup might not be the best setup for someone who has never used Linux. I have no problem with changing configuration files from the terminal. In a lot of cases I find it easier to do that then looking around in a UI. If you want to use Linux I would start with something easy to install like Ubuntu/Fedora/Mint/Manjaro. Something that has a UI to install your base system.
💻 Is hardware important?
Not as important as it was a few years ago. Now mostly everything is supported out of the box. Some vendor features may not work. I'm still disappointed in Lenovo and that the new fingerprint scanner is not working. Usually, Thinkpads are working out of the box with every Linux Distro. I have a T480 and I had to do 0 configurations regarding hardware. But you should do some research before buying or switching to Linux. Maybe your vendor is doing something strange or uses some strange hardware. It is also more common to see that Hardware vendors has hardware bugs which they solve in software. I don't like that trend at all.
🤔 Why did I go with Manjaro?
Manjaro is based on Arch Linux and it comes with all the goodies of arch. Just to name a few: The Arch wiki, Arch is a rolling release, The AUR and mostly vanilla packages. Manjaro on top has a UI to install your base system and I don't want to do that on my own because it was fun the first 10 times but at some point you just go with a graphical installer. That is the main reason I used Manjaro as my base. Usually, I would go with Antergos but sadly it is not developed anymore.
👣 Why do I use Gnome Shell?
It is the desktop that does most of the things I want out of the box.
Pressing and typing will search for Apps first and then maybe on the internet. +m opens the notifications panel. Where you have a calendar, weather and notifications. It has good extensions that I use and like. Gnome Tweaks lets me configure all the small things I miss by default. Like showing the minutes and hours in the top bar. It has a better Night Light feature where it removes the blue light from your screen. If you want to know about a deep dive into my setup. Comment down below and I can write about it more in detail!
🏗 Development setup?
I use Visual Studio Code as my main Editor/IDE. Besides that I have the following browsers installed: Firefox, Firefox Nightly, Chromium, Chrome, Brave and Gnome empathy. Besides that I use git, docker, npm, yarn and all the other standard thing that are needed for web development. I use the Gnome Terminal with bash and oh-my-bash. I use gcolor3 it is a color picker build for gnome. Flameshot for making screenshots. The rest like slack, teams, figma and other apps I just open in Firefox or Chrome. Why should I run them locally? Electron will just eat my RAM 🤣. Again if you have question please comment down below!
💭 Misc thoughts
So In general it just feels more like home to me. I still have a second laptop with Windows which is mostly used for gaming. Of course it is not the perfect setup. I had to manually fix some things and optimize them. This also means that the T480 feels faster and snappier because except chrome nothing is eating into the 16gb of Ram. GSConnect or KDEConnect is a replacement software for Windows Phone and it works so much better. I see all the notifications and I can reply in almost every one of them. It still has some small bugs but at least it works.