Terminal Only Tips

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...

(/)

command line (/tag/command-line) Desktop (/tag/desktop)

Without a GUI--How to Live Entirely in a Terminal


by Bryan Lunduke (/users/bryan-lunduke) on June 28, 2019

    

Sure, it may be hard, but it is possible to give up graphical interfaces entirely—even in 2019.

About three years back, I attempted to live entirely on the command line for 30 days—no
graphical interface, no X Server, just a big-old terminal and me, for a month.

I lasted all of ten days.

Why did I attempt this? What on Earth would compel a man to give up all the trappings and
features of modern graphical desktops and, instead, artificially restrict himself to using nothing
but text-based, command-line software, as if he were stuck in the early 1980s?

Who knows. Clearly, I make questionable decisions.

But you know, if I'm being honest, the experience was not entirely unpleasant. Sure, I missed
certain niceties from the graphical side of things, but there were some distinct benefits to
1 of 12 1/27/21, 19:00
Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...
living in a shell. My computers, even the low-powered ones, felt faster (command-line
software tends to be a whole lot lighter and leaner than those with a graphical user interface).
Plus, I was able to focus and get more work done without all the distractions of a graphical
desktop, which wasn't bad.

What follows are the applications I found myself relying upon the most during those fateful ten
days, separated into categories. In some cases, these are applications I currently use over (or
in addition to) their graphical equivalents.

Quite honestly, it is entirely possible to live completely without a GUI (more or less)—even
today, in 2019. And, these applications make it possible—challenging, but possible.

Web Browsing
Plenty of command-line web browsers exist. The classic Lynx typically comes to mind, as
does ELinks. Both are capable of browsing basic HTML websites just fine. In fact, the
experience of doing so is rather enjoyable. Sure, most websites don't load properly in the
"everything is a dynamically loading, JavaScript thingamadoodle" future we live in, but the
ones that do load, load fast, and free of distractions, which makes reading them downright
enjoyable.

But for me, personally, I recommend w3m.

Figure 1. Browsing Wikipedia with Inline Images Using w3m


2 of 12 1/27/21, 19:00
Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...
w3m supports inline images (via installing the w3m-img package)—seriously, a web browser
with image support, inside the terminal. The future is now.

It also makes filling out web forms easy—well, maybe not easy, but at least doable—by
opening a configured text editor (such as nano or vim) for entering form text. It feels a little
weird the first time you do it, but it's surprisingly intuitive.

Email
Email is another one of those things you simply can't live without. Luckily, people were
emailing each other from UNIX/Linux machines long before modern graphical email clients
(or webmail) even existed.

There are a few quality options for sending mail from the comforts of your terminal (including
Mutt and Notmuch), but for my money, it doesn't get much better than Alpine. It is, by far, the
most approachable and learnable. Common hot-keys are displayed right on screen (such as
press r to reply to a selected email), and the overall layout and interface is going to be
immediately recognizable to anyone who has used a graphical email client or webmail.

Figure 2. The Alpine Email Client Main Menu

Some other clients (like Mutt) also are quite excellent, but they have a bit steeper of a learning
curve.

Instant Messaging
Wouldn't it be great if there was something like Pidgin, but entirely command-line based?
3 of 12 1/27/21, 19:00
Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...
Something that supports multiple chat protocols (like IRC, XMPP and so on) and lets you
have chats with multiple people at once?

It turns out there is. It's called Finch, and it's made by the Pidgin folks.

It even has a nice TUI (Text User Interface) that somewhat mimics the GUI of Pidgin.
Navigating around that interface without a mouse can be a bit confusing at first (Alt-N goes to
the next "window", Alt-P to the previous and so forth), so taking a few minutes to learn the
keyboard commands will save you much frustration.

It's not a perfect solution, mind you. Some of the protocols that Finch supports are either
dead or dying (such as AOL Instant Messenger), but the support that is there works
surprisingly well.

Word Processing
WordGrinder is the terminal-based word processor you've been looking for.

Figure 3. The File Menu in WordGrinder

WordGrinder has a simple interface (press Escape to bring up a global menu with all the
functions and feature available), is fast as heck, and is just downright delightful to write in.

The darn thing even supports writing to ODT, HTML and Latex, and it can import ODT, HTML
and text. There's even some basic formatting options (italic, bold, underline, margins), which
is a bit surprising for a terminal-based word processor.

Spreadsheets
Text-based spreadsheet programs are nothing new. Heck, the fabled VisiCalc had an entirely
text-based user interface, as did most spreadsheet programs built for a decade after that
point.
4 of 12 1/27/21, 19:00
Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...
Just the same, the spreadsheet options when running in Linux terminal are...limited.

The most commonly used option is known as sc (for Spreadsheet Calculator). It's been
around for a good long time and works wonderfully well—for what it does. Enter text into a
cell? Check. Enter numbers into a cell with some computation options? Double check.

Want to open a spreadsheet created in something like LibreOffice? Well, you're going to be
plum out of luck there. sc uses a custom file format. Why not simply default to using CSV or
some other standardized, text-based format for spreadsheets? I couldn't tell you. That
confuses me too.

But luckily, the sc file format isn't too far off from CSV, and folks around the internet have
created a variety of scripts to help convert between the two. It's not a seamless workflow, but
sc is usable—once you learn the key bindings and get some supporting scripts in place to
convert files.

Presentations
Yes! You can create and give presentations entirely from the terminal! It really works! I mean,
there's not going to be any images, but who needs pictures in this day and age?

The program is called "tpp" (Text Presentation Program), and it's in just about every
repository on the planet. It has a bit steeper requirements than many terminal applications, as
it relies on Ruby, but it's still lighter and faster than any graphical presentation program out
there.

Presentations are created, in whatever text editor you choose (I'm a nano man, myself), and
they're saved in a simple sort of markdown language. It has a very low learning curve.

So, maybe you won't be giving a presentation using tpp to a bunch of folks who expect
copious clip art on your slides, but for a nice, nerdy audience? A purely text-based
presentation will, if nothing else, win you a few high fives.

File Management
Copying files around in the terminal isn't exactly difficult once you learn a few commands (like
cp , mv and rm ), but having a nice interface to browse and copy files in bulk is simply a
must.

And the very best option, in my humble opinion, is Midnight Commander, which is also known
as simply mc. An open "clone" of the famous Norton Commander file browser, mc is one of
the first applications I install on a new Linux system. It's simply the king of terminal file
management.

Music
cmus is the music player you want to be using. It's light. It's fast. It's easy to use. It supports
just about any audio format you could ever want (everything from MP3s and Oggs to MOD
5 of 12 1/27/21, 19:00
Without a GUI--How to Live Entirely in a Termina... https://www.linuxjournal.com/content/without-g...
and SHN), plus streaming formats and playlists. It's just...the best.

Window Management
Just because you're living in a terminal doesn't mean you need to give up running (and
looking at) multiple applications at the same time.

What one would call a window manager in a graphical desktop, in terminals is called a
terminal multiplexer—same idea, more or less.

There are three terminal multiplexers that most people tend to use: GNU Screen, tmux and
Byobu.

GNU Screen and tmux are, for most people, fairly interchangeable. Once you figure out the
keyboard shortcuts for creating new "windows" and moving between them, you're all set.

Byobu (which actually utilizes Screen and tmux behind the scenes) aims to be a bit more full
featured, emulating aspects of a traditional desktop environment and providing just a bit more
visual information. Although it does tend to be slightly more finicky than the others.

Figure 4. Three Terminal "Windows" Open in Byobu

Personally, I love tmux and use that one almost exclusively. Just do yourself a favor and really
read through the man page first. Otherwise, you might end up pulling out a fair bit of hair as
you learn how to switch between applications.

Really? No GUI? In 2019?


Seriously, it's doable. Sure, there are pain points—some pretty big ones at that. But, there's
also something magical about it. Then again, maybe that's just the nostalgia centers of my
brain talking.

Regardless, having these sorts of tools available (even if just to use when SSHing into a
6 of 12 1/27/21, 19:00

You might also like