Geek Culture
Published in

Geek Culture

How to set up a text-mode-only Linux Desktop

You could be a command line hero.

Linux is well known for having a powerful set of command line tools. What is less well known, is that most graphical tools are really just running command line tools, or editing plain text files behind the scenes. So, is it possible to run a full Linux desktop without any real graphical tools at all? Text-mode / command Line (CLI) only?

But, why? Aren’t you just using the command line (CLI) to be “cool”?

I’m not suggesting you run your Linux desktop in just a tty — I’m not a madman. I do run an X graphical environment.

Likewise, I also want to make one point clear — a CLI isn’t “better” than a GUI.

I choose to do most things via the command line now-a-days. This does not make me better. This does not mean I’m an elite hacker. No, I’m not doing it for bragging rights, or being cool. If you want to run a full gnome or KDE shell, please do, and don’t feel bad. I ran KDE for years and years. I’m really not even suggesting you should just use the CLI, just saying, here’s how I do it, you could too.

I find doing desktop things via the command line a little faster than using a GUI, but it takes a huge time investment that probably won’t pay off for you in a noticeable productivity improvement. One benefit is that CLIs change infrequently — so once you’ve learned them, you’re all set.

Laptop battery status — `acpi -i`

My i3bar does have a short indicator of the battery status — this is a default configuration. It looks like this;

However, this information just comes from acpi, which I often run manually — my laptop has two batteries;

user@host: acpi -i
Battery 0: Unknown, 79%
Battery 0: design capacity 1943 mAh, last full capacity 1403 mAh = 72%
Battery 1: Discharging, 73%, 05:15:24 remaining
Battery 1: design capacity 6042 mAh, last full capacity 6042 mAh = 100%

Wifi — NetworkManager and nmtui

NetworkManager was frustrating for me at first — years ago, but it’s really incredibly powerful, and very convenient. Network Manager’s Text User Interface (nmtui) is also a quick and cheeky interface for when you don’t want to, or cannot, use a GUI.

If I know the network I’m connecting to, I can just run nmcli;

user@host: nmcli c up "teratan-lan" --ask

Manage multiple monitors — xrandr

I certainly found it intimidating to manage 4 monitors with just a command line tool, before I tried it. However, after just a minute or two, it’s actually very intuitive.

user@host: xrandr --output VGA --mode 1024x768


user@host: xrandr --output LVDS --auto --output VGA --auto -right-of LVDS

File Manager — vifm

I’m a huge vim fan, and using vim like tools, such as vi File Manager - vifm feel like a hugely efficient time saver.

vifm —

Task manager — htop

htop is extremely well known, and also just a defacto tool that many admins use over SSH connections. While you can optionally use it with a mouse, you can also easily sort columns, toggle treeview, and quickly turn on lots of advanced options. Easy to find that annoying process using a lot of CPU.

Web browser —w3m

I use Firefox — because I like it. However, if you are feeling macho, and have something to prove, you can browse the web using w3m.

However, just because you can, doesn’t mean you should…

Task tracking — vit

vit is a command line client, that works like vim, and implements the TaskWarrior specification for tasks. It’s extremely fast and lightweight, and I use it for tracking all my work TODO list.

IP Calc

I had no idea this tool existed until just the other day. ipcalc is a quick and easy alternative to online subnet calculator webpages. One more tool where I can just use the command line version, thank you.

Email — mutt

Mutt is a vim-like client for email; however, I’m just not brave enough yet to move away from gmail webmail, even though it really is becomine more and more irritating to use.




A new tech publication by Start it up (

Recommended from Medium

How a simple algorithm “proved”Quantum Supremacy: The Bernstein Vazirani Algorithm

Salesforce Project #1 — Standing Up the New Org

PVC Counter Conical Twin-screw Pelletizing Extrusion Line

PVC Counter Conical Twin-screw Pelletizing Extrusion Line

Discovery Communications’​ Infrastructure Deployment-Management using AWS

Should Kotlin be the preferred choice for Android App Development?

Basic Use of Has_Secure_Password in Rails

Python cron job with PM2 Docker

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
James Read

James Read

Public Cloud and Open Source advocate. Red Hat Solution Architect during the day. Enthusiastic developer at night :)

More from Medium

How to Organize Cluttered Files with Just One Command in Linux

You should know how to Vim

How to create a new document in Gnome Files (Nautilus)

How To Quickly Delete Words While In Insert Mode In Vim