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.
Almost every CLI only version of Linux is designed to be a server.
Servers assume you have no WiFi. There will not be an option to set it up during first-time setup, you will have to do it manually.
You are doing this on a laptop which generally assumes you will be using WiFi.
You will have to set up wpa_supplicant during install via command line outside of the automated setup.
Further, if your WiFi drivers have any non-free proprietary code in them, you will need to manually install drivers for them like you would normally. Once again, best to do during setup, if possible.
If you have the option of connecting directly with ethernet during setup, you can sort of wiggle past it and set it up after, but I’ve personally found that the servers prefer it if you do it during setup (ie. fewer weird networking issues).
As others have said, you could also just not install a desktop environment in a normal version of Linux instead of going for a server version, as another way to avoid this issue.
Source: personal experience using server version of Linux on laptop
This is not true.
Especially nowadays network manager handles all that stuff. Nmcli or nmtui make it beyond easy and I haven’t messed with wpa_supplicant in about ten years.
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.
Just go for it! It’ll be fun. You will find yourself navigating your digital life (or at least: most of it) at relative ease with less distractions and graphical fuzz you otherwise get.
Getting to know terminal multiplexer (like screen) or vi-keys are crucial skills for anyone who is not afraid from working on “headless” machines!
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.
Like others said, you can try installing Arch manually (not with the install script). You get the hang of the terminal and you get to see a bit more of how Linux works under the hood. The wiki is your friend, spend some time reading it!
I actually am using a manual Arch install. What i meant by gaining confidence is completely abandoning xorg and using the tty only.
Look into terminal multiplexers like screen
or tmux
, they are a sort of “window” system for tty.
There are text-only browsers but I’m not sure they’ll be usable on today’s websites. May want to set your tty to a graphical mode (framebuffer) and use a mixed-mode browser that can render images and some other stuff.