My Favorite GUI Programs, Part II
Mon 28 July 2025
Background
In yesterday's article, I went over the GUI programs that I enjoyed using over the years and remembered fondly. While I was going to go over TUI programs today, I realized that there's a category of GUI that straddles the line between GUI and TUI that deserved its own article, and that's "Keyboard-Oriented GUIs."
What I'm specifically talking about is GUI programs that are meant to be used primarily with the keyboard, that produce little to no clickable visual elements, yet let you view or manipulate graphical data using the keyboard, interactively.
Sadly, there is a pretty short list of programs that are meant to be used this way. I would really like to see this category expanded, as I find them incredibly useful.
The list
Zathura
Zathura is one of my favorite programs, and my favorite PDF viewer, hands-down. The entire idea is that you can run it from the command line and view a PDF graphically, but you entirely forget that you're in a GUI program. You just use the basic movement and search commands you're already used to from less and vi, and Bob's your uncle. I cannot recommend it enough. If you're lucky to be using a version that was compiled against the MuPDF library, then in addition to viewing PDFs, it can view ePUB ebooks natively. It functions as a very lightweight and basic ebook reader, as well. It can also read Comic Book Archive, DjVu, and raw PostScript files.
nsxiv
nsxiv is also a favorite that I use every single day. It's a very powerful image viewer and can even function as a thumbnail viewer to help organize your images. It also supports reading and writing filenames from/to STDIN/STDOUT, so you can use it as an image selector in your shell one-liners. In addition, the source code is pretty clean C, and I've been able to modify it to add more thumbnail sizes for higher resolution displays (or for just viewing thumbnails at more comfortable sizes). Very nice!!
Honorable mentions
luakit / qutebrowser
I really want to love luakit and/or qutebrowser. I love the idea of a keyboard-centric web browser, as browsing the modern web is an incredibly depressing affair for so many reasons more pressing than the lack of keyboard navigability, but that is an issue. My problem is that I can't really let go of firefox(-forks) as my main browser. My other issue is that while I'd really love to use something like luakit with javascript turned off as a lightweight browser, a lot of its functionality doesn't work with JS turned off. My issue with qutebrowser is that while it's a little more functional than luakit, the fact that it's written using the Qt GUI toolkit (something I'm usually in favor of) means that the actual web browser backend is based on Blink, a.k.a. Google Chrome. That's a big no, from me, but respect to the project.
imv
imv is a very similar image viewer to nsxiv, and has the added benefit of supporting both Wayland and X11 natively, but lacks the thumbnail mode, so I don't use it as often.
100 Days to Offload 2025 - Day 47
Category: Tech Tagged: 100DaysToOffload Computing FOSS (Free and Open Source Software) Linux Non-religious post Productivity