Want to render plain text in a more interesting (or obnoxious) way? `cowsay` and `figlet` offer good fun.

Bonus points if you can actually use them in a context that is productive and useful. You've almost certainly seen figlet's output before in a number of different contexts, such as motds and headings.

I work mostly from the command line, but sometimes I need to open an external GUI program to do something visual.

Since I don't often use those programs, I may forget what I installed to open a particular file.

The command `xdg-open` from xdg-utils will try to DTRT and invoke the right program for you. You can query and change preferred programs using `xdg-mime`. And this works without a desktop environment (e.g. I use i3wm).

My last post on free software I use mentioned a substitute for using search engines for word definitions.

Another common use of search engines is unit conversions (e.g. 3 miles to km). For that and more, I use GNU units (gnu.org/software/units/).

I can't do any justice to this program with the number of characters I have left, so please, check it out; you won't be disappointed.

One of my favorite command line tools is `dict`---a dictionary and thesaurus. I use it multiple times a week. If you find yourself prefixing search queries with `define:`, this tool is for you.

If you install `dictd`, you also get the freedom and privacy of answering your own queries on a system you control, without the need for Internet access.

Another tool I often use at the end of a pipeline for data visualization is gnuplot (gnuplot.info/). It supports far more sophisticated graphs than I can ever hope to have use for.

I typically prototype using its interactive prompt, and then either write that to a static script, or generate the script and pipe it. It's an essential tool for command line data processing.

I use Graphviz (graphviz.org/) for more things than I could possibly recall. It is one of my core tools for data visualization for a wide range of data, and it's quite easy to use and generate graphs for.

If graphs get so large that the visualizations are no longer possible to grok, or if querying is needed, I may opt for a graph database instead.

The graph description language DOT (en.wikipedia.org/wiki/DOT_(gra) is simple enough to be useful for mapping out thoughts too.

To adjust the color temperature of my screen, I use redshift (CLI). I use an i3 keybinding to perform adjustments manually rather than relying on the time of day, since lighting varies wildly depending on the room I'm in, whether we have lights on, weather, etc.

I also sometimes use it to reduce strain on my eyes instead of reducing screen brightness because my X200's monitor makes a high-pitched whine when I reduce brightness even the slightest.

Yesterday I mentioned that I use i3 as my window manager. Unlike some others, i3 does is not a compositing WM---it doesn't provide double buffering.

en.wikipedia.org/wiki/Composit

Consequently, I may notice tearing when scrolling in my web browser, switching workspaces, or looking at fast-scrolling terminal output.

To fix that, I use compton. It provides other features, like shadows and transparency, that don't make sense for me in a tiling WM. I just use the `-CGb` options.

I use the tiling window manager i3 (i3wm.org/). When I log on, I'm greeted with a blank screen. Most of the time I have a fullscreen terminal or web browser, without even a title bar.

On my 4k work monitor I can actually take advantage of sophisticated tiling.

I used to use xmonad (another tiling WM), so my keybindings resemble what I'm used to from that.

I make heavy use of workspaces. i3 also allows me to rarely use the mouse/trackpoint.

Let's start with a program that knows how to get out of the way: unclutter.

I don't ever see this program run, and I usually forget it exists. I have it placed in my ~/.xsession as `unclutter -idle 1 -root`, which hides my mouse cursor after one second of inactivity. This is great for me, since on a typical day, the only time I use the mouse is when I use a web browser; otherwise, it gets in the way of whatever I'm reading or typing.

Over the 15+ years I've been using GNU/Linux, there are many programs that have become second nature to me. As a hacker, I enjoy tinkering with my system---why use a desktop environment when I could do the same thing with 100s of programs and hand-written scripts...!?

Each day I feel up to it, I'll give thanks to a free/libre program that has made a positive impact on my life, from every corner of my operating system, with the hope that others will find them interesting too.

Mike Gerwitz's Mastodon Instance

Mike Gerwitz's personal Mastodon instance