As I have recently discovered, with the right applications, ditching the GUI and using the console exclusively can be a pleasure. By knowing which console applications will suit your needs the best you can achieve efficiency in a console environment that rivals that of a GUI. With well designed ncurses interfaces many console applications are extremely usable and working in a console environment can not only free up precious resources it can also provide several other benefits that will be discussed later in this article.
Note: The use of the term GUI in this article will refer to an X server with the possible addition of a window manager and/or desktop environment. Although I have seen applications with ncurses interface referred to as having a GUI, I will refer to their interface in this article as the console or User Interface (UI).
We All Have Needs
When exploring the idea of continuing existence without your favorite Desktop Environment you must examine what your needs are when using your computer. If you are a graphic designer, working exclusively in the console is obviously out of the questions, but for many Linux users operating there computer in a console environment is a very realistic, even enjoyable, solution. Since I had an older computer lying around I decided to use it as a file and web server a couple of years back. Later, when working on my primary machine I got tired of distractions like people instant messaging me and other temptations like messing with mp3’s, etc. so I decided to move these applications to the older computer. I first tried a few of the minimalistic window managers and although I am a big fan of the usability that some of them provide, I was never satisfied with the amount of resources I had to sacrifice to run X on this older machine. I decided to look for console applications that would match the functionality I had become accustomed to in the GUI programs I depend on. I needed to find an instant messaging program capable of communicating with multiple protocols, a music player that could play mp3 and ogg files, a means for surfing the net, and some applications to monitor my system resources. I didn’t expect to find applications that could live up to my expectations, but it turned out that the applications I did find were not only adequate but look great, are easy to use, and made working in the console a productive and enjoyable experience.
Some Basics for the Console Newbie
(skip if you already know your way around virtual consoles)
Before proceeding I will discuss some little tricks that will allow you to work productively in the console environment that may not be obvious when starting out. First, that login prompt that comes up after your distribution finishes booting (if your not using a display manager), there are several more just like it. You can access them by pressing ALT+F(1-6).
Note: Your distribution may have less than or many more than 6 virtual consoles. The most common case I’ve experienced, in Linux, is the existence of virtual consoles 1-6 and 7 being reserved for the X server. It is also possible to create a greater number of virtual consoles and select which one will be used for the X server.
If you, for example, start up the X server from console 1 you will then be taken to the GUI. If you want to return to your virtual consoles you can press ALT+CTRL+F(1-6) to select which virtual console you wish to use. After in a virtual console pressing ALT+F7 will return you to the GUI.
So why is all of this useful? Because you want to load those virtual consoles up with nifty applications, streams of compiling code, and whatever else makes you and your Linux box tick!
Check the screenshots below and then go ahead and read the second page of this article.
Which Applications Are Going to Turn My Linux Box into a Lean, Mean, GUI Shredding Machine?
When using my favorite window manager, Fluxbox, I get a lot done in console windows: moving files around, programming, editing documents, etc. I, however, was dependent on several applications that I used for surfing the net, instant messaging, playing music, and monitoring my system. The following are some of the console applications I found that allowed me to ditch X.
Important things first: How are we going to play those mp3’s in the console? We could use one of those boring command line players, but why would we where there is mp3blaster. Mp3blaster has a well designed ncurses interface. It is easy control the audio mixer, browse the available options, play files from the playlist, and control shuffle and repeat all from the main window. Selecting mp3’s to play is also a breeze with mp3blaster’s file manager. Multiple files can be selected one at a time or by recursively selecting directories. One of my favorite features in mp3blaster is its ability to let you create groups within the playlist. This allows for added flexibility in the order that your music is played and also is convenient for adding and deleting groups of music. If you’re an Ogg Vorbis fan, mp3blaster has you covered with ogg support.
Now that the tunes are blasting lets look at instant messaging software (another area where my expectations were low). CenterICQ is the console user’s answer to instant messaging. It supports several networks: aim, icq2000, yahoo!, jabber, and IRC. It can also connect to the MSN network with a patch that can be found in the forums at the CenterICQ fan site. It sports an ncurses UI that perfectly makes visible everything necessary to view online buddies and carry on several conversations at once. It has excellent menus for detailed configuration and is feature rich with options such as using Emacs key bindings in the text editor, mode settings for sorting groups, and nice menus for searching for users, viewing chat history, and viewing user details.
If you are running network services IPTraf makes it easy to monitor TCP and UDP connections. It can provide various real-time statistics on each or all network interface and custom filters can be created to monitor specific traffic from a specified port for monitoring services like HTTP or STMP. IPTraf supports logging of interface traffic to the disk (it will create a file per interface) and several other useful configuration options. It’s UI is also ncurses based making the output easy to read and maneuver through. For monitoring other aspects of your system don’t forget about the good old top and ps commands.
If your a P2P file sharing fan you will be pleased to know about giFT. It has become pretty popular amongst Linux users and can connect to its own openFT network along with the popular FastTrack and Gnutella networks. It works by combining a daemon (giftd) that connects to the networks of your choice and allows various interfaces to connect to it. GiFTcurs is the ncurses front end and it is easy to use. Combining the configuration options of the giFT daemon and giFTcurs (mostly achieved by altering giFTcurs.conf) the user is provided with a highly configurable tool that returns good results on searches. My only complaint with giFTcurs is that as far as I can tell it does not, by default or configuration, have some of the features that other P2P clients or interfaces have. The search options are very basic (search string and type of file), the detailed information about search results requires scrolling on each result, and the results are not sortable by this detailed information.
The last two applications I will present are Midnight Commander and Emacs. Both are GNU applications that have long histories. Midnight Commander is a file manager that is roughly compared to MSDOS’s Norton Commander and at first glance reminded me of the old DOSSHELL program. It has many more features than both of the DOS managers mentioned and also includes an editor that supports syntax highlighting and key combinations similar to those found in Emacs. Because it is where I spend so much of my time, I can not help but mention the Emacs text editor/environment, despite the fact that everyone reading this has most likely heard about it or uses it. What is nice about Emacs is that it allows you to do key combinations that help you to edit text quickly. It also includes many features like its own E-Mail program, file browser, games, and is very configurable with the use of LISP scripts. There are several good tutorials to help with learning Emacs and I also suggest getting O’Reilly’s “GNU Emacs Pocket Reference”. Any effort you put towards getting past the initial learning curve that is associated with this editor will pay off in productivity due to Emacs infinite customability and huge number of features. Aspell is also worth mentioning because it is a powerful spell checker that provides better suggestions than many other, more popular, spell checkers that I have used. It is capable of checking plain text files, HTML files, TEX files, e-mails, and many other types. So after or during your Emacs session you can jump into Aspell and be on your way to superb spelling.
The applications available for the console are at a level of quality that should satisfy a large array of *nix users whether your goal is to add some new applications to your arsenal or to use the console exclusively. My favorite advantage gained by using console applications is the ability to run a ssh daemon and access these applications from anywhere with a basic ssh client. All of you console applications are instantly available to you making it easy to, for example, log in to your computer load up CenterICQ and have a messenger that is instantly configured and connected without having to install various clients on the local machine you are working on. It becomes easy to log in and load up IPTraf to monitor network traffic or to edit the source code, html documents, etc. Using the console exclusively also gives you the advantage of using less system resources, which can be important on a slower machine and it enables you confuse and/or impress your Windows using friends when they catch a glimpse of your monitor. In conclusion I will mention GNU’s screen application because it allows you to switch between multiple applications in the same console window. This is very useful when working with a limited number of consoles. Enjoy the freedom of options that GNU/Linux and its developers provide.
I am a Computer Science student at CSU Chico. I started exploring GNU/Linux some years back with the RedHat 5 distribution and have since tried numerous distributions, learned a lot, and have had much of fun. I am currently running Gentoo and Arch Linux and I am very happy with both. My web site can be found at http://hypexr.homelinux.org.