💾 Archived View for carcosa.net › journal › 20220131-re-command-line.gmi captured on 2022-03-01 at 15:03:03. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
~ew: Re: Command Line Computing
I use pure text-mode apps when I'm overwhelmed and need a more visually relaxing computing environment. I thought I'd weigh in on some things.
I've tried to go with the console before, and there are a few things that I've done to make it more comfy:
My locale is always en_US.utf8, so unicode works as well as can be expected, which is Not Great. Full Latin alphabet coverage, maybe Cyrillic and Greek, but no CJK, no Emoji, and few typographical dingbats, much less alchemical symbols and Egyptian hieroglyphics, the reason being that although the Linux console understands UTF8 encoding, a console font can have at most 512 glyphs, and there's no way to combine console fonts. I find this... limiting. I therefore prefer to use a terminal emulator app in full screen under a tiling window manager or Wayland compositor: i3 on my eeePC, and sway on my ThinkPad. Choice of terminal emulator depends largely on what's available for the particular device. I think I'm using xfce4-terminal on the eeePC and foot on the ThinkPad. This gets me full Unicode support, which is pretty important in a modern terminal.
Many people, running command-line and terminal programs, like to have as many colors as possible, and will jump through remarkable hoops in order to get them. In my experience, true-colors on a terminal never work, and 256 colors just tends to make programs that do their own theming look terrible. My preferred choice is to set the TERM environment variable to "xterm", which will support the standard 16 ANSI colors. In general, these colors are not great, but the trick is you can theme them in your terminal. In my current one, which I use for terminal-focused computing and not incidental terminal use in a graphical environment, all the colors are set to different brightnesses of pure green (see above, base16-greenscreen-dark). This provides enough differentiation that I never get unreadable text from foreground and background being the same shade of green, but do get a usable greenscreen environment.
I use tmux to handle copying and pasting text, and making scrollback more consistent. I used to use screen, but switched not too long ago. But most of my work is in Emacs, so I generally only use tmux's copy and paste to deal with other applications.
One good thing about Emacs is that every application written for Emacs supports both graphical and terminal environments. Besides writing prose and code, I also use Emacs for mail, news, Gemini, and Gopher. The web browser in Emacs, eww, is "okay", but I've never gotten it to be quite as nice as links.
Profanity is a full-featured terminal XMPP client. Not much to be said about it, it just works.
Gomuks is a good Matrix client for the terminal. It May take a little bit of fiddling, especially to work with end-to-end encrypted rooms that you also use on other devices. Eventually, I'm going to switch to ement.el (in Emacs) for doing Matrix on the terminal, but it farms out the encryption to another program that I haven't gotten set up yet.
I forgot yesterday that I wanted to mention a piece of software called kmonad. It's a key-remapping utility that works on Linux, Windows, and MacOS. On Linux, at least, it works at quite a low level, which means that it is able to affect the virtual console as well as X and Wayland. You won't want to use it for your main keyboard layout (probably), but it is very good for things like dual function keys (one key, two behaviors depending on whether you tap or hold) or particular remappings that xkb doesn't include. I have my CapsLock mapped to Backspace on tap, but Control on hold; likewise, Enter is Enter on tap, and Control on hold.