K.Mandla's blog of Linux experiences

Howto: Switch to a console lifestyle

A few months ago scannerdarkly suggested a kind of migration guide for the console, for people thinking of shifting from a graphical environment to a text-based one. To paraphrase, something that would hold their hand as they moved from X to the command line.

Since then I’ve been keeping odd notes on points that would need attention, if there was a shift to be made.

But what I discovered is that there are plenty of suggestions for mundane issues, such as the software to use and the hardware that works. On the other hand, suggestions on the “how” and “why” are a little more scarce.

This whole site is a giant list of software ideas and hardware tweaks with a generalized focus on console-only living. So I’ve intentionally omitted those.

Instead, I have a list of points that you might think about, to make the mental and personal shift from the point-and-click to the type-and-enter. Take them for what they’re worth. 😉

Start small. I think the best way to get the ball rolling is to find yourself a scapegoat. Pick one small task that you rely on in your daily routine — something like checking e-mail or keeping a list of things to do. Downloading torrents is a great place to start. Or maybe a music player.

Then refine the candidates list by focusing on applications that are grotesquely overweight. To use the torrent example, if you’re still using Vuze or Azureus or whatever it calls itself these days, it’s perfect. Or iTunes, as another example. Or … whatever.

I wouldn’t recommend starting with something overarching or wide-sweeping, like an entire desktop or full-feature browsing. Save those for later.

Once you have a guinea pig, remove it. Wipe its configuration files. Terminate it, with extreme prejudice.

Then find a console-driven alternative. Shop around, find something you like, and install it. Then spend a week with it. I lived at 100Mhz for a week almost two years ago (has it been that long?) and I was amazed at what I could get done.

Do your best for a week and learn the ins and outs of the program. Find all the little undocumented controls, all the front-ends and patches, try them all out and see what it can do.

If you find you can’t live without that first, overweight program … well, so be it. This isn’t for everyone. And I’ll be honest, I keep a higher-powered machine off to the side, mostly because I learned the hard way that it’s worthwhile to have one.

But after a week, if things work in your favor, you’ll probably find you don’t need that old, overweight program as much as you thought you would. The software you thought irreplaceable has just been … replaced.

Let things fester. Great, now that you’ve dumped one application in favor of a console alternative, you can start plucking away at others, right?

You can if you want, but I wouldn’t suggest it. Just because one tiny facet of your daily life is now run by the console, that doesn’t mean the entire pie is somehow appealing.

The point of this experiment is to understand how ultra-lightweight software can be just as usable as the heavyweight. Part of that is recognizing, respecting and relishing small programs that do as much as the large ones, but with less requirements.

If you take your time and let that sink in, you start to gain respect for console driven applications. Then other tasks seem to be obvious candidates for text-only equivalents. More than an arbitrary purge, this is a harsh critical eye.

And that’s when you really start to take aim at applications up and down the list, and push them out one at a time. Task managers. To-do lists. Contact managers. E-mail clients. File managers.

Before you know it you’ll be stripped down to a fistful of text-based programs and maybe one large-scale, obese application (my money says it will be Firefox). You’re almost free.

Get serious. The next step is what separates the men from the boys: Dump your window manager. If you’re living with a crop of terminal applications, you don’t need that full-scale desktop environment any more.

Pick a window manager that inches you closer to text-only. For example, you could take up Awesome or xmonad or even dwm, and still manage to use that one graphical program that keeps you hooked to X.

For a little while anyway. After a while you’ll start to wonder if the graphical program is really worth the weight it incurs, and as a result, you can probably avoid it with lighter alternatives. Move from Firefox to Kazehakase to uzbl to elinks. Move from OpenOffice to Abiword to Siag to emacs.

A lot of people stop at this point. It’s enough to prune down the essentials, and rely on terminal programs for 90 percent of what they do. And there’s nothing wrong with that. I endorse it wholeheartedly; you get the best of both worlds.

True enlightenment. But at least try the last step. When you’ve stopped using that last graphical program, then you have truly freed yourself, and you can move away from X altogether. Your systems will become so light and fast that you’ll wonder where exactly all the power came from.

Skipping out altogether on X is dropping hundreds of megabytes of space from your hard drive, and dozens of megabytes of memory from your system demands. It’s like moving from a yacht to a surfboard. Things are faster, cleaner and more exciting.

And that’s when you’ve moved so close to technological zen that you realize the US$1200 computer you bought a year ago is a waste of your time and money.

I can pitch it to you any way I like: I can tell you all the cool kids use the terminal, I can tell you all the fast software relies only on ncurses and a sparse kernel, I can tell you life is so much cleaner and prettier and quicker when you’re running a console-only environment on half of a lowly 32Mb.

Fact is though, either you want to do it or you don’t. I can’t make it any more appealing to you than it is naturally. Some people love it; I do, for certain.

On the other hand, I’ve been harassed (never seriously) and called “DOS geek,” even if that is so far off the mark, it’s laughable.

My last advice is: Don’t try this on a whim. Try it because you want it to work. Do it because you think it might fit you, or because you need a drastic change.

Or because you’re anticipating a severe reversal of fortune, and you want to downshift your entire life. Or because you’re liquidating. Or because you have adopted an austere lifestyle. Or you really want to be a minimalist.

The best motivation for any change in life — be it computer-related or otherwise — is from within: a natural, innate, sincere desire to change. Try it on a fluke, and it will fail. Try it because you honestly want to, and you will succeed.

46 thoughts on “Howto: Switch to a console lifestyle”

I’m currently working toward this. I need to sit down and wrestle with screen to really get there, though, because I run far too many apps to fit on a single laptop screen (at a font that I can read without my nose touching the screen).

This is what I’ve been working too, I’m at the DWM phase with firefox. I was thinking that elinks could download .flv videos from a site and playback in mplayer. But I haven’t found out how to do this yet.

I’m already fond of using moc, and I’m going to try to use rtorrent in the future. However, like you said, I’m one of those people who absolutely couldn’t work without X, since I need it to run Virtualbox. As a technician, I don’t really have a choice in the matter.

Great guide!!
I wonder about one thing, though… I undersstand the advantages of text interfaces, but why would you give up the advantages of a window manager? Being able to cut and paste is essential. Do you instead write everything on paper before switching windows? How would you handle scollback buffer? Why give up on scalable, antialiased fonts, when a graphics card cots so little? Maybe I am simply not ready for that level of enlighenment?

For scrollback, you can use either a ncurses based terminal like my own qodem (http://qodem.sf.net), or a frame buffer based terminal like fbterm (http://code.google.com/p/fbterm/). If you use qodem, you also get screen dump, capture, keyboard macros, and X/Y/Zmodem/Kermit file transfers.

For cut-and-paste the standard solution is gpm – though it acts more like the X select/middle-click cut/paste rather than the Ctrl-C/Ctrl-V cut/paste.

On fonts, the raw Linux console has support for LOTS of fonts, with up to 512 glyphs each, and using Unicode to boot. If that isn’t sufficient then fbterm can use freetype2 to render just like X-based terminals.

A really well-written piece that makes some good arguments. I’m stuck at the “one or two graphical programs, dwm and a bunch of terminals” stage and I don’t seem to be able to go much further. The issue is that things such as Internet banking aren’t really feasible under ELinks, and I do these often enough that it isn’t worth switching back and forth from X to the framebuffer. I’ll get there some day.

Have you mentioned Ledger before? Truly excellent accounting package. Command Line, using text files. Simple, powerful, efficient. The other app I can’t live without is newsbeuter, but I think you’ve mentioned that before.

Can you get decent fonts with the console? Curiousity more than anything, as I have no plans to give up XMonad, or firefox.

But I think it must be conceded that there are times when it is better, if not absolutely necessary, to have a constantly-updated display of the text being edited.

Having opened that door, however, I don’t want to open it so wide that I end up back in a full-blown GUI environment like Gnome, KDE, or MS Windows. It’s important to know when and where to stop, whether you are heading toward simplification or towards complexity.

I stand by my original comment, that there are some things that people are doing with ncurses-based captive UI’s that could just as well be done at the commandline. But there are also some things that are so difficult or impossible to do at the commandline that a good ncurses app is a godsend.

Very good article! I’ve been doing this recently without noticing…haha…. I build a new machine this may for 400Bucks and after installing Arch (first time) with LXDE I thought I overdid it, but now I’m using Awesome/irssi/mutt/urxvt(didn’t use terminal often before;) )/finch I realized how I didn’t even need a new computer >.<
Right now I'm planning on buying a Netbook, which will be text-only and will be tweaked a lot (planning to try a self-compiled kernel e.g.) 🙂
My Workflow never has been this smooth 🙂

I’m more of a “lessist” than a “minimalist” these days, mostly because I think it would be stupid to waste my core2duo and my 3gb of ram, so I just run pekwm with Zim in the background and chrome for browsing and pcmanfm for file managing. On the CLI I mostly use vim and mocp.

And even like this this system is SLOW! There is lag when typing and scrolling and apps aren’t ‘that’ fast at starting, while using Ubuntu is fast :S now… how come ArchLinux with very little stuff running is slower?

People should use the software that fits the needs they have and the machine they are using. I expect I could move to a console only system, but what would be the point? At the moment I am running windows XP on a relatively old machine, and its performance is good. The reason I run XP on this machine is that it is my games computer. I could dualboot linux for non games stuff, but the power is there, I paid for it, why not use it? By using linux console for day to day task’s people often are trading milliseconds of processing time for minutes of man page reading, or hours of compiling.

At the other end of the scale I have a 486 laptop, which I spent many hours mucking arround with the kernel source to get X working, then discovered that I only use one, console based, app on it anyway.

Somewhere in the middle is my media computer, which runs a rather heavy graphical front end, but all the “hidden from the missues” back end stuff is done by console apps.

My point is that to use console for the sake of using console is just as mindless as using win 7 because of the way it looks.

I strongly advise against this. Personally i went the opposite way. I moved from a mostly commandline/ncurses interface to a graphical one.
I decided to do what you suggest above. Delete the configuration files from some of the applications i would no longer need. Especially regarding mutt and slrn i regret so much doing that, i cry once a month when something happens that reminds me of this.
Even if you do “terminate it” , keep backups of the configuration files.
Now, excuse me, i’ll go in the back and cry.

It’s been a while since my last use of elinks (I was more of a lynx user), but it didn’t have Javascript, and for a lot of web pages, it is a must. Also, being a mathematician writing LaTeX almost all day long, seeing my PDF’s or PS’s before printing is pretty interesting (not counting using AuCtex preview in Emacs). Of course, I am pretty much a console guy as many times as I can (just checking posts in my blog with command line in their title I find: Screenshot via command line in Linux, mg & zile: quick emacs in the command line, Power to the command line, Gcal: the ultrapowerful command line GNU calendar, The command line PostScript swiss-knife: a2ps and Power nap via the command line in Linux/Mac OS, to avoid link-spamming, you can google for the title adding “mostlymaths” and you will probably land at my blog), and I am also the proud owner of a Ben Nanonote (a handheld linux computer, with just console, mostly).

Knowing your way through the console can be damn useful, and ditching most windowed stuff can feel also “liberating” (using madplay as mp3 player, for example), but there is also a point of no return… and for me, it is LaTeX stuff. Probably other users have their points… or are already hard-core reading this in Lynx 🙂

Great blog! Nearly one and half year ago I switched from Windows to Ubuntu, which saves me a lot of megs for a complete working system. But it was still too big for me, not the system (p4 3 ghz, 1gb, 200gb hd). A couple of days ago I deceided to make a smaller system (on a p2 233mhz). Just a cli installation of Ubuntu 10.10 + openbox + fbpanel. After the startup fbpanel tells me that I am using 19 mb. Terminal programs that I use at this moment are: Nano, MC, Twidge and Links2. Not much, but I am still looking for improvement. Arachne (webbrowser) would be nice, some mediaplayers and today I will give Mutt a look. It is a long way to go before you are terminal-junkie 🙂

ps. a small suggestion. There are a lot of explanations on the web to make a CLI installation of Ubuntu, and most of them are using the standard way. But when you go to the expert mode you can choose to use only the drivers needed for your system. It may be old news for those who worked longer with Ubuntu, but you never know 🙂

Am hard at work making the console lifestyle work for me! I am on a computer that scrolls text rather slowly, with console programs like less and more. I found a new program called ‘reed’ that paginates text files, and it JUMPS from page to page – rather than pushing up the text one line after another. Perhaps you would give reed the proper recognition by giving it a write up someday soon?