I traded e-mails with Miroslav over the past week, answering some questions about the software I actually use on a daily basis, rather than the software I see for an hour, write about, and then uninstall. Miroslav was interested in what programs actually earn the honor to reside on my personal systems.
And since it’s the first day of a new year, and since there’s very little on my list right now that warrants the top spot of the year, and since it’s been a long time since I updated the software page on the old blog … let’s do it.
Short of feeding you the results of
yaourt -Qe, here’s the list of what appears on K.Mandla’s systems. You can interpret these as endorsements if you like, but you might just take them as a general nod of approval.
alpine: My very first experiences with e-mail — the earliest actual interactions with e-mail that I can remember — were with pine, as part of a university e-mail system. My “mentor” sat me down in front of pine, showed me how to log in, and said, “Now you can e-mail all your friends.” The problem at that time (early 1990s, I should mention) was that none of my friends had e-mail. So I shrugged, thanked her, and went on with my day.
I don’t hold out any particular love for alpine, which is ostensibly pine’s progeny, but it simplified my task of accessing five or six GMail accounts fairly easily a long time ago. I keep it around mostly because I have it set the way I like it, but I’ve been teased by other e-mail clients in the past … perhaps most notably mutt and sup. Like I’ve said before, alpine isn’t the best, but neither is it the worst. I fear saying it, but I imagine I will continue using it not because it’s such a wonderful application, but because I imagine changing to be tedious. 🙄
alsamixer: alsamixer is probably the most fundamental and easy-to-manage sound access tool in the alsa-utils suite, and my go-to tool when sound issues creep to the surface. Not only does it give you instant control over (almost?) every aspect of your sound hardware, but it might even point out a few features you didn’t know it had — like the 3D sound features of this ancient beast.
All the same, there’s probably little point in me fawning over alsamixer, since what it can do will vary in accordance with your sound card — even if how it does it is more or less always the same. Look for independent left- and right-control features, one-button mute actions for just about every channel, a full synopsis of your hardware and its representation in your system, and a whole different display specific to sound capture. Best of all, it’s got rockin’-good color. 😉
alsaequal: Having alsamixer on board is more or less a requisite for alsaequal, and when you’ve seen alsaequal in action, you’ll understand why. alsaequal reroutes the alsamixer interface into a multiband equalizer for your system, and depending on your hardware, your listening environment and your playback capabilities, alsaequal has the potential to turn your listening experience from crud to crystal. Just … please … don’t use it like a volume control. 😛
alsaequal is a must on my system, since I primarily work with laptops, and the words “laptop sound system” are generally understood to be an oxymoron. alsaequal can’t turn the cheap plastic speakers on an EzBook 800 into a pair of Klipschorns, but they can at least let you understand the words to your favorite pop song. Everything is awesome. …
dict: dict is simple, straightforward and powerful. It’s also simple, uninteresting and terrifically plain. Give dict a word, and it will recurse all its dictionaries and reply with the results it finds. Thesaurii, computer dictionaries, Ambrose Bierce, name dictionaries, law dictionaries, translations — all of these are possibilities with dict, and there’s little more it wants from you than a word in question and a working connection to the Internet.
As a zero-value tip, I can tell you that I use aliases to separate out one or two of the specific dictionaries that dict can access — so
alias thes='dict -d moby-thesaurus' is a one-shot thesaurus, and so forth. Granted, dict doesn’t do you much good if you’re locked into an offline situation, but if you do any writing at all, it’s infinitely faster than trudging through the congealed crap that encrusts most browser-driven online dictionaries. I need a smilie that better expresses raw, unadulterated fury than this: 👿
exiftool: I don’t have a screenshot for this because it’s just a one-shot executable that wrangles the exif data in an image, and allows you to rename, re-sort or review a given image or images, with reasonable ease. It’s not really an application per se, and listing it here might make you think it’s somehow accessible to less proficient computer users, but if you work with large photo collections and need a way to tango with the embedded data, this can literally be a lifesaver. A solid thumbs-up for this, even if there’s not much to show for it. 😐
gnupg: In this day and age, there’s almost no reason for me to include gnupg in this list. For one, gnupg is probably installed in every distro available, and so much of the web of software dependencies relies on it, that you probably wouldn’t get far without it.
On the other hand, given the social and political climate of the world today, we’d all be fools not to look a little deeper into the basics of encryption and security. I gave a few ideas on how to use gnupg a long time ago, and I can tell you that I have used it for that exact same purpose, in that exact same way, within days of writing this because I planned some holiday travel and don’t trust the intermediary agencies that monitor it. gnupg is not the only method to protect your personal information from corrupt governments or unscrupulous criminals, but I’m confident that — when used properly — it’s one of the best.
htop: I know, there are close to a million different system analysis tools for Unix, another million that serve as proper full-screen console monitors, and another million that piggyback the popularity of the traditional top tool by suffixing their names with *top. To that end, you have the choice of just about any *top, and it will deliver — with varying efficiency and helpfulness — a rundown on the subsystem of choice.
htop is the clear winner among system-wide status monitor tools, and the reasons for that are very simple and very easy to see, even by default: It uses the full space available to it. It doesn’t balk at small terminal sizes. It has a default color scheme that is attractive and logical. It keeps its controls in plain view. It can handle just about any hardware arrangement or software arsenal. And it’s customizable to a high degree, so if you’re not happy with its defaults, you don’t have space to complain. I say this rarely, but this time I think it really fits: If you need an example of how to make an effective, clean, useful and attractive console program, follow htop’s example.
Midnight Commander: There’s an expression that I’ve heard in English that says, “Never apologize. Your friends won’t expect it, and your enemies won’t believe it.” In the same way, there’s no need for me to try and sell you on Midnight Commander as a text-based file manager: If you already embrace it, you don’t need the explanation. And if you have another program you prefer, you won’t buy into my endorsement.
I should mention though, that there is a self-professed contingent of text-based software users that claims to use no file manager at all, and that any interface whatsoever is an impediment to the core Unix tools for moving or copying files. That may be the case, or it may just be Internet bravado. I can only reply that there are situations where moving or copying is easier with something like mc, and I add to that the many unusual and interesting features and abilities that mc offers over a dull blinking cursor. Like color. 😉 Do as you will though. It’s your computer. Don’t do anything I suggest if it doesn’t appeal to you.
moc: This is where the list gets serious, mostly because the genre of text-based music player for Linux is so overdone, and so overfilled with random snippets of half-working audio playback code, that listing the command-line audio player du jour becomes a yawnable offense. There are quite possibly more random attempts at a text-based audio playback tool in Linux than any other software classification, and after spending years — years, I tell you, years — sifting through them all, there are more broken, incomplete and half-working thumbsuckers out there than there are worthy, competent and usable attempts at listening enjoyment.
My personal rant against half-baked music players aside, there are some excellent systems and interfaces available. My personal allegiances lie with moc, mostly because mocp resembles the ancient cplay tool, which is where my initial adventures at CLI-based audio playback began. You may find some variation on mpd and mpc more to your liking, or you may venture in a completely different direction altogether. That is the inherent beauty of working with Linux: that your music can follow your muse. 😉 (Sometimes I am so witty!)
most: I suppose you could meander through your Unix lifespan with no $PAGER at all, or rely on just whichever one popped up in a moment of crisis. But all pagers are not created equal, and just because one distro relies on less at its core, that doesn’t mean there isn’t more available. And just because every pager tries to be more, doesn’t mean less is better or most is best.
I keep most installed because it has the most features I like, and most options work best for me. I do think most could be improved on some small points (like the way it handles line wrapping, or how it moves between paged files in sequence). But most is better than more and more than less in most cases, and more and less are not anything like most that I can see. You might like less and you might like more, but most is what I prefer, and what I have installed. Did any of that make sense? 😛
ncdu: I suppose I described my rationale for keeping ncdu installed yesterday, but reading that again makes me realize that my brief synopsis doesn’t really do justice to the tool. ncdu is perma-installed for me because it’s easier, quicker and more helpful than the original traditional tool , and does its job with so much more flair than the klutzy old
It’s true, I’m a sellout to anything that can throw a full-screen interface into a terminal window, splash a few colors here and there, and make me feel like I’m actually getting more out of my machine as a result. I suppose it should be enough to say then, that ncdu doesn’t use color and could be supplanted by a few core Unix tools, and I still use it. It is possible, after all, to invent a new way to approach a problem, and improve upon the old way of doing things.
pass: Password “wallets” are a new arena for me technically, given that I only adopted pass as my password manager of choice a year or two ago. (Yes, that does make it a recent adoption.) pass has quite a few things going for it — mostly its straightforward style and Unixy approach, which I prefer for something as mission-critical as managing my avalanche of passwords.
I will be honest and say that I am dearly torn between pass and yapet, which takes an altogether different approach and offers just about everything I really like in a console application. I have contemplated switching even just in the past year, because yapet has made tremendous advances since I first tested it. And I do feel a smidgen of hypocrisy in advocating for full-screen, full-color, interface-driven text-based software, but relying on something plain and CLI-based in pass. If I finally muster the gumption and make the switch, I’ll make a note of it here.
renameutils: There are a lot of shortcuts to mass file renaming, and a few of those even have their roots in the core utilities that are available in almost every distro. renameutils wins my attention mostly for the
qmv tool, which I have hard-wired into my system with an alias that calls specific options. Since
qmv is bright enough to drop you straight into your $EDITOR to make changes, I can quickly rename huge gobs of files through my standard text editor, write out the changes, and
qmv takes over the unenviable task of checking and renaming.
Of course, that does mean that I don’t have a screenshot to show, since
qmv is mostly transparent so long as you don’t make a mistake. It only pops up to warn you if you’re doing something stupid or impossible, and get your advice on what step to take next. And if
qmv doesn’t fit your bill, there are a range of other tools in renameutils, and any or all of them could be winners. Install, explore, decide.
sc: In a few months I will be at a point where I must make a decision, to either stick with sc as my spreadsheet of choice, or use that moment as a jumping off point and switch to slsc. The context is completely outside the realm of this blog, with the exception that I’ve used sc for at least the past two years as a way of managing and calculating my data. Around May I won’t need it any longer, and can shift to slsc for future projects.
All that aside, sc is pretty much my gold standard for text-based spreadsheets, and in spite of the fact that some sources date it back to the 1980s, I’ve never had a problem building, installing or running it. It’s light as a feather, has reasonable controls, saves its data as hand-editable files and to date hasn’t destroyed anything I have fed it. slsc would be an improvement and I think when the time comes I will shift to the newcomer (which is decades old in its own right), but for now, when it comes to a spreadsheet, sc is what I rely on.
snownews: It’s odd that I have to mention snownews at all, but because of a real-life project that is vaguely related to sc, I also have to monitor some news sources, and snownews is a decent way I can do that. I don’t know if I can endorse snownews as The Best Possible Newsreader for the Text-based Environment, but that’s mostly because I haven’t used very many newsreaders, and don’t generally rely on them at all.
So it’s possible that you see or use one that’s better — I know there are quite a few others out there — but for fundamental news access and reading, it’s a decent contender. Most functions are one-keypress commands, it can sort and label and categorize and otherwise manage feeds, and while I use it for maybe five or 10 addresses at most, I get the feeling it can do much more. I don’t hold much allegiance to it though and I’m not fond of all the perl dependencies, so if you know of one better, speak up. I might be converted.
tty-clock: It’s been a long and interesting drama, watching tty-clock mature from a basic clock display to the text-based ubertool it is now. With plenty of options for color and behavior, and even more for formatting and display effects, tty-clock is a program I’m darned proud to have around, regardless of my window manager or desktop setup.
I could endorse quite a few other clocks — clockywock is a great tool, and so is tbclock — but for readability, customizability and any other -ability, tty-clock is way ahead of the pack. Give this a one-key startup command, and you can pop it into place and back out again in a fraction of a second. Set it as a terminal screensaver and it can serve two functions. Run it in a corner of your framebuffer terminal emulator with the multiplexer of your choice, and other geeks will bow to you. It’s a win-win, plain and simple.
tudu: I wasn’t joking when I said yesterday that tudu ejected hnb from my system in a matter of minutes. I’ve seen and used more task organizers and to-do list managers than most people know about, and most of them fell by the wayside because hnb was so good and worked so well and ran so fast. But tudu covered every point hnb could offer (with the exception of one small feature, and I won’t tell you what it is), and doubled down by offering its own features and bonuses. Embrace, extend and exterminate.
And in retrospect, that’s how I am when I see a program I like, can understand and find appealing. It only takes a few seconds to see the merits in switching, and given that tudu works, looks and runs a lot like hnb, I didn’t need coaxing. Perhaps that’s how software adoption should go.
vim and vimwiki: It would be an understatement to say I have a love-hate relationship with vim. I have rarely met a program so counterintuitive, unfriendly or obtuse, and still taken the time to learn it. By all rights my interactions with vim, or its predecessor, should have lasted little more than a few minutes, before complete abandonment and dismissal to the software dustbin. It’s complex, arcane, and a complete antithesis to user-friendly software.
The fact that I use it anyway is not a testament to vim in the least. In fact, vim is lucky vimwiki is around — because as soon as I have no need for vimwiki, vim will be removed from my system with frightening speed. Terminated, with extreme prejudice. vim may be the worst possible solution for editing at the console (and I say that having tried scores of alternatives) but vimwiki is everything that vim isn’t: It’s clean, fast, obvious and interactive. It has a wide range of features that I just never have the chance to use, and wish I did. It’s easy to learn, easy to manage, and doesn’t make you feel a fool if you make a mistake. How can something so good be part of something so awful? 😐
wyrd: I used to rely on wyrd on a daily basis, for scheduling appointments down to the 15-minute interval, and it was a godsend. wyrd can track, manage and display a battery of regular or unique events, show them in a fully graphical arrangement and give you the ability to move and edit them as you need to. If it weren’t such a great text-based program, I’d assume it was intended for the graphical arena.
Of course, the real wizard behind wyrd is remind, which handles all the real work involved in scheduling and managing your appointments. wyrd is the pretty face, and remind is the ugly machinery. You can’t take advantage of wyrd without remind, but remind without wyrd is unappealing to the same degree. For sheer muscle and ease of use, wyrd beats out just about every other calendar and timetabling tool, even for small tasks. Don’t be afraid to use it.
The last tools I could mention are unique to specific hardware or distros — things like yaourt for Arch systems, or ssh for secure access, or ntp and cron for machines so old that they can’t keep time properly. I could mention them as well, but some systems use them at regular intervals, and some use them once a month. It’s hard to say, and so they’re probably not worth mentioning.
But what you see there is generally what I install within minutes of building a system. It might vary a little depending on what the system is intended for, and of course everything here is flexible and subject to change. That’s the way life is though. 😉