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.

That’s when you can sell it all off for a few hundred bucks, pick up a leftover Celeron from a garbage pile, restore it, and use it in the same way, with the same software, and do far far more with far far less.

Be honest. So is this the best way to use a computer? I don’t know. I don’t know you. You and I are relative strangers.

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

  1. Josh Tolle

    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).

    Reply
  2. Michael

    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.

    Reply
    1. clikz

      Hi Micheal,

      You can use a utility like youtube-dl to download flash videos from most streaming video websites like youtube and Vimeo and play them from MPlayer / VLC / Xine or whatever video player you like 😀

      http://bitbucket.org/rg3/youtube-dl/wiki/Home

      If you want streaming, you can always use good ol’ VLC using its ncurses or LUA interface. Just type in :
      nvlc

      or

      rvlc

      Reply
      1. clikz

        Oops, wordpress made a boo-boo.

        I meant, write in ‘nvlc’ followed by the youtube URL.
        nvlc [youtube-link]

        Reply
  3. koleoptero

    I managed to work with only a minimal install using screen and all console programs like cmus for music, rtorrent ofc, elinks, etc, for about 4 hrs. But then I wanted to watch a movie 😛

    If I had two computers, one would probably be free of X right now. As it is I’ll keep X cause of the various stuff I need graphical programs for.

    It does feel wonderful to go console only though.

    Reply
      1. ZekeSulastin

        I’ve actually watched a video clip over ssh using the text output for mplayer. It was … interesting, to say the least :

        Reply
  4. Armor Nick

    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.

    But to each his own, eh! 😉

    Reply
  5. Matthew

    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?

    Reply
    1. KevinL

      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.

      Reply
      1. Matthew

        Thanks very much for your response. Lot of items here for me to research, and these will help me on my path to cli enlightenment! 😉

        Reply
  6. Pingback: K.Mandla at his best « Notes from the Library

  7. Sean Whitton

    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.

    Reply
  8. Cian

    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.

    Reply
  9. CorkyAgain

    Even when you’ve reached the stage where you no longer run X Windows, you’re still not done.

    The final stage has you looking at those ncurses or slang apps that use what ESR calls a “captive interface”. Is there a commandline replacement for them? Can you live entirely at the shell prompt?

    For example, can you replace mutt or alpine with nmh?

    And which shell? Do you have to use a behemoth like bash, when there are lighterweight alternatives, e.g., ksh?

    Reply
  10. CorkyAgain

    Even if you find you need to keep some of those captive UI apps, you can still look for lighterweight replacements.

    E.g., nvi rather than vim.

    ( I’d say vifm rather than mc, but my argument requires me to forego vifm too. Besides, I know you’re tired of hearing about it. 🙂 )

    Reply
      1. CorkyAgain

        I do use sed, awk and similar tools as much as possible.

        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.

        Reply
  11. McDoenerKing

    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 🙂

    Reply
  12. el mariachi

    Great read K 😉

    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?

    Reply
    1. Calvin

      Try recompiling things with SSE, mainly SSE3. That might speed things up. Or horribly break your system. But mainly speed it up.

      Reply
    2. Ray

      You probably need a video driver of some sort. Without it, even scrolling will probably be painful.

      Reply
  13. bob_v5

    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.

    Reply
  14. Pingback: Bloggery | Prose Before Hos

  15. Chris

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

    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.

    Reply
    1. CorkyAgain

      I agree. You should never delete an app’s configuration files until you are absolutely, beyond-a-shadow-of-a-doubt certain that you will never ever run it again.

      Besides, it isn’t necessary in order to run the experiment of living without the app. An experiment I do recommend.

      Reply
  16. prinzzchavo

    K-Mandla, if you allow me the suggestion, a huge link to this Post should remain on the top of your website forever.

    It explains your point of view much better than what you are currently showing under “About” (even when that remind some of us newbies your background).

    Keep the good work!

    Reply
  17. Pingback: Links 20/10/2010: Groklaw and Linus Torvalds Win Awards, London Stock Exchange Breaks Record With GNU/Linux | Techrights

  18. Ruben Berenguel

    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 🙂

    Cheers,

    Ruben

    Reply
  19. Pingback: An SSH management script « Motho ke motho ka botho

  20. Theo

    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 🙂

    Reply
  21. Matthew

    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?

    Reply
  22. Jraz

    That was truly inspiring. I have a made for win98 machie at work someone gave me. Now I know what to do with it.

    Reply
  23. you want my opinion about websites I'll give you my opinion about websites

    That’s a great idea for how-to adopt. But frankly I don’t know what-to adopt. Do you have any suggestions? For Ubuntu, that’s what everyone in this target audience is probably using.

    I’ll throw one out: Alpine. Took me a few tries to get the config files set-up for IMAP in Gmail. Now I fly through deleting crap and find it easier to focus on writing emails undistractedly.

    I still sign into gmail.com for Search, but for top-of-the-list reading and writing Alpine’s great.

    More ideas?

    Reply
  24. Pingback: A companion for the CLI « Motho ke motho ka botho

Leave a reply to clikz Cancel reply