dibiasi /dev/null

Software Recommendations

28. April 2023

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:

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

  1. Arch Linux - Lightweight Rolling release distro with a focus on DIY
  2. 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.

Tiling Window Manager Demo

Tiling Window Manager Workflow by Lars Berger.

Enough crazy talk, here is some actual software:

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.

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

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:

  • Amethyst - Simple tiling window manager ⭐
    • yabai - More complex tiling window manager
  • Brew - Package manager for macOS
  • Keka - Proper file archiver