Would you be able to survive one full day without using the X server? Linux offers us a wide assortment of CLI based tools which use curses and/or framebuffer for functional user interfaces. There is no reason why you shouldn’t be able look up stuff online, read your email, look at pictures, watch movies and listen to music as you are trying to configure X.
I was inspired by this post on Motho ke motho ka botho and decided to compile a list of useful command line applications myself. I will break them down into categories so that we can cover all the bases. If I’m missing something, or if I omitted some cool applications please let me know.
Web Browsing
The biggest problem in living without X is web browsing. You will be limited to text browsers, which generally do not support CSS and do not play nice with AJAX. The good news is, that most of the AJAX heavy web-pages now have mobile versions which are surprisingly text-browser friendly.
There are quite a few text browsers out there but I will recommend one:
Elinks [elinks.or.cz]
Why elinks? Because it supports both frames and tables, displays nice colorful output, and works great with mouse. Of course you can also use Lynx, Links, or w3m but in my experience elinks beats all of them hands down. Here is how my page looks in Elinks:
There also seems to be a framebuffer browser out there called Zen but it is a bit unstable no longer in active development.
If you are a gmail user like me, you are in luck. Google has a javascript-less version of their interface which actually works beautifully in elinks:
Neat, eh? For everything else there is Mutt:
Mutt [mutt.org]
I previously covered Mutt several times, showing you how to set it up for IMAP and how to send out emails without full blown sendmail or exim setup just using basic SSMTP. There is also Pine which is a damn fine mail client too – if you can deal with editing your messages in pico.
Chat
Chatting without X is pretty easy. It depends on what you are into though. For example, if you are a GTalk user I can recommend the excellent Freetalk which I covered before:
Freetalk [gnu.org/software/freetalk]

If you are on AIM, then naim will probably be the tool for you:
Naim [naim.n.ml.org]
Naim is a little bit funky but once you get used to it just works. It also supports ICQ and IRC protocols. Of course if you want full blown IRC support, there is probably no better client than irssi:
IRSSI [irssi.org]
It is a bare bones but full featured client. I don’t use irc that much, so I can’t tell you how good it is, but it seems perfectly functional – especially if you are a hard core irc junky.
Reading RSS
If you are like me, you subscribe to way to many RSS feeds. Unfortunately neither Google Reader nor Bloglines works in elinks (or for that matter any text based browser) so we have to rely on local clients if we want to survive without X. I recommend raggle:
Raggle [raggle.org]
Raggle has a clean and intuitive interface, is fast and takes up almost no memory. Perfect for a day without X. Go ahead, import your OPML file using a command line switch, and give it a go. You can also try Newsbeuter.
Btw, that feed list in the screenshot is the default set you get after installation. My feed list is way bigger. ;P
File Management
When you are not browsing, chatting, reading feed or writing emails you probably move around files on your hard drive. Midnight Commander will make this task easier with the classic Norton Commander like interface:
Midnight Commander [ibiblio.org/mc]
You young whipper-snappers probably have no clue what Norton Commander was – but I grew up on it. Whenever I use MC I feel nostalgic for the good old days.
Viewing Images
So let’s say you are living your one day without X and someone sends you an awesome picture. For example it might be a picture of a cat with a caption (ZOMG! Invisible bike!). Or maybe it’s one of those demotivational posters. Hell, it can even be some dancing bunnies!
So what do you do? You open it with a framebuffer image viewer like zgv of course:
I have no screenshot for this one because you can’t run it in X, but I can confirm it works. So you will never be without your cat macros!
Watching Video
Sure Luke, but how do I watch my p0rnz you ask? I haven’t personally tested it, but it seems that both Mplayer and VLC are capable of framebuffer output. How well do they actually work in that mode – beats me. Maybe at some point I will test them out, but at this point I don’t have any solid recommendations beyond that.
Text Editing
If you use Linux, you should already have a near religious attachment to a text editor that can be used without X. There are essentially 4 kinds of Linux users: vim/vi users, emacs users, users who can use both editors, but neither of them well, and n00bs. And guess what – if you think that you don’t fit in any of these categories, you are a n00b. Personally – I use both, but I’m more familiar with vim than anything else. Here are my recommendations:
VIM [vim.org]
Emacs [gnu.org/software/emacs]
Playing Music
The fact that you are not running X should not prevent you from listening to your favorite t00nz. Cplay is a lightweight audio player that is perfect for our X-less day:
Cplay [mask.tf.hut.fi/~flu/cplay/]
If you struggling with it, there is an awesome overview of cplay here.
Btw, you can always control your audio volume with alsamixer (if you have ALSA, and you probably do – you have alsamixer installed).
P2P
Luke! I has no Toonz! How I get some without X?
Well, it’s easy my friend. You can do it with rtorrent1:
RTorrent [libtorrent.rakshasa.no]
It’s yet another nifty curses application with negligible memory footprint. RTorrent can easily compete with the windows based uTorrent for size and memory. Unfortunately it is somewhat counter intuitive using Emacs like key bindings. The learning curve is a bit steep, so here is a nice primer to get you started.
Window Management
Yes, you heard me right – window management. The fact that we are not using X does not mean that we can’t have windows. Twin is a nifty curses app which will open sub-terminals inside a curses environment:
Twin actually stands for Textmode Window Environment which is exactly what it is. As you can see from the screenshot, it will allow you to have elinks, mutt, raggle and essentially any other application I mentioned here today open on the same tty. How awesome is that? It removes one of the very annoying issues that we face when working without X – the inability to have multiple “windows” open on the same screen-space at the same time.
Will I actually attempt to survive a day without X? Maybe I will at some point. And if I do, I will definitely blog about it, and tell you about my experience. But it won’t be today because I actually have some relatively time sensitive work to do.
Maybe we can all try this together? Let’s set a date (preferably on the weekend so we don’t struggle at work) and let’s try to survive a day without X. Let’s make it an annual linux geek holiday or something.
1 – I neither endorse nor condone downloading music. If you are downloading legally, then more power to you. If you are sharing without permission – make sure you don’t get caught.
Note:
If you want to translate this text, please go ahead as long as you give me credit and link back to this post. This work is published under Creative Commons, Non-commercial, Share-alike license.
Y HALO THAR Digg users! Thrilled to have ya here.
Related Posts:











[...] Rovistando nei repository è sorprendente quanto software utilizzabile da console esista. Di certo non sono user friendly, ma una volta presa la mano sono più rapidi e leggeri delle controparti grafiche e cliccose. Non avranno effetti stupefacenti, ma fanno il loro lavoro e in genere lo fanno piuttosto bene. Ho deciso quindi, ispirato da un paio di post di altri blog, di elencare alcuni dei programmi più conosciuti (o anche meno) per console. Di fatto in caso di emergenza quasi tutto si può fare anche da una poverissima riga di comando. [...]
nice article, though i would like to see one on longer term usage of the commandline in preference over x
Nice article.
I’m currently using centericq and irssi for IM. I prefer these to graphical IM clients even if im running in X. Plus side is ofcourse that I can use them remotely via ssh.
Mplayer rocks on command line and I use mplayer -vo fbdev quite often, which works just perfect. No different than watching movies in X.
Caca ascii output is just fancy and not very useful when you’ve already got great quality got framebuffer video, but I have to admit it looks cool. click here for screen
Yeah, the ASCII thing is a really cool trick you can use to impress your friends but I can’t imagine actually watching a movie this way.
CAPTCHA: sudo… interesting
Anyway, could you do an article on directfb on Intel, NVIDIA, and DAAMIT?
Thanks
Yes this certainly good idea, with such set of the programs, x-server in outline not it is necessary!
tried links2?? http://links.twibright.com/
it support framebuffer so you can browse the web with full graphics.
or nanozilla under nano-X?
http://alllinuxdevices.com/news_story.php3?ltsn=2000-10-18-002-03-NW-D V
I’m coming late to the discussion, but I struggled with the command line RSS aggregators. Turns out that Bloglines Mobile page works well in elinks. Be forewarned that unless you explicitly disable it from your regular bloglines page, it will run your outgoing page links through Skweezer to optimize the download time.
Links2 can display webpages with framebuffer, so you’ve got all your images and everything.
I keep promising myself that, one of these days, I’ll try running my computer without X. Also note that you can play individual audio files with “play” – it comes with sox. Just install sox and then type “play audiofile.mp3″ and it will play “audiofile.mp3″.
P.S. I’m using IE on Windows XP but only because the head office has stopped Firefox from working
Yo tengo Xubuntu y FreeBSD en mi Dell Inspiron 1420n y en mi FreeBSD no tengo entorno grafico. Pero aunqué técnicamente puedo hacer todo sin mi entorno grafico, no me gusta por el simple hecho de que me gusta cacharrear con DE’s (mi preferido es Xfce 4.4.2) y me gusta el compiz-fusion. Además no logro entender cual es el interes en tener los entornos más aburridos y feos en nombre de la “productividad” y el ser “profesional”.
Ahora para los interesados conozco un par de editores de texto que funcionan bajo la consola.
Vigor
Jed
Le
Jove
ee
Y si tenes el pico (nano no lo incluye) también tenes un gestor de archivos que funciona como el pico y se llama pilot.
Dude! Ever heard of not making screens of window decorations? ^^
Also late to the party, but I want to mention a few things that no one else has.
- None of the curses-based RSS aggregators (snownews, newsbeuter, raggle, nrss) I’ve seen meet my needs. I’ve settled on rawdog instead. It generates a local webpage than I can then read with a text-mode browser (or with Firefox if I’m working in X). Easily automated with cron. It uses Mark Pilgrim’s feed parser, so it supports just about everything that’s out there, and since it defers formatting and display to the web browser, it doesn’t have some of the shortcomings of the aggregators that try to do this themselves. IMO, a fine example of doing one thing and doing it well.
- I use dvtm to tile the terminal or console window. Using it, for example, I can view a manpage while typing in vim. I find this to be a much more productive way to work than switching between virtual terminals in screen or between tabs in a terminal emulator. (Yes, I know screen supports split windows, but dvtm’s approach is nicer.)
- For downloading podcasts, I like podracer. But the original bashpodder is OK too.
- For backups, I use rdup.
- Someone already mentioned vifm. But I want to add my vote for this lightweight alternative to the more popular Midnight Commander.
Lmao rickroll. nice post
I’m quite surprised that noone mentioned a usenet client: slrn
Also, can someone recommend a minimal USB distro on top of which I could put all these programs?
corky said:
I haven’t tried it myself, but you might want to consider ttylinux.
If that’s still not small enough, you could recompile the userland utils to use ucLib or dietlibc. (I haven’t tried that either, but it’s on my todo list.)
Thanks for making my geriatric laptop useful
Man, that is so sweet, I get almost everything that I am looking for. I get a fairly old Laptop, That is exactly what I want to do with it. Instead a base Linux Distro, and Run it purely in CLI. I will organize the post, and list out all the software that was mentioned.
One thing I would like to ask is that, is there a good CLI Graphical/Scientific Calculator? What I mean by Graphical is just like a way to making plot / graph. If there is That would be perfect.
awsome Post
Luke Maciak said:
Well, there’s GnuPlot. I think you could redirect the output into an image, and then view the image using one of the CLI image viewers that were mentioned somewhere in this post.
trastornau said:
If you don’t want accuracy but just to look at the general trend, use the dumb terminal option on gnuplot:
http://t16web.lanl.gov/Kawano/gnuplot/misc3-e.html
I made a list that listed out all the software that is mention on this page, Just so people wouldn’t need to dig for them.
and one quick question, is there a nice software that do Latex in CLI?
here is the list
Linu (Linux without X)
Luke Maciak said:
Yeah, it’s called Emacs
No, seriously – it’s a pretty good LaTex editor.
Thanks so much Luke
Ceni I hear is good for wifi, splitvt will split one tty into … two… no more…
And dvtm, while I can’t figure it out, looks like ratpoison for the console.
Sweet, I’ll have to try that sometime
I am trying to get ubuntu onto my iBook and I apparently needed to use the alt. Install CD so untill then I am using X on my iBook, I have been using your programs to help me along (luckly most are in the ubuntu res so i only need to apt get and not compile)
I thought of something else to add, nano! It’s easier to use than vi(m) or emacs, I don’t know why it’s not on there. (it’s for the n00bs)
if you are not too partial to naim, finch is a great ncurses based interface based on purple ( read: pidgin / gaim ). one of my favorites. also, for images aalib is just great, and it has a great video out device for mplayer that real-time encodes the movie to text.
cheers man, great article,
Tag
+1 for finch
It’s very similar to Pidgin (not only based on it but made by the same people). It’s the best choice, and multi protocol
screen for sure!
strings for reading MS Documents
pdf2html for converting pdf files to html then use lynx etc
finch for msn and irc.
When I tell people I can’t drive a standard transmission car, many people laugh. The funny thing is, I’ve been a computer nerd my entire life, and a command line person. I believe many people are “trained” to think the GUI == The Machine.
It’s healthy to escape outside your comfort zone for a while. For the record, I’m a big Cisco guy, and much of the power of their equipment is on the command line. Sure the GUIs are getting better, and are nice and fun to use, but you never know when you’ll need to drive that manual transmission in an emergency.
I think I could fake it.
thank for the information, really usefull
but I have my own choise for non-X application
this is the list
web browser:lynx
download manager:wget
email client:pine
mp3 player :Mpg123
Dude, did you forget screen?
^ IMHO twin is better and easier to understand than screen. I never understood screen that much TBH.