🏆 I provide private lessons on Emacs, Linux, and Life in general: https://protesilaos.com/coach/. Lessons continue throughout the year.

Linux and the command line

This post is archived. Opinions expressed herein may no longer represent my current views. Links, images and other media might not work as intended. Information may be out of date. For further questions contact me.

I have an old Macbook Pro. Every update Apple would push seemed to slow down my computer. A fresh start was needed, ideally one with no budgetary implications. After accounting for the risk, and through some trial and error, I managed to install Linux on my aging hardware. My distro of choice is Linux Mint with the Cinnamon desktop environment (though with animations disabled). I find it highly reliable.

With a new OS came the opportunity to experiment on a radically different workflow. A few months back, roughly around February, I ventured to try out the command line, mostly to satisfy the need/curiosity of using Git for my projects on GitHub. The elegant performance of the CLI was impressive, especially once compared to GitHub’s desktop client.

“If it applies to one piece of software, then maybe it extends to others”. That was the rationale that led me to explore a host of tools whose common denominator is their reliance on plain text and their implementation via the console.

Programs for the daily routine

My terminal emulator of choice is Terminator. The reason is simple: the capacity to run multiple GNOME shells and to ‘broadcast’ from one to the other makes several tasks much simpler. For instance, when I need to update the various ports of my colour schemes, which largely share the same code base, I can set up a grid with the items to be affected, write the commands in one part and have them mirrored in the others. One for all.

For my music I run cmus. Getting rid of itunes and similar applications has been a bliss. My local music files (mostly indie stuff which I buy to support the creators), managed in my preferred way, without any interference whatsoever, loaded in a split second. Effective. Robust. Wonderful.

For text I tend to use Vim, though I still go with Atom when working on larger projects. Vim is not your typical point-and-click kind of editor. It takes some time to grow accustomed to its peculiarities and conventions. At which point it transforms into a powerful piece of software that makes writing/editing a delight.

All email needs are covered by mutt. I configured it to interoperate with Vim. It is fast, simple, and free of distractions. Getting to “zero inbox” is very easy. Especially since I no longer employ methods that postpone incoming messages for when they are ‘truly’ relevant. If an email requires a certain action it gets executed promptly and remains in the inbox until completed. Once it is done it is archived or deleted. If it stays in the inbox for more than a few days, then I am doing something wrong. Email is one of my favourite communication media. For all its drawbacks, it remains a client-agnostic—and therefore adaptable—medium. I log in when I want and power through all the incoming traffic. Mutt’s approach is exactly what I need. Simple and thoroughly efficient. Just beautiful.

To this end, I should also mention Newsbeuter, the “mutt of feed readers”. I use it daily to go through all the RSS/Atom feeds I am following.

My task manager is Taskwarrior. It is an integral part of my personal computing. Virtually every activity goes there to be properly organised. If it is not documented, it does not demand my attention. That is the kind of strict method I apply. I divide processes into discrete, actionable tasks. Each is attached to a project and has a short expiry date. I never add overarching or longer-term plans such as “write a book”. They are not actionable as such, which typically means that they cannot be accomplished in a timely or rigorous fashion. If I have ideas that require such planning, I first think them through. Only after I have settled on the specifics do I include them in the list. The general objective becomes the project, the specifics are the tasks, each with its associated time frame.

Keeping it simple

That is basically it. The new workflow has made me more productive. Linux Mint has accelerated my machine’s boot times and made it more responsive overall. I derive efficiency gains from the extensive use of the terminal, be it in the form of miliseconds saved per action or the sheer pleasure of working in a near ‘frictionless’ environment (at least that is the impression of it).

Relying on such tools may seem atavistic, a throwback to the pre-GUI days of personal computing. Even so, there is no denying that the simplest implementation tends to be the one that is most likely to stand the test of time. It worked back then. It continues to ‘just’ deliver.

As for my preference for plain text files, I believe they provide for the most software- and platform- agnostic solution for the majority of writing needs. No specific office suite is required (you know which one). No need for being locked into a certain app ecosystem. Blog posts, code, books. I am, above all, a writer who needs implements that perform the basic functions of writing in the most consistent way. Plain text—and you may add markdown to the mix—has never failed me.

Efficiency. Reliability. Simplicity. Portability of documents. Peace of mind. The command line seems to be offering some tangible benefits to my computing, indeed my everyday life. There is no going back from here.