Software Recommendations
This article aims to show some of the software I frequently use and I truly think others should try out. It also includes some rudimentary explanation for newbies, which hopefully helps to demystify and democratize Linux. This list is not exhaustive and mostly includes applications which are not totally well known. For example I don't think that it makes sense to list Debian / Ubuntu here, even though these are great distributions.
In my opinion good software should fulfil the following criteria:
- Open Source
- KISS
- Easy to use
- sucks less
Linux
Anyone who is working in tech (Software Engineers, Data Scientists, Operations, Security, ..), Mathematics, or any other form of engineering, could potentially benefit from using Linux as their day to day operating system. Slowly getting to know how Linux works, what things to look out for and how it differs from Windows, is going to help in long run. Especially since container technologies (Docker, LXC, ..) are an integral part of most modern development teams. The skill-set obtained by using Linux also serves as a great foundation for DevOps.
Using Linux as a daily driver might seem daunting at first, but most major tools are already available for Linux. If you are missing a tool and an alternative is not listed on this page, have a look here. The Arch Wiki is a great resource of information for any distribution.
Distros
- Arch Linux - Lightweight Rolling release distro with a focus on DIY
- openSuse Tumbleweed - Easy to use / setup rolling release distro
File System
- BTRFS - Modern Copy-On-Write file system with snapshotting built in Beware that BTRFS may be slow / unstable
Desktop Environment
Linux / Unix provides a lot of freedom, in terms of customization
of your daily usage experience.
Nearly every moving part of a
desktop environment can be configured in so called
configs / .files / dot files.
If you need a starting point for your own dot files,
my (outdated) configs are versioned on GitHub:
Lenovo x1 and
Ryzen Desktop.
ric•ing - Describes the process of customizing a systems' look and feel.
Ricing can probably be considered an integral part of creating a desktop
environment you feel comfortable with.
Examples of beautifully riced desktop environments can be found at
i3wm examples,
awesomeWM screenshots
and of course at /r/unixporn.
I truly believe that a tiling window manager can play a major part of increasing productivity for anything you do on a computer. Imagine the following: You open your browser, a file manager, mail client and notepad on your PC. With a normal floating window manager, these windows are going to overlap, so one must manually position the windows in a fashion to see them all at once. Sure, macOS and Windows adopted a "split screen approach", where one application fills the right side of the screen and one fills the left side. This concept works for very basic workflows, but quickly falls apart when using more than two GUI applications at the same time.
The solution? Tiling window managers. Granted, there is a learning curve and some getting used to when starting out. But after the initial effort you will probably never want to go back. All that said, if you are a total Linux newbie, familiarize yourself first with the desktop environment shipped with your distro, before getting frustrated with tiling window managers and Linux as a whole.
Enough crazy talk, here is some actual software:
- i3wm - Simple to use tiling window manager
- py3status - Hackable status bar powered by Python
- dmenu - Simple Application launcher
- dunst - Lightweight and customizable notification daemon
- ArandR - Screen Manager
- Nitrogen - Desktop Background setter
- Thunar - Fast & Easy to use File Manager
- Mount Disk Image - Custom Action to directly mount disk image
- Thunar Archive Plugin - (Un)Archive selected files
- chicago95 GTK / Icon Theme - Unironically the best theme ⭐
- Flameshot - Snipping tool-esque screenshots
Terminal / Shell
An integral part of the Linux "user experience" is making yourself comfortable with the shell. Using the shell might also seem daunting at first, but is definitely not witchcraft. Most day to day operations are either traversing the filesystem, or executing commands. Essentially exactly the same things one does when using Windows. Opening programs and organizing files. Most GUI programs on Linux can not only be controlled via the graphical user interface, but also by typing commands into the shell.
- alacritty - Customizable fast terminal emulator
- zsh - Intuitive shell
- ohmyzsh - ZSH config / plugin manager
- z plugin - Extremely useful file system navigation ⭐
- syntax highlighting - Syntax highlighting for zsh
- autosuggestions - Fish-like suggestions for zsh ⭐
- powerlevel10k - ZSH theme to display all major infos
Editor / IDEs
- micro - Best "dumb" terminal editor, VIM users will hate you ⭐
- Jetbrains IDEs - Excellent IDEs for many languages
- VSCodium - Open Source version of VSCode
Multimedia
- Xournal++ - Annotate PDFs easily
- pdfarranger - Merge, Split and order PDFs
- sxiv-rifle - Simple Image Viewer
- VLC Player - Excellent media player
Productivity
- Zettlr - Markdown editor for note taking
- lazydocker - Terminal docker container management util
- (MineTime) - Great calendar application, superseded by morgen
Windows
Unfortunately there is still some software that only works on Windows and has not yet been replaced by open source counterparts. The following applications make for a more Linux-like experience on Windows:
- winget - Windows Package Manager ⭐
- Terminal - A proper terminal for Windows
- FancyZones - Better window management on Windows (not a proper Tiling window manager tho)
- Notepad++ - Ol' Reliable
- 7zip - Proper file archiver
- IrfanView - Fast image viewer
macOS
Although I don't use Macs anymore, here are some recommendations that I wouldn't want to have missed: