16 ms·
Without a GUI: How to Live Entirely in a Terminal
- groovybits 7y agoMight I suggest some alternatives: * Window manager: i3 or i3-gaps * File manager: ranger or nnn * Documents/Presentation: vim + markdown + pandoc. You can use pandoc to create both documents and slide presentations! * PDF viewer: zathura
- deleted 7y ago[deleted]
- tines 7y agoHere's the setup I like to use. A little complicated for some but I really like it: * Window manager: emacs * File manager: emacs * Documents/Presentation: emacs + latex mode * PDF viewer: emacs
- teddyh 7y ago* Spreadsheet: emacs (M-x org-mode or M-x ses-mode) * Calculator: emacs (M-x calc) * Mail reader: emacs (M-x gnus) * Programming IDE and debugger: emacs * Terminal: emacs (M-x shell, M-x eshell, or M-x ansi-term)
- antognini 7y agoBut what do you use for a text editor?
- ethelward 7y agoEmacs + evil-mode of course, the best of two worlds.
- sdegutis 7y agoEmacs is actually a surprisingly good file manager. Dired + Ivy + knowing a few obscure shortcuts, and it's significantly simpler, faster and safer than either using Finder or Terminal. I've recently dusted off Emacs again after a few years of VS Code, indenting to use it for some JavaScript/TypeScript client work. If anyone's interested, here's my Emacs setup. If you temporarily move ~/.emacs.d and clone this there, and open Emacs, it'll setup the rest for you. (Although it's a bit bare-bones so it presumes you're already familiar with reading Emacs config files and figuring out how to use it.) https://github.com/sdegutis/dotfiles/blob/master/.emacs.d/init.el https://github.com/sdegutis/dotfiles/blob/master/.emacs.d/in...
- TeMPOraL 7y agoFun dired trick: dired is essentially a styled, read-only output of `ls`, but you can use standard Emacs combination for switching buffer from/to read-only mode, C-x C-q. Once you've done that, you can literally edit the output of ls (or most of it) to make it reflect the desired state, and then press C-c C-c to commit, and dired will apply the changes. I use it almost daily, it's particularly useful for batch renaming files - and since you're working with an editable text buffer, you can use whatever tools you like - like copy-paste, regex search&replace, multiple cursors, etc.
- sdegutis 7y agoIt's also smart enough to know to use a temporary intermediate filename when you rename multiple files to use each other's names, e.g. swapping a.txt and b.txt.
- groovybits 7y agoI tried emacs for about a week, but ended up just going back to vim because I'm comfortable with it. However - over the years, I've realized that its not vim that I want, its really vim keybindings that I want. I have them built into pretty much everything (file manager, browsers, PDF navigation, etc). I like the workflow. Can you recommend any good 'vim to emacs' conversion guides that keep the same vim keybinding workflow?
- dimitar 7y agoTry Spacemacs
- tines 7y agoI haven't used it but I hear that vim people like the EVIL package.
- zaiste 7y agoGive Doom Emacs [0] a try. Lighter than Spacemacs. [0]: https://github.com/hlissner/doom-emacs https://github.com/hlissner/doom-emacs
- clircle 7y agoInstall evil-mode and evil-collection. I use general.el to configure a leader key and make my a personalized, stripped-down spacemacs. It's heaven. https://github.com/emacs-evil/evil-collection https://github.com/emacs-evil/evil-collection https://github.com/noctuid/general.el https://github.com/noctuid/general.el
- beenBoutIT 7y agoi3 is great because it lets you live entirely in a terminal until you need a window.
- tluyben2 7y agoi3 (or something similarly light weight) really changed eveything for me. Especially the difference in both productivity and battery life over all other solutions I tried is something I can highly recommend. It completely turns ‘battery life is bad under Linux’; I consistently get far more hours under Linux with i3 than using ‘normal’ WMs or Windows.
- rerpha 7y agoTl;dr: q:why? a:fuck knows!
- vcavallo 7y agoquick answers from my personal experience: - keyboard-only workflow is fast and comfortable for me. less friction, no “aiming”, scriptable actions - typically faster and smaller apps - easily organizable and navigable (again entirely keyboard) with a multiplexer like tmux - usually very scriptable and customizable
- jolmg 7y agoYesterday, I had to analyze some tabular data. Basically, I was given some CSVs and I had to return different CSVs derived from them. It was a lot of data, and what I had to do was a little complex. Took me a third to half a day. Turns out the CSV files they gave me were wrong and pretty much unfixable. They'll have to create them again and I'll have to redo the work. Having done it in the terminal instead of a GUI allows me to simply re-execute my actions from my shell history, and do the same work in a few minutes. Had I done this work in a GUI spreadsheet program, for example, ignoring the fact that it would probably freeze a lot on this amount of data, it would have basically meant redoing the same work by hand and take around the same amount of time. There is no history for GUI actions. I can't tell the computer to redo an arbitrary set of clicks and opening menus and dialogs and typing in fields that I did yesterday. As another example, right now I'm monitoring the logs of a type of system running on all company branches, and I'm doing it with a simple: for ip in "${ips[@]}"; do ssh "$ip" 'tail -F path/to/log' | sed -u "s/^/$ip: /" & done | tee combined.log wait Every time something new happens in any branch, I get a line about it, telling me what's up and where it happened. I can resize the terminal to any size; the whole of the screen realstate it occupies has only the information I need. I'm also simultaneously saving these log entries I'm monitoring for now. The GUI version of this would be to install a graphics server on these servers and logging in with some remote desktop protocol to all of them at the same time. That's a lot of video feed streaming to my machine at once, in comparison to plain text. I guess I could set up the remote desktop windows in a grid and open some specialized file monitor GUI program (I don't know of any such equivalent to `tail -F`), and look at them separately. To save the logs, I guess I would have to record my desktop, producing a video file. Too bad I can't do much with it. I can't search the text that appears in it, like I could with the combined.log by grepping it. GUIs rock when playing 3D games, editing images, watching video, etc, but they suck at pretty much everything that doesn't imply graphics. In my case, most things I do don't imply graphics, so living entirely in a terminal is a huge win for me.
- jessmay 7y agoWordGrinder and Finch are user interfaces though? How is that "Without a GUI"?
- dubcanada 7y agoKeyword being graphical.
- jessmay 7y agoThe user interfaces have graphical components and menus if you bothered opening the link.
- vcavallo 7y agooh give me a fucking break you know what it means, stop being obtuse. “how to live entirely in a terminal”. the author is talking about using terminal-only applications (which of course have interfaces and “graphical” components)
- hjek 7y agoIf we're that pedantic, then any visual representation of plain text is also "graphical".
- groovybits 7y agoThere may be a general misconception of GUI[1] vs TUI[2] nowadays. The requirement for a Graphical UI (GUI) is that the user interacts with it via graphical icons and visual indicators. These can exist within a terminal. So, personally I would say WordGrinder and Finch are GUIs in this literal sense. However, your typical lay user may not interpret it this way. TUI is a sort of abstract term. Sometimes people mean Text UI and sometimes people mean Terminal UI. I don't think these are mutual exclusive. I would understand a text-only UI to be without any visual indicators, whereas terminal UI could be either text or visual. I guess its also worth noting that the phrase 'TUI' was coined after 'GUI'. Perhaps TUI was coined to differentiate the traditional GUI application (a window drawn on a screen with sliders/buttons) from the traditional terminal application (text-only commands). But nowadays, we have libraries like ncurses, that allow us to draw things within a terminal. 1: https://en.wikipedia.org/wiki/Graphical_user_interface https://en.wikipedia.org/wiki/Graphical_user_interface 2: https://en.wikipedia.org/wiki/Text-based_user_interface https://en.wikipedia.org/wiki/Text-based_user_interface
- ohazi 7y agotmux is a godsend, but there are a lot of things broken by default. I've been collecting a minimal set of nicities for a while now, if anyone is interested: https://github.com/ohazi/dotfiles https://github.com/ohazi/dotfiles Giving the man page a cursory skim is recommended.
- pizza 7y agoYou should take a look at the changes made for tmux 3. They’re going to break quite a few configs. It might also represent a new era for tmux, though, as it seems like the creator is adding some text UI primitives to it (eg the right-click menu). I also really love byobu, so it would be great to make it more powerful, too.
- ohazi 7y agoYeah, I've had to maintain multiple config files because Amazon Linux, Debian stable, Debian testing, Ubuntu, Raspbian, various Fedora versions, etc. have all had different tmux versions at different times, and upgrading locally involves some termcap stuff that wasn't always reliable. I fully expect to have to revisit this again soonish. But most of the tmux changes over the years have been clear positives, despite the config churn.
- inetknght 7y agoHonestly if I had one complaint about terminals, it would be any time, every time, and how often a CLI program decides it's talking to xterm-color and the renderer deciding for some reason that it doesn't like talking xterm, and somehow the character stream decides to "clear" the screen and move the cursor to 0,0, and none of the characters get erased and suddenly nothing is readable. It happens far too often. I wish TMUX would be capable of noticing and either fixing or suggesting a fix for that kind of garbage.
- ohazi 7y agoCompletely agree. The problem is that there are half a dozen ways for a program to figure out where it's running, but (poorly) pattern matching on $TERM is way easier than checking for individual features with termcap. It's also almost impossible to validate a program against different environments other than just manually trying as many as you can tolerate. Also there are lots of systems with broken/incomplete/incorrect termcap databases, so now you're looking at kludgy exception lists anyway. Tmux switched from using xterm- to screen- and then tmux- as its $TERM at some point, and adding a proper termcap entry, and it's mostly been a net positive, but some things definitely break as a result. The most annoying thing is that $TERM is inherited over ssh, but the termcap db isn't, so it's not enough to have your local programs configured correctly, you need to have the same config (or at least a workaround) available on all of the remote systems you use. Tldr: xterm- is ossified, and trying to do anything else, even the correct way, is a nightmare and often can't realistically be made to work.
- fortran77 7y agoThese realizations are humorous to software folks of my generation who started on Punch Cards, then IBM 3270s, then VT100s and/or teletypes and Decwriters. I see kids look at my two screen setup, which is on Windows 10, but basically a bunch of terminal windows open and think I'm some sort of l337 h4x0r when really I'm just an old coot who can't deal with change. Even on Windows, I do everything in Powershell. Even things like installing Windows Updates. (Get-WindowsUpdate)
- red75prime 7y agoI tried to `curl -Method Post -Headers ...` my answer but it was too much work. Impressive.
- metalliqaz 7y agoWindows updates install automatically. What's the point of using a shell to install them? It's not like you're saving yourself from a clunky GUI.
- bananocurrency 7y agoWhat's the point of using automatic update? It's not like Microsoft hasn't bricked devices with it in the past.
- lostmsu 7y agoYou set up a backup for that extremely unlikely case.
- metalliqaz 7y ago> fortran77 > old coot checks out.
- dang 7y agoPlease don't do this here.
- 7y ago
- zokier 7y ago> About three years back, I attempted to live entirely on the command line for 30 days > I lasted all of ten days > What follows are the applications I found myself relying upon the most during those fateful ten days Why is this a new article now? What has changed since the original article series? https://www.networkworld.com/article/3085139/30-days-in-a-terminal-day-1-the-essentials.html https://www.networkworld.com/article/3085139/30-days-in-a-te... Considering that his experiment failed, I'm not sure how he can still claim "Quite honestly, it is entirely possible to live completely without a GUI (more or less)—even today, in 2019". Maybe it is true, but he hasn't demonstrated it. I would have found it more interesting if he had focused more on how you could efficiently use cli etc, instead of finding most gui-like ncurses clones of popular applications.
- Fnoord 7y agoAll CLI browsers I know are out of date, just don't work well, they contain unfixed vulnerabilities, or they're called Browsh. Terminal: Alacritty Browser: Browsh Email: Mutt, Aerc Remote SSH: Mosh Discord: 6cord IM: Bitlbee IRC: Irssi, Weechat Package manager: Reverse engineering: Radare2 Network client: Netcat Vim and Tmux with plugins are insanely powerful and customizable. I guess what I miss is a video player which just works in the terminal (without using ascii/ansi). PS: I like Bash, never used Zsh, but I prefer Fish.
- roryrjb 7y agomplayer works in the framebuffer
- dredmorbius 7y agoAlso mpv, which has (generally) greater capabilities, and is what mplayer is increasingly mapped to on systems.
- dredmorbius 7y agoNetcat (and. socat) are tremendously underappreciated. I leveraged netcat to make an over-the-net backup of my modem in the process of converting it to OpenWRT, using busybox's netcat on the remote side.
- stirfrykitty 7y agoI've been a minimalist since my college days. Spent most of my time in college in the terminal and my first several jobs were mostly terminal (DNS, bash/perl scripting, firewalls/proxies). I lived on Sun Solaris using Netscape Navigator as my only real GUI product. I then moved to Linux running FVWM and Firefox. Fortunately I can use Linux at my job and do so, using Remmina RDP to get into the Windows Servers when I do have to touch them. Still favor vim for config files and nano for personal notes. My wife walks by my laptop at home and wonders, "What's all that grey text in the black windows?" "That's work getting done, girl!" She rolls her eyes and walks away...
- oarabbus_ 7y agoI think terminal usage should be maximized, but certain tasks are done more efficiently with a GUI
- dllthomas 7y ago> I think terminal usage should be maximized I don't have a problem if people want to use terminals in smaller windows.
- xvilka 7y agoElinks was still quite active[1] until 2 years ago any contributions were stopped. For spreadsheets there is sc-im. For presentations in terminal there are termimad (in Rust)[3], mdp[4], and patat[5]. For files management vifm[6] is the best one, if you got used to Vim already. And one more important thing - don't forget to setup true colors[7] in your terminal. [1] https://repo.or.cz/elinks.git/shortlog https://repo.or.cz/elinks.git/shortlog [2] https://github.com/andmarti1424/sc-im https://github.com/andmarti1424/sc-im [3] https://github.com/Canop/termimad https://github.com/Canop/termimad [4] https://github.com/visit1985/mdp https://github.com/visit1985/mdp [5] https://github.com/jaspervdj/patat https://github.com/jaspervdj/patat [6] https://github.com/vifm/vifm https://github.com/vifm/vifm [7] https://github.com/termstandard/colors/ https://github.com/termstandard/colors/
- Athas 7y ago+1 for patat. If you can live with its limitations, it is by far the most pleasant presentation writing experience I know of.
- ethelward 7y agoAnd Emacs (can work in console mode) offer alternatives for nearly everything you mentioned :) Spreadheets[0], presentation[1], files management[2], true colors. [0] https://www.gnu.org/software/emacs/manual/html_mono/ses.html https://www.gnu.org/software/emacs/manual/html_mono/ses.html [1] https://orgmode.org/worg/org-tutorials/non-beamer-presentations.html https://orgmode.org/worg/org-tutorials/non-beamer-presentati... [2] https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html https://www.gnu.org/software/emacs/manual/html_node/emacs/Di...
- lone_haxx0r 7y ago> Alt-N goes to the next "window", Alt-P to the previous and so forth Thanks to this sentence, it dawned on me that even if you're a l33t hax0r, GUI and mouse-based interfaces have the advantage of not requiring you to remember how to use a program. How many program interfaces can you keep in your long term memory? Is it even worth it to waste your precious (human) memory space in such a thing? Sure, TUIs and UNIX commands can be really useful and efficient once you learn them, but GUIs are useful even if you've never used the program. They give you an acceptable level of productivity right off the bat, and most of the time it's not worth it to waste your time learning the superior UNIX/terminal version.
- geocar 7y agoWe acquired language so that we could express ourselves better than we could pointing and grunting. Learning a new word was always tricky- we could sometimes model it with existing words we already knew, but sometimes we would only learn it by practicing its use in different ways to see what works. When we might meet another person with another language, we may resort (at some point) to pointing and grunting again, but knowing language we feel the pains trying to convey anything beyond the most basic wants and wishes when resorting to such a crude tool. So it is with text-based interfaces like unix. I learned unix over thirty years ago, and thirty years of practice with a language gives me a great deal of comfort learning the occasional new word in unix. Conversely, every time I point and grunt, I don't feel like it's an even remotely "acceptable level of productivity". I do however think these TUI things are abominations combining the worst of both worlds.
- gmfawcett 7y agoSurely TUIs for editing text (nano, vi, emacs) are better than using something like `ed`. There's something to be said for having two dimensions to navigate in!
- smhenderson 7y agoNot the parent but I took his comment to be a response to a comment above that mentioned DOS apps that had menus, used standard function keys, had "form controls" (e.g. buttons, lists), etc. I think of a TUI not so much as a 2D text interface but more like text interfaces that work with a mouse, use similar constructs as GUI's like menus and form controls and standardize on conventions for displaying information in a uniform way across different applications. Like I said, not the parent, so I may be wrong but there's my two cents...
- dllthomas 7y ago> Wouldn't it be great if there was something like Pidgin, but entirely command-line based? [...] It turns out there is. It's called Finch, and it's made by the Pidgin folks. Finch is not "command-line based"! Finch is terminal-based, but it takes over your terminal and you interact with it like a mini windowed environment. These are not the same thing. Software is "command-line based" if it's driven from a command line (gdb, ed, mail) or driven from the shell (nmh, git's cli). Years back I actually threw together a libpurple client that decomposed the various actions into utilities that could be run from the shell, to experiment with some UI thoughts. Code is on github (https://github.com/dlthomas/genies/tree/master/msgg https://github.com/dlthomas/genies/tree/master/msgg) but I don't remember what state it's in. Happy to dig in enough to answer any questions posed.
- dllthomas 7y agoMy favorite mail experience, by some margin, was using nmh (https://www.nongnu.org/nmh/ https://www.nongnu.org/nmh/). I recall it taking some doing to set up and then some aliases and such to make it usable - but then it was very usable.
- dredmorbius 7y agoLarry Peek's book and tutorials on mh and nmh, as well as his shell wizardry generally, are very highly recommended.
- dllthomas 7y agoI'm not familiar - I'll definitely check it out :)
- dredmorbius 7y agoCorrection: Jerry, not Larry. mh and xmh http://shop.oreilly.com/product/9781565920934.do http://shop.oreilly.com/product/9781565920934.do He's a co-author of the classic UNIX Power Tools http://shop.oreilly.com/product/9780596003302.do http://shop.oreilly.com/product/9780596003302.do Add'l ORA pubs: https://www.oreilly.com/pub/au/28#Books https://www.oreilly.com/pub/au/28#Books "Power Tools" columns for Linux Magazine: http://www.jpeek.com/articles/linuxmag/ http://www.jpeek.com/articles/linuxmag/ Though I've not read it specifically, From Bash to Z Shell seems likely to focus on shell art and arcana most closely. https://www.apress.com/us/book/9781590593769 https://www.apress.com/us/book/9781590593769 His 1999 SVLUG talk was a classic, the slides don't give it justice, though there are some nuggets there for many users. http://www.jpeek.com/talks/svlug_19991103/ http://www.jpeek.com/talks/svlug_19991103/
- yegle 7y agoWhen I was in college several years back, the NVidia card on my only computer, a Dell laptop, failed. X stopped working but framebuffer driver still works. I was not tech competent back then and didn't know exactly what went wrong. I spent more than 1 month with only CLI. Perspective from a CJK user: - To show and type Chinese, you need tools like zhcon/fbterm. - You'll need to deal with encoding issues when ssh to remote server, or telnet to a terminal based BBS. luit is a good tool for that. GNU screen also have this built-in and in some cases better than luit.
- davidw 7y agoMy first Linux computer was a 386 "laptop" with 4 megs of memory. It did not run X. Now get off my lawn!
- kazinator 7y agoIn the 1990's, I did some contract work while "in between computers". I had an amber-screened WYSE WY-50 terminal (library discard freebie), a US Robotics 14.4 kbps modem, and a phone line. That was the extent of my data-processing equipment.
- hollerith 7y agoI did that for about 7 years [1] and don't want to do it again. [1]: including a few years on an actual terminal, not a computer running an application emulating a terminal, (connected to a modem, which in turn connected to a Unix computer on which I had an account, which in turn was connected to the internet).
- verisimilitudes 7y agoIt's odd to me that Emacs wasn't mentioned at all. I use it for most of my computing (email, music, file management, etc.) and it works well enough in the terminal if the Meta-key works properly, as opposed to needing to use Escape. >Luckily, people were emailing each other from UNIX/Linux machines long before modern graphical email clients (or webmail) even existed. I suppose this is technically true, due to the use of ''modern'' here, but I find it important to note that graphical interfaces for things such as email have existed for decades. Using terminals shouldn't be an ideal. I find the native terminal emulation provided by the Linux kernel and OpenBSD to be lacking. There's not much of a good reason to query terminfo or termcap when every terminal you're reasonably going to use supports a superset of ECMA-48. However, I've found that even basic sequences such as SCROLL UP and SCROLL DOWN aren't supported in the native terminals. So, you get the choice between your program not working in those, making it inefficient and jittery for every terminal, or building a querying infrastructure; the first option is what I've chosen. If I'm wrong or anyone has any advice for this, I'd be interested in it. I wouldn't be writing a terminal program in this age if the GUI facilities of modern systems were decent and I could build up my own abstraction for that, but the terminal, with all of its added faults, is at least the simpler option. It would be nice to have facilities GUIs enjoy that let me express simple concepts such as ''The interface must be at least this large.'', though.
- merlincorey 7y ago> It's odd to me that Emacs wasn't mentioned at all. I use it for most of my computing (email, music, file management, etc.) and it works well enough in the terminal if the Meta-key works properly, as opposed to needing to use Escape. Yes, and literally every point on his list has something in Emacs to handle it -- it is my favorite operating system, just needs a good text editor, as the old joke goes. Sure, not all of the in-emacs tools are as nice as some of things like `w3m` and `w3m-image`... but they are all there, for every facet listed, and some of them are even better in Emacs. Old joke aside, I bet Emacs' text editing and word processing abilities (with some packages installed) are as good as or better than those found in WordGrinder. Emacs plays nice with `tmux`, but also provides its own in-emacs windowing. You can even run full ANSI terminals within Emacs and then run anything (such as `cmus`) that might not have a direct in-emacs integration within an Emacs terminal buffer.
- smacktoward 7y agoThat screenshot of Wikipedia as rendered by w3m makes that browser look like it has some serious problems with Unicode text -- note how all the accented characters in the name "Slobodan Milošević" are rendered as question marks. I assume there are ways to fix this?
- deleted 7y ago[deleted]
- jolmg 7y agoI just visited the Wikipedia page of "Slobodan Milošević" on w3m and it rendered fine. I imagine the terminal problem is that either the font that was used didn't support those characters, that the system locale encoding wasn't setup to support those characters, or that the terminal emulator didn't have support for the encoding used.
- madhadron 7y agoWhy do we assume that there has to be this separation? Yes, we're used to it on Unix because Unix perpetuated the mistakes from OS/360 and had a special job control language as the user interface shell and made no attempt to really integrate a graphical environment when it came along. But imagine someone whose programming career was spent on Smalltalk, who would feel quite confused by this. Or even someone who is truly proficient with NeXT or MacOS and able to use the object APIs that applications expose to script their environments efficiently. This would seem rather nonsensical to such a person.
- TeMPOraL 7y ago> Why do we assume that there has to be this separation? Because the GUIs of Smalltalk/Lisp era have mostly gone the way of the dodo. Unless you're writing software in Smalltalk or Common Lisp, you're unlikely to see truly powerful GUI principles any time soon.
- pvg 7y agoWhat would those principles be, that don't exist in current UIs?
- romwell 7y agoOne principle is that text/command interface and graphical user interface aren't separated. As in: what if.. you could use a GUI and type commands? Some software, like CAD programs (AutoCAD, 3DS MAX) and games (HalfLife, Quake, etc) have been doing it forever, but all these solutions are ad-hoc. We could have had this as a default.
- j88439h84 7y agoThe text editors all have that, afaik.
- pvg 7y agoThat's more of an implementation detail than a principle to me. Some graphics programs have CLIs. Lots of GUIs have CLIs with various levels of integration. And as you say, we've had that forever so it's not something that's, say, in a Smalltalk system that doesn't exist now.
- galkk 7y agoCan you? Yes Do you need to? Most likely no
- ape4 7y agoEasy to VPN from another location. Just ssh to your remote Virtual Machine in another country.
- beezlebubba 7y agoI remember trying out GEOS on the C-64 back in the late 80's and thinking "why all this when you can just type in commands?" Command line vs GUI is like going from covered wagons to the space age but it's good to have the knowledge to "rough it" if you have to.
- dllthomas 7y agoAnother piece of software worth mentioning in this space is pianobar, which is a terminal based client for Pandora.
- deleted 7y ago[deleted]
- amelius 7y ago> w3m supports inline images (...)—seriously, a web browser with image support, inside the terminal. The future is now. Why not go a little further and support variable width/pitch fonts?
- dredmorbius 7y agoA few other mentions: * ranger is vim-inspired file manager with built-in viewers and extensive capabilities. In addition to POB (plain old bash) and mc, it's a go-to for me. https://github.com/ranger/ranger https://github.com/ranger/ranger * TWIN is the Text WINdowing environment. Yes, it's a full-on windowmanager for console. Somewhat rusty, but if nothing else, a novelty. https://sourceforge.net/projects/twin/ https://sourceforge.net/projects/twin/ * mutt: email, 'nuf said * irssi: IRC * surfraw; "elvi" providing CLI access to online tools and an Ecuadorian connection. https://wiki.archlinux.org/index.php/Surfraw https://wiki.archlinux.org/index.php/Surfraw * wikipedia2text: Wikipedia on the command line. https://packages.debian.org/stretch/wikipedia2text https://packages.debian.org/stretch/wikipedia2text * tootstream: CLI Mastodon client. https://github.com/magicalraccoon/tootstream https://github.com/magicalraccoon/tootstream * mpv and mps-youtube: play media (audio and video) in console. mpv supports many sites and formats, while mps-youtube specialises in everyone's favourite video monopoly. Both offer numerous compelling advantages over Web UIs, starting with no comments or recommendations. mpsyt's search and locally-managed playlist features are a real treat. https://mpv.io https://mpv.io https://github.com/mps-youtube/mps-youtube https://github.com/mps-youtube/mps-youtube * xine and mpv framebuffer and ascii-art (aalib) modes. Play full-screen video in console, either as framebuffer graphics, or rendered as text characters (not great, though novel). Bonus: try the 'bb' aalib demo. * bc, dc, units, and ipcalc; all forms of calculators, from general to RPN to units-aware to IP functions. * BSD Games. Because.