It seems like most people are recommending tmux but personally I prefer dvtm (along with dtach and reflow). dvtm is a tiling terminal manager, dtach allows you to detach and reattach to processes and reflow reflows text when a terminal is resized:
For music mpd (music playing daemon) is the obvious choice. There are plenty of CLI clients for it. I've used finch and liked it, although I think the default key mappings were a bit cumbersome. Vim is my choice for text editing but it does have a steep learning curve. For wifi, wpa_supplicant and wpa_cli are the primary tools on Linux, if you are on a different *nix then it might be different.
That's all I got! I usually use X for web browsing, pdfs, games, etc.
Yeah, that's pretty standard practice, to have a dedicated machine doing builds and such. Managing it is not a problem to do manually over SSH up to some number of machines, I would say 1. But after that it becomes a real pain and you should be looking to automate stuff, there are many ways to do it, but perhaps that's not on your plate right now.
For your case, if you want persistent terminal sessions, I would recommend using dtach instead of tmux. A simple tool that does what you need and gets out of your way, unlike tmux.
Neovim's split windows share registers, respond to windo
, and it is easy to record macros that move from one split to another, etc. Tmux can do none of this.
I actually don't use tmux at all because the neovim built in terminal covers 99% of what tmux can do. The missing 1% is session management. The server that I regularly ssh into has screen installed, so I just use that. It feels like bloat, honestly, because I use only the session management and nothing else. If I wanted this on my local machine I would use something lighter, like dtach
I recommend to use dtach. It is a simplified screen for remote sessions. Basically, you have something like that emacs creates a remote shell hooked to a remote screen. You can restore your session and detach it as you like.
The following discussion shows how to use it in emacs. It works perfectly for my ESS setup.
I can understand that tmux allows you to split a terminal window into several terminals, but both of those only use the detach function of tmux, and in that case why not use a simple program that does only that like dtach?
I use dtach because I only use the detaching functionality, since I don't need the tiling because I use dwm.
with the following script
local socket cmd typeset -a opts while [[ $1 == -* ]]; do opts+=("$1") shift done socket="${XDG_RUNTIME_DIR:-/run/user/$UID}/$1"; shift cmd="$@"; if [[ -f $socket ]]; then dtach -a "$socket"; elif [[ -n "$opts" ]]; then dtach "$opts" "$socket" "${=cmd}" elif [[ "${socket##*/}" == stream ]]; then dtach -n "$socket" "${=cmd}" else if [[ -n "$cmd" ]]; then dtach -A "$socket" "${=cmd}" else dtach -A "$socket" "$SHELL" fi fi unset socket cmd opts