This is a list of software I tend to use on a regular basis, and am glad to have available (or at least dislike less than alternatives). It’s not a comprehensive list, of course, but it’s a list of things I think are worth mentioning. I intend to keep it updated as my choices change.
Calcurse: I used to use a little command line tool called Tofu as my todo manager, but I since stumbled across something called Calcurse while looking for a palatable way to deal with an iCal file sent to me by an employer/client. Calcurse is a console-based calendar/organizer application with a curses interface that also happens to come with an excellent little todo list manager that encourages keeping the list relatively small. I typically prefer command line over curses, and Calcurse even offers some of its functionality through command line options, but I tend to just open Calcurse in a terminal and leave it open pretty much all the time. It’s that handy. It’s also distributed under the terms of the Simplified BSD License, so that makes me happy too.
FreeBSD: I made the switch from Debian GNU/Linux a few years ago for a number of reasons, including the decay of the Debian distribution. I was immediately impressed with the technical benefits FreeBSD offered that I’d been missing all those preceding years, without realizing it — such as increased software auditing capabilities and reliability, better software choices in FreeBSD Ports than in the official APT archives (at least for my tastes), easier system configuration, and better documentation outside of manpage coverage (which is still one of Debian’s primary strengths). The feeling of enlightenment wasn’t nearly as big as the switch from MS Windows to Linux distributions, but it was still significant. Add to that the fact that it’s more thoroughly copyfree licensed (with a BSD licensed kernel and default shell, among other things), and I’m quite happy.
GnuPG: I’m not the world’s biggest fan of its copyleft licensing, but its core functionality is indispensable. It does actually have technical shortcomings (such as its inability to natively check multiple keyservers for keys), but some of them can be worked around and there simply aren’t any alternatives for others that suit my needs.
herrie: Rather than use some GUIfied thing with clicky buttons, I just wanted a music player application that did its thing with minimal use of system resources, minimal hard drive space consumed during install, and a keyboard-driven interface. The word “herrie” is Dutch for “noise”, and it’s quite effective at delivering the noises I want, in FLAC, MP3, and Ogg Vorbis formats. Its keyboard controlled interface is very reminiscent of Vim’s and Mutt’s. It can automatically communicate with Audioscrobbler, for crying out loud. It’s even copyfree licensed, under the terms of the BSD license. In general, it’s simple, effective, and efficient. The only downside seems to be its lack of true command line interface — it requires an active (curses based) captive interface to do its thing.
i3: I have finally come to see the light, with regard to tiling window managers. Since early 2011, I have been using a tiling window manager called i3 pretty much full-time, and it is distributed under the terms of a BSD license. I have also used dwm and a couple other tiling WMs, giving them each a real chance. I think that dwm would be my second choice out of everything I’ve tried, if i3 was for some reason not an option any longer, with the floating model AHWM (my previous favorite) tagging along in third place.
At first, i3 was nothing but good, as far as I was concerned. Eventually, however, an update to i3 came with an incompatible set of default keybindings that made things less smooth for me. It turns out the defaults were changed not directly, but by way of a change in the assumptions inherent in the way the window manager’s developers designed its operation. I have been told (by the project maintainer) they have plans to add in a way to optionally configure it to behave more as it once did, but such changes have not yet materialized as far as I’m aware. In essence, the changes make it more trouble than it is worth to organize windows in a tiling layout that I used to find extremely handy and productive for my typical workflow when coding.
Even with this deficiency, I find i3 easier to deal with than dwm or AHWM or anything else these days, so I’m sticking with it, and anticipating the promised enhancement that will allow me to recapture the previous bliss I found with i3. Dwm does offer some advantages, though, and I suppose they might win me over yet — and, for that matter, I might get enough of a handle on xmonad to feel at least as comfortable with it as with i3. I hear nothing but good stuff about xmonad.
Mutt: It’s my current favorite mail user agent, and has been for some time. It’s a huge productivity boost when dealing with email, as compared with previous tools I’ve used. There are some minor niggling annoyances in how it works, though. I haven’t found anything better, yet, but I may eventually have to write something better. Yeah, right — immediately after I write all the rest of the software I’d like to have but that doesn’t exist. I’ll get right on that. Of course, there’s the added incentive of wanting something that isn’t GPLed for my MUA. Dammit.
OTR: Its LGPL distribution terms are better than pure GPL, but still suboptimal. Regardless, it’s such a stellar piece of software that fills such an important need in my life that there’s no way I’m passing it up at this point. I’ve even let it lock me into Pidgin use, as much as I dislike the program, because Pidgin’s OTR support is so good. Some day, after I create my own Web browser, Vim clone, Mutt clone, GNU toolset replacement, OpenPGP implementation, and probably a dozen other things, I may have to extend CenterIM to properly support the OTR library for encrypted IMs.
scrot: Simply put, it’s a command line screenshot grabber utility. Combined with good keyboard shortcut configuration, such as that provided by AHWM, it becomes about the world’s easiest screenshot grabber in the world. It’s offered under a BSD license, so it’s copyfree software, too.
slock: One day, I started thinking about the possibility of getting a stand-alone screen locking utility to “secure” my laptop when I, say, went to the bathroom. I find myself in situations where I use my laptop around other people quite a lot, so that kind of functionality can be kind of important. I didn’t want a screen saver, mind you: just a way to lock the interface until a password is entered so you can’t really access stuff on my laptop, without having to shut down X and log out. Being the sort that favors lightweight window managers, my WM of choice didn’t have that functionality built in; that’s why I wanted a small stand-alone utility. That’s all slock does, and it’s perfect for my needs. Just type
slockinto a shell, and the screen goes black. Keystrokes are intercepted by the screen lock, mouse clicks don’t get through, and your GUI environment is effectively hidden from prying eyes. You can still switch to other TTYs, though, so be sure you’re logged out of those if you don’t want people to be able to access the running OS without logging in. Like everything that comes from suckless.org, slock is copyfree licensed by way of the MIT/X11 license.
tmux: I recently replaced GNU Screen with this handy little tool. So far, it does everything I need it to do, and does it well. It’s very similar to GNU Screen in terms of interface and capabilities, but it’s copyfree licensed (via the BSD license, specifically) and a much smaller program — both clear wins, in my estimation. Like rxvt-unicode, it also employs a client/server model of operation, with much the same benefits. The major immediate gotcha in making the transition is the fact that the command prefix is
^Aby default. The reason for this change is actually a very good reason, of course;
^Ais the command character used by most shells to move the cursor to the beginning of the line, and using it for the command prefix in your terminal multiplexer interferes with the ability to use it as the command character for moving the cursor to the beginning of the command line. The other basics are quite easy to find in the clear, concise manpage for tmux (including the
tmux attach-sessioncommand used for reattaching a detached session).
Vim: Need I say more? Seriously, this was the piece of software that really got me into the whole “Oh my God, this enhances my productivity so much it makes my head spin!” way of thinking, ultimately leading to other non-GUI, no-frills, gets out of my way, functionality over feature richness software discoveries. Of course, there are some things I’d like to improve on (including licensing), but options I’ve discovered such as nvi lack basic necessities (such as multiple undo — I used to list syntax highlighting here, but I don’t really care about that these days) that I don’t feel I can give up at this time. Maybe an eventual improvement of an existing tool would solve the problem, or a rewrite from scratch. I’ll just add that to the queue, I guess. Ha ha. If I live past the Singularity, and go all “immortal transhuman”, maybe I’ll get around to it some day.
XTerm: For a while, I used rxvt-unicode for a number of reasons. The key reasons were its smaller size than XTerm and default behavior that suited my preferences. Of course, defaults are easily overcome with configuration changes and, frankly, the smaller size of rxvt-unicode is somewhat mitigated by the fact that XTerm is installed with the X Window System anyway — so there’s little point being stingy about program size when you’re going to end up with the larger program installed on the system anyway. I’ve gone back to using XTerm, and explained how I use XTerm so that it suits my needs. Of course, I’ve only explained why I stopped avoiding XTerm, and not why I actually like it. The answer to that is pretty simple: it doesn’t require a mouse to use effectively, it’s copyfree licensed, and it offers Unicode support via the
uxtermwrapper as well as by way of an X resource. Also . . . it’s basically everywhere, something on which you (I, at least) can count, which is nice. It’s kind of like a “standard” that way.
xxxterm: When I first discovered the Phoenix browser, it was like an amazing revelation. It was a browser that was so much better than the competition that it boggled the mind. In time, the name was changed to Firebird due to a conflict with other software with the Phoenix name. It kept getting better. Around the time it reached v1.0 release status, and the name was changed once again so that it became the Firefox browser, something else changed as well. Instead of getting better as the developers continued to work on it, the browser got worse with every new release. For the last half-decade, I have suffered increasingly at the hands of the perversely guided browser project that has abandoned all the principles that originally made it great, and have found myself essentially unable to use any competing browser in its place because (of course) all web browsers sucked.
Late in 2011, I discovered the xxxterm project; in January 2012, I used xxxterm almost exclusively. After close to a decade of never being able to really get away from Firefox for various reasons, in that one month I only launched Firefox a very small number of times (probably two or three times), and that only to get at bookmarks and saved tabs that I wanted to move to an xxxterm session. While xxxterm has a steep learning curve relative to other browsers (like vi relative to other editors), and generally requires the user to change the way (s)he uses — and thinks about using — browsers to get the most out of it (like vi requires the user to change the way (s)he uses — and thinks about using — editors to get the most out of it), xxxterm compensates the user for this by providing enhanced security, stability, and productivity to the motivated user (like vi enhances the productivity of the editor user).
Possibly the most amazing thing about the way I have completely left Firefox out of my computing life for about a month now is that I did not have to try to do so. Just getting familiar with xxxterm has resulted in me ignoring Firefox, not even thinking about it or missing it, in much the same way I one day found myself not turning on MS Windows for a few months back when I was a relatively new user of open source Unix-like systems because the Unix-like system I was using at the time provided everything I needed, better than MS Windows could provide any of it, despite the fact I had MS Windows customized and tuned within an inch of its life and running on a machine with probably six or eight times the power and capabilities of where I was running my Unix-like system. Firefox has just become . . . irrelevant. Finally, after years of searching, I found a way to escape the screaming plunge into stupidity and aggravation Firefox had pursued after reaching 1.0 release status.
Zathura: An open source development group calling itself “pwmt”, or Programs With Movie Titles, decided to create a PDF viewer called Zathura. It uses vi-like keybindings, and it’s quite nice. I like it a fair bit more than that old mainstay Xpdf, and (unlike Xpdf) it is even distributed under a very friendly license.
In the future, I think I’ll maintain my software list on my tools page instead, so this page may well get woefully out of date.