Mission accomplished - #ConsoleChallenge
Author: -fab- <fab@redterminal.org>
License: CC BY-SA 4.0
Published on: Mon, 03 Mar 2025 01:16:38 +0100
Last updated: Mon, 03 Mar 2025 01:16:38 +0100
I've participated in the #ConsoleChallenge initiated by @adele@social.pollux.casa (@adele@phpc.social) and it was an interesting experience. I really like that it's a short term challenge because for more time consuming tasks I often make breaks of a few days/weeks.
The Challenge was to only use the console TTY for two consecutive days. No Wayland, no XOrg!
I've read of many people working in the console TTY regularly on Fedi, Gemini and Gopher. And they have a lot of experience. But for me it's a new experience so I wanted to partake in this #ConsoleChallenge even if not many people do it.
I have to admit, that I built my setup for this challenge already in February, so I had everything in place for the two days challenge. But only that was already a lot of fun.
I started the challenge on Friday, 28th of February in 2025 at around 17:00 (CET) with disabling my display manager. So from that point on my laptop booted directly to the console login without starting X. And it was the only computer I used for the duration of the challenge.
#ConsoleChallenge Fedi Thread (www)
My Setup
- Device: Lenovo Thinkpad T460s 4C/4T with 20GB RAM
- Display: 1920x1080 Resolution
- OS: Artix Linux with OpenRC init
- Font: default8x16
- Lang: de_DE.UTF-8
Programs I used
- ZSH - Shell with oh-my-zsh and starship-prompt
- lynx / w3m - Webbrowser/Image Viewer
- NeoVim - Editor
- NeoMutt - Email Client
- mpv - Video Player, which supports the tty out of the box. WOW!
- tut - ActivityPub/Mastodon client by Rasmus Lindroth
- telescope - Gemini/Gopher/Finger Client by Omar Polo
- ytfzf - YouTube on the TTY (works with mpv, but no thumbnails)
- tmux - Terminal Multiplexer
- newsboat - RSS feeds
- find, grep, sed etc.
- syncthing - File syncing with my NAS (but without WebUI, just running in the background)
- Atuin - The Magical Shell History by Ellie Huxtable and many others
- dictcc - Python script (AUR) to translate DE<=>EN
- irssi on remote machine - IRC client to use with tilde.chat
- go-mtpfs - To download files from my smartphone to my laptop via USB
Problems
Of course I ran into some problems with this setup, which I guess is the main reason of this challenge to find them. The first and most annoying was the Webbrowser/Image Viewer thing. If you have a solution for those unsolved things, it would be nice if you let me know.
w3m / lynx
I chose "w3m" as a browser because it was the only way to also display images. And because I rarely used terminal web browsers I needed some time to get used to w3m. I also used lynx for web browsing, it's a little more convenient, basically nice to use for browsing documentation and enough for searching to solve problems. But I ended up not using the web much during the challenge.
I configured "tut" (Mastodon/ActivityPub Client) to show images with w3m, but I couldn't get it to scale the image to the screen resolution. No big deal for smaller pictures but I had to scroll around with the cursor keys on bigger ones.
Fonts
I really wanted to use the Terminus font for the console but I haven't found one that supports German umlauts. So I had to use the default one with a 8x16 resolution. No big deal but it would be nice. I also had to find out that I had to set 'consoletranslation="8859-1_to_uni"' variable in the /etc/conf.d/consolefont file.
No Emojis and Powerline Chars
TUI applications like NeoVim with some themeing look ugly because the Powerline characters are simply replaced with questionmarks because these are not part of the console fonts. Maybe if I'd become a fulltime console user I would choose some more appropriate themeing to make Vim look nicer. But for now I'll stay with it, because I like how it looks like in AwesomeWM.
Another thing are the missing Emojis in TUT or Telescope for example. Well, I can live without them, but they would be nice to have. Well there are advantages to a fully configured window manager, and I think these problems are really unsolvable. If you *do* have a solution for that, please let me know!
Atuin daemon
I needed to start the Atuin daemon (which is normally done by my autostart script from AwesomeWM) on TTY1 and then use another TTY (usually TTY2) for my work. Otherwise it would clutter my screen with it's updates. I'm sure there is some way around this, but my OpenRC script to start the daemon stopped working after an update.
The Experience
Setting up the system was not that difficult, because I had most applications already installed. The only programs that I added were W3M, dictcc and go-mtpfs. The configuration was sometimes difficult, but if you're used to configure your system with text files it's not sorcery.
Hardware Settings
Sound volume can be set with "alsamixer". I just had to set the default audio device to my USB headphones via /etc/asound.conf once, because the speakers of my laptop are broken.
Setting the screen brightness is a little more inconvenient. I have to set a number between 0 and 852 in the /sys/class/backlight/intel_backlight/brightness system file. So to set the brightness to 100% I have to use the following command:
sudo bash -c "echo 852 > /sys/class/backlight/intel_backlight/brightness"
I could write a script for this, but for this challenge I'll leave it at 100%.
TMUX
One thing is, I never used TMUX so extensively. I normally use AwesomeWM (a tiling window manager), so there was no real need for a terminal multiplexer. I could simply open a new terminal and it was placed in the right spot. Now to use all the space of my screen I use TMUX. It's one of my favorite tools on the console and I learned a lot about all the possibilities with it. It's like a complete tiling window manager just for the console. Fun!
RAM Usage
It's obvious that a setup without Wayland/X consumes less RAM. htop shows me 391MB used with the Atuin daemon and Syncthing in the background and Lynx, my NeoVim VimWiki notes and htop itself in a tmux session. So I think my setup would also work on a Raspberry Pi 3 (1GB RAM) and a SSD attached. Maybe I should use such a setup on the next RetroComputing Challenge :).
YouTube on the console with ytfzf
Another nice thing was that mpv works on the console out of the box (at least on my setup). So I could follow my favorite YouTube Channels during the challenge. On AwesomeWM I mostly use FreeTube to follow my YouTube subscriptions or YouTube in general in a privacy respecting way. But it seems YouTube has blocked FreeTube now, so I use ytfzf in the WM too now, which still works fine (for now).
The other tools (as listed above) also worked like a charm and I had no problems with them. This surely is because I mostly use these also in the WM.
I learned quite a lot about using Proxmox from the console (with ssh). I needed to shrink a container and therefore stop it, make some config changes, back it up and restore it. I had to read a lot of documentation and man pages for that.
I also installed go-mtpfs from the AUR to backup my contacts.vcf from my smartphone over USB, which I haven't done before.
I read the new Gemini/Gopher articles with Telescope and my feeds with Newsboat, used tut for Mastodon/ActivityPub and checked my emails with NeoMutt. And of course I'm writing this article with NeoVim.
Homelab Updates
I also updated my complete homelab:
- Proxmox node and all its containers
- RaspberryPi 4 Incus cluster (4x) and all its containers
- My zigbee2mqtt Raspi 4 (4GB) for my smart home
- My Infoscreen (homelab monitor) which runs on a Raspi Zero 2 W on the console
I do this on every Sunday with just a few Ansible commands. I just postponed the backup to my ZFS offline storage to Monday, because I need my workstation for that.
I also updated my VPSs (a MailCow mail server and my FreeBSD Gemini/Gopher/Finger/Indieweb server), but this is done manually.
Conclusion
The absence of a full blown and configured web browser like Qutebrowser was a little challenging. I used a shortcut for translations on it, so I had to install dictcc for translations in the console. I also couldn't check my router setup, the syncthing UI or my NodeRed Instance, because they all rely heavily on JS.
But in general its easy to do all the day to day tasks from the console (despite the missing Qutebrowser) and definitely worth to make that experience. At the end I decided to leave this setup on my T460s for some more time to have some fun with it if I want, but for general usage I'm happy to use my beloved AwesomeWM again.
I'm ending the challenge now with posting this article to my gemlog still from the console on Monday, 3rd of March in 2025 around 01:00 (CET). So: "Mission accomplished"!
All in all - Have fun!
-fab-
--
Back to index
Homepage
Send me a gemini-mention!
Or write me an email.