10 Tools You Need After Installing Linux [software developer]

Jan 21, 2022 5 minutes read
Yellow Utility Knives - Adonyi Gabor (pexels.com)

In the Linux world and beyond, the most popular window managers and desktop environments offer many plugins or editing options. You can spend ages configuring all possible options for what your desktop looks like or just using the default settings, which are generally fine. If you are wondering how to prepare the operating system for efficient programming work, you can use the tips below. I will try to update it as often as new technologies come to the scope of my working day. All those steps should take less than an hour to get everything installed and configured properly (including OS installation time).

According to the default LAF (look and feel) of Linux - in my opinion, keeping the default settings as possible is the best and most ergonomic. Nowadays, large teams and the community are working on each Linux distribution - not only programmers, but also graphic designers and UX people, who strive to provide the best experience. Personally, I have been using Linux for over 20 years (with a short break for MBP 2019). I've been with Ubuntu distro the longest (over 10 years), so most of the advice will be from Debian / Ubuntu.

Before I start, I must point out that I tested a lot of distros (starting with Knoppix, Mandrake through Slackware and OpenSUSE etc), but Ubuntu and Fedora have always been the best for me. Ubuntu for popularity and easy access, and Fedora for stability and the best package manager. Only fonts are not correct in Fedora, but this is a known issue that is already solved (Better fonts for Fedora). This post is like a guide for me to prepare the operating system for work.

Office Suite

Well, it is not an integral part of software development, however LibreOffice is a toolkit that is often used at work. When working with datasheets (Calc) or editing photos (Draw) for a blog, it is often a tool that I use several times a day. This package is an integral part of most distributions - I suggest installing and updating through the package manager. This is really good!

LibreOffice download link

Flathub link

Snapcraft link

Synced Browser

My choice is Chrome, it offers best developer tools (I think invented initially by Microsoft in Internet Explorer) and also all your web data can be synced without any additional password manager required. Most apps like Teams, Azure, AWS console are available via web browser so if you do not care about desktop applications, each modern browser will meet your expectations.

Latest Chrome download link

IDE

Here we are! Just one word, JetBrains. It all depends on what you do exactly, but for my part I would recommend any software from them - it is really good. Additionally, VSC or Atom are certainly better at dealing with large text files and regex than Gedit or any built in text editor in any Linux distribution, so it can be useful as well. If you are not working on large projects, VCS / Atom may be sufficient. Do not waste time on it, check them all and choose the one that suits you best.

JetBrains Toolbox download link

Visual Studio Code download link

Atom download link

Containers

Well, it depends what distribution you are using but the only rational choice is either Docker or Podman along with buildah. The advantages of containerization are great, you can easily maintain different versions of the languages ​​in which your projects are written. It's just a good choice. In case you use Fedora, Podman comes as standard. If you are on Ubuntu then use Docker. And don't worry they both rely on an OCI compliant Container Runtime.

Docker Engine download link

Virtualization

Sometimes you need to create a dedicated machine or install products from Microsoft family. With virtualization, setting up environments becomes ridiculously easy. Most popular tool is Oracle VM VirtualBox, but there is also Gnome Boxes. If you need to setup an advanced configuration go with VirtualBox, if you need a simple way to run a different OS just stay with Boxes.

Gnome Boxes Flathub link

Oracle VM VirtualBox download link

Image Manipulation

It depends on how much you work on the graphic part. For vectors the Inkscape is the best choice. For creating images, for example for a blog, the LibreOffice Draw is my favorite (already included in Office Suite). Both tools are available from Software manager in each distribution. For raster graphic, there is nothing better than GIMP (links for GIMP are not included because it's included in fresh installation).

Inkscape Snapcraft link

Inkscape Flathub link

Video Manipulation

You won't find anything better (and free) than Kdenlive for editing videos, although there is a paid DaVinci Resolve app that is designed for professional use. They both are a great tools for editing videos. Personally I am using the Kdenlive.

Kdenlive Snapcraft link

Kdenlive Flathub link

GIT

When talking about GIT, I also mean any git provider like Github or Microsoft Azure Repos. If you favor the The Twelve-Factor App you probably know that if you are following its manifesto, recreating the development environment is very fast.

So if you have any code that works for you, try to keep it in the cloud or any removable memory disk with clear steps how to recreate your app environment.

Fixing Terminal

Generally, I prefer the default terminal (no delay during the typing…? 🤔), but things like Z shell and Oh My Zsh! can help you a lot with your console - awesome auto-completion. Installation is quite simple, the only difference in further configuration is that we use .zshrc instead of .bashrc.

Oh My Zsh! download link

Online Accounts

This, in turn, is another improvement, I could not convince myself of it for a long time. However, it makes the job easier - especially when you need to sync your local files with Google or Microsoft. Due to the fact that neither Microsoft One Drive nor Google Drive provide Linux applications, this is the only way to access them through Gnome Files. And it's great.

Summary

The dynamic development of Linux in recent years has meant that we have more and more choices. One thing is constant, the range of web development software available on Linux is constantly expanding.

Disclaimer: The opinions expressed here are my own and do not necessarily represent those of current or past employers.
Comments (0)