menga

tui, the interface for gen x nerds

I first said that I might be switching over to using email in the terminal. After that, I talked about Inbox Zero.

After a lot of experimentation, I found a setup that works for me, so I'm going all-in with TUI for my email.

TUI, as in Text User Interface, is as computery as it gets. The email client I've decided to run with is NeoMutt, and for one main reason. It has something regular Mutt does not called New Mail Feature. If NeoMutt did not have this very specific thing, I wouldn't have bothered with it, and I'll get back to this in a minute.

My NeoMutt setup is a combination of POP3, IMAP, getmail and server-side filters. It's complicated, and I'll leave it at that. I don't think anybody who uses Mutt or NeoMutt does it simple, because why bother with the plain stuff when you can customize the bejeezus out of it.

As complicated as my NeoMutt setup is, the end goal was to have very minimalist email that works. Did I get it? Yes. Mission accomplished. The complicated stuff is done, and now NeoMutt just sits there and does its job.

The older I get, the more minimalist my computing becomes. Having email as a terminal text-based thing brings a feeling of calm and peace. The experience could even be described as zen-like. At some point I may even go to the next level and pare down my Linux setup to using an ultra-lightweight window manager like Openbox. Or maybe Xfce, which while not ultra-lightweight is something I always got along with in the past.

This is not to say I want TUI-everything, because I'm not about to start using the internet that way. But where email is concerned, TUI truly is a proper fit since it's just all messaging.

However, there is one GUI thing I wanted, and wow was it a fight to get it, but I figured out a way. In fact, what I'm about to describe is a battle I've had to engage in every few years for one reason or another.

First, rewind the clock back to the late 1990s.

Microsoft Outlook Express had this very nice thing where when a new email arrived, an icon would appear next to the clock. That was your mail notification. The "full" Outlook had this too. Also very nice.

That little icon, while not sounding like all that much, was really convenient. You didn't have to open a window to check your email. If you had a new-mail icon down there at the clock, you had new mail. If not, no new mail. Simple, easy, and almost perfect.

Where things got perfect, at least for a while, was with Mozilla Thunderbird. You could still get that icon in the tray for new mail, but also something else. With the right plugins, you could "close" Thunderbird, but instead of it closing, it would minimize and HIDE itself. How did you get Thunderbird back? Look for the little Thunderbird icon next to the clock. Click-click, and up pops your email. Click the minimize OR close button in Thunderbird when done, and it keeps running but hides itself away. If there was no new mail, a little plain Thunderbird icon was displayed. For new mail, it changed to a different icon of your choosing. And as soon as you read all your new mail, the icon would automatically switch back to the no-new-mail icon. Brilliant setup.

This setup is commonly known as minimize to tray. It means, "When I click minimize or close in my email program, keep it running, but hide it, show a tray icon next to the clock that I can click to bring up the email program when I want, have that icon change to show whenever there is any new mail in the inbox, and also change back to a no-new-mail icon when all new mail is read."

Only two email clients in Linux I know of mostly do this right, Sylpheed and Claws Mail. You can configure either so when minimize is clicked, it stays running, hides, shows an icon in the tray, changes the icon whenever there is new email, the changes it back when all new mail is read. Clicking the tray icon brings up the program. However, if you click X to close the program, it just closes. You can't do the "clicking minimize OR close just minimizes to tray" thing. Like I said, it mostly gets it right.

I do not have minimize-to-tray for NeoMutt, but I was able to come up with the next best thing.

NeoMutt's New Mail Feature allows the client to fire a command or a script whenever new mail arrives. A simple example of that would be to fire notify-send -t 5000 -a "NeoMutt" "You have new mail" for a 5-second desktop notification. And yes, there are ways to pass over the subject line and other stuff in the notification if desired.

However, that's not what I wanted. I needed an icon that appears and stays there where I can see it.

I tried getting an icon to appear in the tray, but nope, nothing I did worked. Just when I was about to give up, I had the the thought it might be possible to change the Konsole titlebar instead. Did some experimentation, and yes, THAT worked. Whenever a new email arrives, NeoMutt fires a script, and the titlebar changes to show a light bulb emoji icon followed by "new mail". That's exactly what I needed. And this is one of the very few instances where I was happy emoji icons existed, because it saved me the hassle of having to figure out how to show a PNG in the titlebar area.

After that, I needed a way to reset the titlebar. It was much easier to figure this out. I assigned a NeoMutt macro to F8 that runs a tiny script to change the titlebar text. Done. Yes, it has to be done manually, but at least I don't have to restart the client. There is probably a way to automate this using folder-hook, but I'm fine with what I have because it works.

Is this as good as minimize-to-tray? No, but it's good enough. The only GUI thing I wanted was that new-message icon notification, and got it. Considering the fact that NeoMutt by its very design doesn't do graphics at all, I think I did okay.

Why did I go through all this crap?

It's for minimalism as mentioned above, nostalgia because it reminds me of BBS messaging back from the early '90s, futureproofing so I have an email UI that absolutely does not change, and understanding that text is text.

The worst messaging experience is in a graphical web browser. All web browsers are memory-hungry pigs. Add in images, audio, video, emojis, bloated code, badly written JavaScript, servers getting blasted with millions of data requests, and the whole thing is miserable to use. It doesn't matter if it's email or social media. The experience of using messaging in the graphical browser sucks because of all the garbage intertwined with it.

Messaging is about the text. No graphics are required to read text. Strip all the crap out, and messaging gets better instantly.

Only when messaging is experienced in something like NeoMutt does one truly understand how weighed down a graphical web browser actually is. This is when mini PCs and refurb Dell Latitudes start looking really attractive. You get one of those, yank out the drive, slap in a 500GB SSD if it needs one (you don't need anything more than that for a host drive), install Linux, install your TUI programs like NeoMutt and whoa-ho... wow, it's really, really fast with no choke anywhere.

If you're wondering, yes, others have tried to do the text-only thing with social media like Facebook. I'm not talking about a "lite" or "basic" version, but rather a very stripped down text-only experience. It's an unfortunate truth that programs and apps that deliver a social media text-only experience never last. As is the way of things, the platform will inevitably change something (by design?) that makes text-only programs/apps break.

With email, as long as your account has POP3 and/or IMAP access, you can still strip it all down to just text.

TUI for email use is awesome.

Like this post? Leave a tip

Published 2025 Nov 30

Previous Post
Next Post