STFN

Trying to use a terminal only laptop

10 minutes

I am writing these words in NeoVim, started from tmux, running in Debian Bookworm. The laptop is a Lenovo Thinkpad X240 with a Haswell-era CPU and 8GB of RAM. And I do not have any graphic environment, just a terminal. And at the same it’s hard and great.

Why am I doing it? Mostly because I can, and I thought it would be a fun challenge to try and use the command line only. And it’s also a very good learning experience, I already learned stuff that would not interest me if I had Gnome or KDE or Xfce to fallback on. I already had to learn how to copy and paste in vim.

My, so to say, techstack right now is tmux for terminal composition, and neovim as a text editor. The terminal client is bash, usually I use zsh, but for this laptop I want to see if I can achieve the same level of configuration with good ol’ bash. Wi-Fi is configured using nmcli, and I can even send the occasional toot using toot the Mastodon client.

The best thing about using a terminal-only system is it’s speed. Everything is instant. Opening a file in nvim? Instant. Waking up from sleep? Faster than opening the lid. The computer is as fast as fast you can type.

A quirk of this laptop is that there is no separate Insert key, to do Insert you need to do Fn + End, which is a bit irritating when using nvim.

One thing I am not yet able to investigate is the battery life difference. I have bought this laptop with very bad batteries (yes, plural, it has an internal and external one!) and I disposed of them when it was running as a homelab. I’m planning to buy a battery and see how it goes.

Overcoming Obstacles

The biggest problem with not having a graphical interface is browsing the Internet. Yes, there is Lynx, but modern webpages are mostly not designed to work in text-only mode. BTW: One interesting thing came out with using Lynx: It asks you everytime a webpage wants to save a cookie, and it is eye opening. Probably more people would stop using Google if they had to type “yes” 15 times before being able to do a query. Anyway, I will admit, I resorted to cheating and and mostly searched for stuff on my phone when using this laptop.

And now came another problem. If for example I wanted to download something I found on my phone, like a link to a deb package, how to do it? I could retype the link, but that would be cumbersome. So I went with a dirty-yet-working solution. I copy the link on my phone, save it to FlatNotes hosted on my homelab, scp the note to the laptop, copy the url and download it with curl. This is the stuff I do for fun.

What can you do without a DE?

Surprisingly, a lot. First and foremost, you can write. Even write more than usual, because there are less distractions. Developing software is also possible. With tmux the left side of the screen can be the code editor, again vim is perfect here, and the right side can be anything.

Right now my blog writing screen is tmux dividing the screen in three parts, top left is node dev server, bottom left is vim, and the right half is lynx showing the blog page at localhost. I wish lynx could automatically refresh the page on changes as Firefox, but you can’t have everything.

Hmm, I would add a photo of it here, but my image preparation and upload pipeline is still rather complicated, so I’ll just add the photo to the Mastodon toot announcing this post. I wonder if you can take screenshots from the terminal? Something to investigate.

Internet browsing is also possible, but as I mentioned above, not that easy. But you do save a lot of bandwidth by not downloading the assets. Posting to Mastodon? Sure. Browsing RSS? Also possible. Listening to music? Le oui, I’ve seen terminal music players. The CLI is the limit. That sentence would work much better if you prononuced CLI in a way that rhymed with “sky”.

I’m thinking of taking this laptop with me on my next holiday. It will allow me to do some maintenance work, like backuping photos from the camera to my homelab, and at the same time will not tempt me to doomscroll and browse too much intertubes.

I think that’s it for now. Once I spend more time in the land of no graphics, I may have more things to share.

Thanks for reading! Now to see how if I can control my Forgejo deployment pipeline from the terminal. This post feels to much more chaotic and less organized that usually, but that’s ok for me, I want to experiment with writing more spontaneously.