I don't hate Windows. It's a great operating system, and I've been using it for decades. And it's totally ok if you use it too. In fact, you may need to use Windows or Mac if your work depends on tools that are not available on Linux.
Even though I tried Linux many years ago, I always returned to Windows for different reasons (mostly work and gaming). But my desire to leave Windows behind has grown on me recently, mainly because I've been learning more about the free software movement (free as in freedom).
Like many of you, I want to get things done, and the idea of having to spend weeks learning how to use a new operating system didn't sound appealing to me. That's why I decided to change my point of view and see it as an occasional hobby.
💡 If you found this content valuable, you can follow me on Twitter and Instagram.
After dual-booting Windows 10 and Manjaro Linux, I started to spend a few hours a week doing small experiments within Manjaro. Three months later, and with a better understanding of both the operating system in general and the Linux terminal, I decided to try ArcoLinux and spend even more time on Linux.
Finding the right tools
My main concern when switching to Linux was not being able to do my job. I use a few tools every day (like Figma or Notion) that I thought could not be used on Linux. But after some research and experimentation, I managed to get all of those tools working.
So I decided to share a list of tools/projects/apps I found that enabled me to do my daily job with Linux. A few apps are not strictly required for my job, but they highly improved my experience and boosted my productivity.
i3 Window Manager
After doing some research, I learn that there are unlimited customization options for your desktop environment on Linux. You can use a full desktop environment like GNOME, KDE, Mate, Cinnamon, or you can use Window Managers.
Window Managers are only one of the many components of a desktop environment, and its objective is to control where elements appear on the display. Because I wanted to fully customize my setup (and get a deeper understanding of Linux), I decided to start using i3.
There are dozens of options out there (xmonad, qtile, dwm, Awesome, Openbox, etc.), but I stick with i3 because it's easy to customize.
I really love Window Managers because it allows you to move through different windows without leaving the keyboard. Once you get used to them, there is no going back.
I managed to set up i3 to work with different workspaces on each monitor and open certain apps like VSCode on a specific workspace. In that way, I always have my browser on my left monitor and my code editor on the right one.
To learn more about i3, follow this link
Feh is a lightweight and versatile image viewer. I'm using it to set up my wallpapers on my i3 config file. You may not need this tool if you're using a full desktop environment instead of a window manager like i3. If you want to learn more about Feh, follow this link
I wanted to have a custom status bar for my i3 window manager, so after some research, I found Polybar. Polybar is a powerful open-source tool that aims to help users build beautiful and highly customizable status bars for their desktop environment.
Even though I'm an absolute noob to Polybar, I spend some time customizing my bar to look like this:
One of the things I love about Polybar is that it's modular. Meaning that there are tons of out-of-the-box modules you can add to your bar without prior scripting knowledge. Besides, you can create your own module if you want, and the documentation for the out-of-the-box modules is fantastic.
To learn more about Polybar, follow this link
Flameshot is the best substitute for the Windows Snipping Tool. It's a powerful yet simple to use screenshot utility. Here you can see an example of how many things you can do with it.
If you want to learn more about Flameshot, follow this link
I've been working a lot with React Native, and I needed reliable software that lets me cast my phone screen on my desktop environment to control my phone without having to deal with the touch keyboard. Besides, sometimes I need to show a demo of the apps I'm working on, so having the ability to run this tool on Linux was kind of a deal-breaker for me.
After doing some research, I managed to compile the app following the instructions available on GitHub.
Here's Vysor, running on my ArcoLinux and casting the screen of my Android Phone:
To learn more about Vysor, follow this link
There's a tool called ScreenToGif that I use a lot on Windows. It allows me to record animated gifs to share on social media quickly. Sadly, it's not available for Linux. Thankfully I found Peek.
Peek is a super simple-to-use gif/video recorder. It's not a general-purpose screencast app with extended features but instead focuses on the single task of creating small screencasts of an area of the screen.
Here's an example of a GIF generated using Peek.
To learn more about Peek, follow this link
Open Broadcaster Software (OBS) is a free and open-source, cross-platform streaming and recording program. If you're producing content for YouTube or streaming on Twitch, this program has pretty much everything you'll need to start. Follow this link to learn more about the project.
Alacritty (Terminal Emulator)
Alacritty is a modern terminal emulator that allows extensive configuration, and it's a GPU-Accelerated Terminal, so it is known for having a good performance. To learn more about Alacritty, follow this link.
I really love Brave. It's privacy-focused, it's open-source, and it pays you with crypto if you accept to see sponsored ads occasionally. Besides, it's based on Chromium, so the developer tools are excellent. You can learn more about Brave on its official website
Even though you can't download Spotify for Linux from the official website, you can get Spotify using the Snap package management system. Just type
snap install spotify on your terminal, and you're ready to go. Now you can listen to your favorite music on Linux.
If you are into Terminal user interfaces like me, you'll really enjoy Spotify-TUI
Lotion (unofficial Notion app for Linux)
Lotion was an unexpected but cool surprise. I found this fantastic project on GitHub. It's super easy to install, and it just works!
Figma-Linux is an unofficial electron-based Figma desktop app for Linux. You can easily install it using the snap package management tool.
To learn more about the project, visit the GitHub repo
There's no much to say here. VSCode is my favorite IDE, and it's multi-platform. So, if you're working with VSCode on Windows, just know that the Linux client has precisely the same features.
You can find more specific instruction for installation based on your Linux distribution here in the official VSCode documentation
Docker is my daily driver to work with things like MongoDB and SQL Server on Linux. Docker is multi-platform, and you can use it on Linux. If you heavily rely on Docker for your daily job, know that you won't find any limitations while using it on Linux.
I wanted to share my experience in case you're thinking about trying Linux, but you're not sure if that time invested will pay off.
At least for me, Linux has improved my work experience by letting me customize every single piece of the environment. And that's enough for me to keep learning and tweaking.
Top comments (162)
Welcome to arch, I started my linux journey with linux mint , ubuntu and alot, finally ended up with arch Linux,
I've fallen in love with vanilla arch
The only thing is, it's hard to install, but basically you are creating your own system, you can easily understand if anything goes wrong, it's an really light weight distro than others and ofcourse it's an rolling release, no matter what just sudo pacman -Syu will find you the latest kernels and applications, And for applications there are ton of support from pacman repository, and we can have this stuff AUR, once we have that installed, we can almost get any software that we needed, finally the famous arch wiki,
I tried xmonad, dwm, awesome, and qtile, but these are a bit complicated when it comes to customisation, so I sticked with i3,
I am using i3 from past 2 years, it's really lot easier to customize, and it's pretty lightweight and simple to use.
A while back I was trying various distros and couldn't settle. When I sat down and analyzed what I wanted out of Linux, Arch came out on top. I truly value the knowing exactly what is going into everything I'm doing. Arch runs most of my VMs and some of my desktops (that aren't windows)
Arch rules :)
You mentioned many of the reasons why I decided to use Arch too. It takes a little bit of effort initially, but it's totally worth it in the long run.
Agreed, the effort to understand really helped me later in solving issues that came up even when dealing with other operating systems and programming situations.
I really like Arch. I completely GNOMEd it, and I like that pacman handles dependencies better than apt.
Exactly, one of the best things about Arch is the package repositories (Pacman and AUR). Mauro suggested using snap, this is completely unnecessary on Arch, and you should be able to have everything you need on the main repository (Pacman) or users repository (AUR).
And, as Chittoji said, the famous arch wiki 💕
Also, want to say that I use DWM, ST and dmenu (suckless ftw) 🤖
For most packages, AUR is all you need. But I found a few packages (like Figma-Linux) that are not available in the AUR. That's why snap is not entirely unnecessary.
I heard a lot of good things about dwm! I definitely want to try it later on my journey. And I love dmenu! I'm currently using it.
Nice one, Mauro. I was able to find the Figma-Linux on AUR repository. Have you tried it?
DMW looks to be one of the more complicated Window Manager to configure, and it's possible to get to a point where patches conflict with others 😅 . Still, if you have experience with C, it's possible to overcome the conflicts. Also, polybar is easier to customize compared with the DWM builtin status bar, but once you have it all set, it's all happiness 🙂.
Check my dwm build, and feel free to reach out if you have any question or need any help.
Not sure why, but today I searched the same package in AUR, and I get 0 results. I just performed the exact search, and now I see two results.
About DWM, what you mentioned about the patches was the reason why I'm skeptical about using it, but I'm sure once you get to the point you want, you probably don't need to touch it frequently.
It's been like eight years since the last time I worked with C, so I'm rusty. 😄
I'm going to check your dwm build later :) Thanks for your help, Conrado!
Wow! thanks for such complete feedback, Chittoji! You mentioned a couple of things like pacman and AUR that I'm really enjoying! I've been using snap, too, for a few packages.
About window managers, I was learning about Awesome because I saw that it comes with great defaults and has good documentation. I hear that dwm and xmonad requires a lot of additional work, so I think I will try them later on my journey :D
I would like to hear your thoughts and experiences with Awesome.
Thanks again for taking the time to share your experience with Arch!
Awesome is a good window manager, but it uses rc.lua file for config, Awesome wm comes out of the box with
a good desktop, panels and widgets, unlike other window managers Awesome wm have a proper menu system, but if you want to config the wm, you have to import the libraries first, then have to settle things around, people like it because it comes close to desktop like feel.
unlike i3, you can use right click on empty window for options like opening menu, or other stuff just like desktop managers, it probably a good window manager, but its config is not as easy and simple as i3
The thing about awesome that didn't like me was the amount of stuff that it has. As you said, it comes with a full menu system, status bar, etc. I think that I'll stick with i3 at the for the moment. Thanks for your feedback 😄
I took that path too, it was a lot of fun, but I finally settled on Manjaro Gnome with Material Shell. Simply the best desktop a developer could have, IMO.
Great choice! I'll be playing for a while until I learn a little bit more, and then I'll probably stick to one configuration too.
I always liked the Arch and Arch based distros, because:
sudo apt-get update && sudo apt-get upgrade
sudo pacman -Syu
sudo apt-get install software-properties-common; sudo add-apt-repository ppa:some/repository(Run the second command for every new software not found in the official repos)
sudo pacman -S git;git clone https://aur.archlinux.org/yay-git;cd yay-git;makepkg -si(No need to do anything again. Almost every software is found in the AUR)
sudo apt-get install ...
pacman -S ...
That's interesting, WARNING HERE BE DRAGONS( i.e. my opinion lol)
I find apt a lot easier, because I'm typing out the verb that I want to happen. With pacman it's all flags, so you have to memorize all those flags instead of just thinking about what you're trying to do.
I also I have an update script that I wrote for Debian based systems to handle update/upgrade/dist-upgrade and what not, that sure id never run on production systems but it's served me well for years.
That way my upgrade process is just "updatey" (yes the y means auto accept lol)
Also as far as additional repos go I think I've only got like 2 on Debian based machines, so I don't feel like that's a big deal.
I also always found it strange that pacman basically needs wrappers (such as yay) to do the same functionality that the other package managers do out of the box. Now sure, you don't need to use yay, but it's gonna get painful if you don't.
You're right about Pacman being a little bit cryptic, but I think you could solve it using aliases.
Really cool what you did with your script 😄
To pacman's credit though..
man pacmanleads to some very well written documentation
So your dragons are a bit more powerful 😜
You're right! I always thought that the ubuntu way of installing packages was “ok” until I started using pacman.
Thanks mauro, awesome guide. I already have my laptop and I will be switching to linux soon (waiting for the ax500 wifi drivers to be fully supported). I also have arch in mind so this is perfect for me
you could try a different distro, perhaps from ubuntu family, their team has made a huge progress in supporting ton of drivers.
Yeah probably ubuntu is gonna be my first try, but even for them the drivers are still not fully merged. I am following the launchpad issue for ubuntu fixing that so hopefully soon 🙂
Linux Mint has good drivers.
Mint is another great option!
Yesterday the driver support got merged on the ubuntu launchpad bug and the dev who fixed it wrote me a message on how to use the fix so today I am gonna give it a try. Wish me luck 🤞
That was fast :D
Everything worked out great, installed ubuntu (no wifi or bt) gave myself internet with usb tethering, updated kernel and firmware and after that everything worked out of the box. Considering deleting my windows partition even
So glad it worked out!
Thanks Pato! The wifi drivers sometimes are a headache! Thankfully I'm using ethernet so I didn't have to deal with it 😄
You're not lucky. Arch is a good distribution :D The documentation is insanely good too.
Yes, the documentation is excellent, I have to admit. I recommend it very often to people using Debian. Because Arch people run into so many problems, they built this amazing wiki that can save a lot of issues. This is really a thing.
Great post. Are you using Vanilla Arch now?
If you aren't comfortable with installing vanilla arch, I highly recommend using ArchLabs which is what I use now. I used to use V. Arch but when I broke my Arch OS, i didn't want to vanilla arch install again. Done it over 15+ times.
ArchLabs is the closest thing to Vanilla Arch, in my exp.,
BTW, I think you should try URxvt instead. URxvt is much more lightweight. It's not the prettiest out of the box, but super customizable.
I'm using ArcoLinux until I feel comfortable enough to leap vanilla arch!
Thanks for recommending ArchLabs! I'll take a look :)
I also saw a video on the Distrotube channel that seems to be pretty helpful
About the terminal emulators, that is another journey I'm just starting now. I heard about urxvt, and looks interesting. Going to try it out later
Awesome! Hands down ArchLabs is the best one there. Great community as well.
A great community is something I see a lot within the Arch and Arch-based universe. That's always a good sing.
There is an AUR package for notion which works seamlessly with Arch:
Wow! I didn't know about this package! Thanks for sharing! I'll definitely check that out 😁
I ve been using Linux mint xfce for decade. Tried cinnamon, mate, ubuntu, but never last more than 3 days. Ive never have courage to try arch LOL because I heard arch needs an expert user. I just saw garuda dragonize it Looks really cool. But I Dont have time to switch to it so far. Maybe years later I have courage to try Arch ;) thanks for the article, awesom job here.
I assure you I'm not an expert :D The distrotube channel on YouTube helped me a lot in doing this transition. But as I said in the post, it took me a couple of months of spending 2 o 3 hours a week learning, watching videos, playing with the console, etc.
You can try Manjaro or ArcoLinux instead of plain Arch. The installation process is the same as it is for Ubuntu.
Thanks for the guide. You inspired me to try arch. I've been using ubuntu for a year. But I don't see a point switching to another distro especially it's a pain to setup port my data from ubuntu. Maybe I'll try in Virtualbox first
Sure! Vms are great for testing before doing the switch.
Have you faced any hardware problems like Bluetooth or wifi drivers?
I'm using ethernet (desktop PC), so I didn't have to deal with wifi yet. But I heard that sometimes it is a pain! The same about Bluetooth. Didn't try to use any device yet
Arch Linux should be only allowed for people doing experimental art. I wish you a good time on your new OS and let's talk about it again in six months.
I am using Ubuntu exclusively for the last couple of years, but I wanted to go the DIY Linux route, and I'm definitely thinking about picking up a more customizable distro. This was an amazing article!
A lot the customization is in the installer, certain distributions allow for more customization than others. If you want to customize thing more look at Debian, Arch, Gentoo, and Slackware. The ultimate customization is LFS (linux from scratch).
I highly recommend you to check out the distrotube channel on youtube. He covers Avery simple piece of a custom Linux distro in a very beginner-friendly way
I've been using Manjaro Linux for about 2 years, and totally got rid of Windows. Before Manjaro, I tried many other distros, and finally I decided to settle here, in Manjaro. I don't why many people on internet hate Manjaro, it's a good distro, almost things I need are available on Manjaro, it gives me a very good performance. I'm a lazy ass so I use GNOME as my DE because I can have a beautiful desktop without doing so much. Nice post btw, you show me many cool apps that I've never discovered before.
Gnome is a beautiful DE and it just works so it’s a great choice! I’m really enjoying window managers because it’s an excuse to learn a little bit more about the system, but who knows maybe I’ll try a DE later.
I'm Microsoft-Free since Win98
I used SUSE, Kubuntu and now Manjaro and Arch.
I don't miss anything yet.
I like xfce and KDE. Also nice application I do use is easystroke for mouse gestures, phpstorm for webdeveloping, insomnia as alternate REST-Tool for Postman.
I do prefer Thunderbird over KMail and really love the funktionality of Klipper and KIM (which I've enhanced a bit).
I agree with your choice of brave, flames hot and docker.
I don't know Lotion yet, so I'll have a look at it. Thanks for this suggestion.
I really enjoy the simplicity of Xfce! I didn't know about insomnia! I should take a look! Thanks for sharing your story! It's awesome that you've been using Linux for some many time
Yep, it was a strategic decision. Round about the year 2003 I started as self-employee. Right before I've started I think about which way I'd like to go.
I decide to use Linux, because there you don't have to pay licence fees for the software like on Microsoft Products.
As Webdeveloper I need some Applications for coding, graphic, writing letters, answering mails and so on.
Only thing I had on linux for some years after starting my business was application for doing invoices. At 2003 there where no Cloud-Based invoice Services.
I don't blame Windows or Mac, I'd only like to say: Try Linux and see if it's work for you. If you can make it work, than you will have huge benefits in freedom, saved licensce fees and stability.
Oh did I notice, that Linux - in my opinion - is the best choice for developers?! ;)
Even my mother (> 65) use Linux (currently Manjaro) > 15 Years. She started using Linux, because I recommend her to try it ( as it was to time consuming for me to fix and repair her Windows nearly once per quarter).
Make sense want you said about Linux as a strategic decision. Today we have the privilege of choosing between many free options for each type of software we need, but back then, it was tough.
How cool is it that your mother uses Manjaro! I would really like to have her feedback here! 😀
It was funny when you said that Docker works on Linux. Docker IS a Linux tech. Containers were a feature of Linux kernel. You could only use it on Windows by running a Linux VM underneath. Maybe MS caught up now and can use containers natively, not sure...
Yep, you're right! I was trying to answer the question: does it works or not? Without getting into details about containers but yes, MS is using HyperV behind the scenes; I think
I use docker for web development and the overhead of running containers within Windows and Mac vs running them on Linux means docker is only usable on Linux. Yes docker for windows uses hyper-V. However when you mount directories there is a conversion process for file permissions. The causes IO overhead. The only workaround for me to continue to use windows for a while before ditching for linix was using hyper V to run a full Linux VM and installing docker in this. So yes its more docker was ported to windows - it runs effortlessly in most distros.
Ah! Arch Linux. It's my OS for 6 years now, and I never had a system as stable as this one. The myth that Arch Linux breaks all the time is just that... a myth.
I've some experience in OS. I've been using in order: MS-DOS, windows 3.1, Windows 98, Windows XP, macOS, Windows 7 , Ubuntu, MANY Linux distros, and finally Arch.
If somebody is interested, I wrote a whole book how to install Arch Linux with i3, zsh, Neovim, and tmux: themouseless.dev
I thought it would be cool to share all the knowledge I gathered over these years :)
Love the idea of a mouseless environment! I'll definitely take a took at your book 😁
Thanks :) don't hesitate to reach out if you have any question.
Just that .... never Brave. The affiliate link injection scandal made me reconsider all the privacy claims.
Do you have a link? I didn't hear about that scandal! 😨 Do you recommend another browser? I use Mozilla for like a year, but I find a lot of bugs lately.
A quick web search found this: coindesk.com/brave-browsers-affili...
Personally, I use different browsers for different purposes. For example, I'll do most online shopping one way, general interest browsing another way, and work-related internet usage yet a different way. It takes a few extra minutes to set up the additional browsers and profiles, and takes a bit of discipline to build the habit of separating between them, but I find it worthwhile to keep going.
As long as I separate the usages and keep my various privacy settings in mind, adding Brave into the mix is acceptable to me. In other words, I just keep in mind that -- when using Brave -- I'm selling my attention and a limited view of my browsing behaviors for the benefit of Brave and for some BAT to myself.
On that note, I generally avoid Google Chrome because of the proprietary built-in spyware. I also don't want to enable or support the anti-competitive behaviors that they engage in. Being that Google builds web-based services and a browser, they're in a position to want to control the audience. Most other browser-software companies are not also building web-based services (like YouTube/Gmail/etc).
Anyway, here are a couple examples of the way Google doesn't compete in good faith:
I'm avoiding Google Chrome for the same reasons. A couple of months ago, I decided to switch to DuckDuckGo as my default search engine too.
I'm also aware that Brave is paying for my attention, and it's ok because they are transparent about that, and I can opt-out.
I tried Firefox for years, but during 2020 started performing poorly, so I decided to try another browser (of course not Chrome), and then I found Brave.
Not sure what you mean by "paying for your attention". The problem is that they're changing the urls you're accessing with their affiliate codes to cash in for your clicks and they're not transparent about it.
It should also be noted that brave started to collect donations using content creator's images (without rewarding them of course) as well as having a really sketchy CEO.
@jae - Yes, it was unwise of Brave to collect BAT for creators that did not opt-in to the Brave Rewards system. Even more so to include images from their profiles. That's a pretty poor decision and something to keep in mind when evaluating Brave.
@andreidascalu - The behavior that I see today is that Brave shows ads to users who opt-in, and then those users are given a small amount of cryptocurrency as a "reward". In other words, Brave pays cryptocurrency to users in exchange for agreeing to see Brave's ads. That's "paying for your attention".
With regards to the claim that Brave was changing the URLs that users are accessing, I believe that's a bit of an exaggeration. Take a look at this video that demonstrates the behavior and this other one that demonstrates the same behavior when using Google as the address-bar search engine. I can agree that Brave was auto-completing to a URL likely beyond what the user intended, but nobody forced anybody to take the full auto-completion. In other words, it wasn't surreptitiously changing the URL; instead, it was suggesting a URL and the enter-key -- like with most auto-complete UIs -- indicated that the user agreed to the suggestion. It also seems to have been limited in scope to exclusively "binance.us" (no www) and "binance.com" (also no www): I see no indication or reporting that the referral link scandal hit any other website beyond Binance. So yes, it's inconvenient. And yes, I disagree with it. That said, let's agree to aim for accuracy when we describe this.
Been in lots of news.
It's been a while but between this and a rumoured deal to ignore some FB tracking in some cases, I sort of felt it's not really worth the hassle.
I do prefer Opera, more from the perspective that I know its downsides (particularly with respect to privacy) so I know how to make up for them.
I also like Vivaldi, which is more lightweight and more privacy focused. This is my main browser for personal navigation.
I also use Duck duck go extension on Opera and Chrome for privacy settings.