I wanted to have a separate laptop where I only use the terminal for my use cases. At the moment I am somewhat confident using the terminal, but I think limiting myself to tty only would build my confidence even more. Any tips?
EDIT: I am already using nvim and I already have installed a minimal distro (Arch). I just need advice on how to actually run this system effectively.
I built a console-only laptop once for financial reasons. I wanted something to travel with on a trip and was donated a laptop that, I think 20 MB of RAM after I upgraded it. I was able to run vim, perl and mutt was very tolerable performance.
I don’t think there’s really special tips. Pick a goal of some tasks to accomplish. Work towards them, discover the rough edges and find solutions for them. If you install everyone else’s favorite CLI apps, you can end up more than you need.
All that said, if I had the memory to run a GUI, I probably would have do so. But I wasn’t going to have a lot of time for web browsing and other laptop on that trip anyway.
Amazing post! I’ve been wanting to do the same… Have you found a CLI .csv file editor? One of the points of friction for me is finding how to replace Excel’s functionality past Libreoffice. I’m more curious to see what that workflow can do when one uses no GUI whatsoever.
If you want to mess around with scripting instead of an editor I would recommend Awk- it works great for CSV files and is really powerful. Usually you can use -F,
to separate using commas, but for full CSV support (with potential quoted commas) you need to use something like -vFPAT='[^,]*|"[^"]*"'
(which isn’t POSIX compliant but works with gawk)
I’ve found sc-im to be very useful, but I’m still a little new to it. Visidata is another one that seems to be a lot more powerful than sc-im.
I’ll just dump this here.
shell tools
https://github.com/rust-unofficial/awesome-rust https://zaiste.net/posts/shell-commands-rust/
alternatives
- fd: simpler find
- bat: nicer cat
- lsd: ls with NerdFont icons
- broot: smarter tree
- ripgrep: better grep
GUI alternatives
- draw: mouse drawing on the shell!
- imgfb: Draws a farbfeld or jpeg image to the Linux framebuffer
- baca: TUI e-book reader
- Terminal Image Viewer (tiv): what it says
- FIM: framebuffer image viewer
- derasterize: cli pixel to ANSI converter
- cli video playing: mpv --gpu-context=drm
- ts-polkitagent: Polkit Agent for the Shell (old)
- fbterm: framebuffer terminal
- twin: Textmode WINdow environment
- directfb2: framebuffer desktop
- csv to ascii art table via python pandas
Task Management:
- dun: note-taking & task manager
- cubby: encrypted note taking to cloud, with markdown
- girok: TUI calendar
Services:
File Manager:
- clifm: nice shell file manager with tagging
- nnn: cli fm with split-view file preview
- TUIFI Manager: cli fm with rendered images in 2D layout
- xplr: hackable, minimal, TUI fm
Login Manager:
Others:
- buku - shell bookmark-manager - GitHub
- hyperfine: shell benchmark tool
ease of use
- edir: rename with text file
- mdcat: Sophisticated Markdown rendering for the terminal
- clipboard: shell clipboard manager & more
- portal: cli file transfer agent between computers
- croc: simple file transfer tool via local server, Android Appp too
- transfer.sh: cli file sharing via cloud
- detox: file name cleanup
- ouch: simple de/compressor
- mnamer: intelligent video renamer
- gum: bells and whistles for shell scripters
- pytermgui: bells and whistles for python scripters
specialist tools
I’d like to add MPV. It’s a video player that works from the tty using a framebuffer. So if you run “mpv path/to/video/file” it will play the video! Just learn the keybinds first so you’re not stuck with it. In fact, that applies to all of the framebuffer programs.
What are your use cases?
Messaging, reading, school work, watching anime, music, web browsing (may not be able to do this one nicely though). My use cases are very simple to implement on tty-only I think.
It is possible to watch movie files rendered in ascii with ffmpeg but I wouldn’t recommend it. Playing videos any other way requires a graphical interface.
Web browsing is possible with links, w3m and eww-mode on emacs.
You will struggle with school work. Eduroam is hard to connect to using the CLI for example.
I was able to use mpv to watch some anime I had downloaded on tty. Does this mean this was only possible because I already had xorg installed and running (I was using qtile prior to that)? I’m not sure if that’s how that works though.
Get the server version of whatever your favorite distro is. Nothing but terminal.