The Best Without X

Small computers, especially those with little memory, don't run the X Window System—or any other graphic environment—very smoothly. An intelligent keyboard configuration and use of the gpm mouse server will help you exploit your small Linux box to its fullest.

Tools for the Text Console

The following tools work particularly well on the text
console, sometimes even better than in graphics mode.

gpm-root: gpm-root
is a root-window manager. Its role is to draw menus on the screen
background, like you do in the X environment. By default it
responds to control-mouse events, since mouse-only is left to the
selection mechanism, a vital feature if you work on a text console.
The menus drawn by gpm-root are read from a user-local
configuration file, and can be tailored to your own preferences.
gpm-root allows console-switching, console locking, opening a new
console to create a new system login, retrieving system information
and executing external commands, as well as recursive menus. The
user configuration file is reparsed when needed, to ease
trial-and-error menu writing.

Emacs The Emacs editor is made mouse-sensitive by
loading the t-mouse.el package, which comes in the gpm
distribution. All the functionality available under the X Window
System is duplicated on the text console, including the scrollbar.
The scrollbar acts on the last column of the screen and smooth
scroll is accomplished through a variable resolution widget—the
more you move your mouse to the left, the less scrolling takes
place in response to vertical motions. A meta- mouse button press
triggers the scrollbar independently of the position of the
mouse.

Jed: The Jed editor is mouse-sensitive as well.
Mouse support has been developed by Jed's author, and thus is
perfectly integrated. Jed is a good alternative to Emacs if you own
a small computer—it is considerably smaller, both in disk usage
and memory occupation, but offers the same basic commands and
interface, as well as its own extension language. Well, if you
learned “elisp” to configure Emacs, won't you learn “slang” to
configure Jed?

dialog: The dialog program is nothing special,
except that it runs definitely better on the text console than
under an xterm. Managing a Slackware installation with the dialog
menus on the console is a breeze, especially if you can interact
with your mouse. Under xterm, on the contrary, a dialog menu looks
ugly, and available mouse events are limited to button press, so
you're almost forced to use the keyboard. Moreover, the curses
libraries tend to use the alternate screen provided by xterm, and
thus message boxes are simply invisible, and you wonder why the
terminal is idling around without any message on it.

mc: mc
(The Midnite Commander) a powerful file
manager, is modeled on the famous DOS command
nc, though much more powerful than
the original. mc is fully
configurable and extendable, and does a good job of managing your
file system status. You can use its menus with the mouse as well as
the keyboard, while shift-mouse runs selection as usual.

screen: The screen
utility is a viable alternative to opening a lot of consoles. It
manages up to ten terminal sessions running on a single physical
connection. screen offers a lot of
functionality, and is a must if you use a vt100 or an old PC
running kermit to connect to your linux box. It is useful also if
you're really console-hungry and you don't have enough consoles.
The major drawback of screen is that it emulates a vt100, so you
lose all the extra features offered by the Linux console.
Specifically, you can't run gpm-aware programs under screen. One
really nice feature of screen is the visual-bell facility. It
offers a cut-and-paste facility, too, but mouse-based selection is
easier to use.

minicom: minicom
is an easy-to-use communication package resembling DOS's
telix with a menu-oriented setup. It offers a
good scripting utility, which makes your programs talk directly
with the remote end of your serial connections. I use minicom to
remotely control a Nicolet oscilloscope, with no concern about
communication parameters.

gnuplot: Its name says a lot about it. A drawing
program that can read external ASCII files, its major advantage is
the ability to manage a many different output devices—including a
bare terminal. This means you can look at your data graphs without
starting X-Windows. The granularity of a tty plot is coarse, but
gnuplot does its job well. It has a fairly complete internal help
facility, and you can produce nice PostScript (or other graphic
format) graphs without entering your graphic environment.

Further Readings

All the tools described above come with manual pages or info
files. mc has a good internal help
utility. gpm-root and the lisp
library t-mouse.el are part of the gpm package.

Alessandro Rubini
is taking his PhD course in
computer science and is breeding two small Linux boxes at home.
Wild by his very nature, he loves trekking, canoeing and riding his
bike. He wrote gpm, and can be
reached as
rubini@ipvvis.unipv.it.