|
|
|
|
|
by readmemyrights
779 days ago
|
|
They don't usually count as TUIs, but there are some great CLI programs, even for interactive use. Perhaps the classic example beyond the usual is the MH mail handling system, which is still maintained as nmh [0]. Instead of a single monolith like thunderbird, mutt, or mailx, it consists of multiple commands that list mails, show them, let you compose new ones, etc, and keeps all intermediate state on the filesystem which makes it very easy to back up or do anything with using the usual file management commands. Mblaze [1] is a more modern implementation of a similar concept that uses amildirs, and it's how I interact with my emails these days. There are also programs that function more similar to "monoliths" but still act like a shell or repl as far as accepting commands and executing them. Clifm [2] is one example, it's the only file manager I seriously tried using before giving up and returning to ls and friends. If you have vi or any of its discendents odds are you can run them in "ex" mode where you use them similar to the good old ed. Speaking of ed, edbrowse [3] is a browser with an ed-like interface that can also read mail (and no I'm not making it up. An interesting thing about it (well, at least one of them) is that one can define "functions" which are pretty similar to functions in sh. For example, this is a function to search something on searx: ```
function+gg {
db0
b https://searx.be/
/<>/ i=~0
db1
/start search/i
i2*
/h1/
}
``` While this can certainly be done in a conventional browser using userscripts or such, I'd argue that this sort of function is easier to write because most of it is something you were doing already, and now you're just putting it in a shorthand, where in a userscript you'd probably have to use a lot of getElementById()s to do it, which besides being more verbose is very different to how you think about the problem. [0]: https://www.nongnu.org/nmh/
[1]: https://github.com/leahneukirchen/mblaze
[2]: https://leo-arch.github.io/clifm/
[3]: https://edbrowse.org/ |
|