Working with the Skippy Screen Pager

Window Previews

Andrea Müller

If your window manager is too boring or Spartan for your liking, why not add a touch of pep? Skippy is an imaginative screen pager with an integrated preview function.

Almost any window manager will give you a window list, displaying a menu with the active windows when you click or press the right key. If the programmer who developed the window manager has a soft spot for graphical gimmicks, the list might add icons to the program names. But a window chooser will not speed up the process of switching between windows if you are working with a selection of different browsers and terminal windows. Skippy [1] by Hyriand to the rescue: instead of giving you a simple list, Skippy displays the active application windows graphically in full-screen mode.

Sophisticated

Window managers have different approaches to handling active windows, and Skippy is choosy about the managers it supports. To ensure that you will be able to switch between GUI-based programs, you need a Gnome- or NetWM-compatible window manager, such as Waimea. The homepage for the window manager or a quick glance at the Readme file supplied with the manager should tell you if this is the case. Also, the Skippy developers have a list of window managers that Skippy supports on the project homepage. Supported managers include Fluxbox 0.9.9, XFWM4 icewm and WindowMaker.

Gnome compatibility is an option with the last two window managers in this list; you need to enable the --enable-gnome<$> configure parameter when building the program. If you simply installed from your distribution CDs, your version of WindowMaker should be fine, however, as most major distributions enable Gnome support. Debian and Mandrake Linux have different flavors of icewm. The icewm-gnome package will work with Skippy, whereas icewm gives you a small-footprint version of the window manager without Gnome support.

Figure 1: If Skippy outputs this error message and refuses to launch, your window manager may be using the [F11] key as a shortcut.

Quick Start

Skippy is not included with most distributions, and this typically means building the tool from the source code. You can download the program archive from [1]. After installing the libraries, imlib2 (Mandrake Linux calls this package libimlib2) and freetype, along with the appropriate developer packages on your machine, simply enter make to compile Skippy. Then, working as the root user, enter make install to install the program in /usr/local/bin.

Skippy parses the .skippyrc file in your home directory for its configuration. You do not need to create this file yourself, however, as Skippy comes with a ready-to-run template. The file is stored as .skippyrc-default in the window manager's source code directory. You can type the following command

cp skippyrc-default ~/.skippyrc

to copy the file to the appropriate path.

Figure 2: Skippy gives you a preview of the active windows.

Windows Roll!

Typing

skippy &

launches Skippy as a background task. If you see a message that says X Error of failed request: BadAccess (attempt to access private resource denied (Figure 1), Skippy is simply trying to tell you that it cannot reserve the preset shortcut key [F11]. This happens if your current window manager uses the [F11] key or a combination of [F11] and another key as a shortcut. For example, Fluxbox toggles to desktop number 11 when you press [F11]. To use the window chooser despite this, you can either modify the hotkey in your window manager hotkey or in Skippy. The .skippyrc configuration file tells you which shortcut displays the window list. Check the [general] section for the following line

keysym = F11

and replace F11 with an unused key. Of course, you cannot use normal alphanumerical keys; your options are restricted to the function keys or special keys. Many Skippy users select the [Scroll Lock] key, as most window managers do not map the key. To use this key assignment, edit the line in .skippyrc as follows:

keysym = Scroll_Lock

After sorting out any keyboard conflicts and launching Skippy, you will not see a lot of Skippy, as the program just hides in the background until you press the key defined in .skippyrc ([F11] by default.) When you do so, Skippy moves the active windows to the foreground to take snapshots of them, before switching to full-screen mode and giving you a preview of the active programs (Figure 2).

Inactive windows are semi-transparent, and Skippy colors active windows mauve. You can use the arrow keys to toggle through the individual programs and select the window you need by pressing [Enter]. Alternatively, just click on the application you need. Skippy shows you a tooltip for the current window. The tooltip reflects the current content of the title bar in that window.

When you select a window, Skippy moves that window to the foreground and switches back to desktop mode. If you want to quit the preview without selecting a window, you can quit window selection mode by pressing [Escape].

Listing 1: Color Definitions in ~/skippyrc

01 [normal]
02 #brightness
03 brightness = 0.0
04 #Window tint
05 tint = light sky blue
06 #Degree of transparency (0 through 255) - the lower the value,
07 #the more transparent the window display
08 opacity = 200
09 #Frame color
10 border = SteelBlue
11 
12 [highlight]
13 brightness = 0.05
14 tint = #FFFFB8
15 opacity = 255
16 border = #A4A7A2

Skippy loses track at times and shows you windows that you have already closed, but you can press [Ctrl-F11] instead of [F11] to tell Skippy to update the preview.

Fine Tuning

Although Skippy's default color scheme is quite breathtaking, it might not match your preconfigured desktop design. The .skippyrc configuration file allows you to style the preview to your own taste. The [normal] section defines the colors for inactive windows, and the [highlight] for active windows. The options for the color scheme use the same names in both sections. For example, tint = is the window color option, and border= allows you to define the frame color.

Skippy will accept color values in HTML notation and color names. You can run the kcolorchooser to discover HTML values. To find out which colors the system knows, run showrgb | less. The entries in Listing 1 give a preview that displays inactive windows in blue and the active program in light yellow. Lines starting with a pound sign (#) are comments on the individual options.

INFO

[1] Skippy: http://thegraveyard.org/skippy.php

[2] freedesktop.org standards: http://www.freedesktop.org

THE AUTHOR

After nearly two-years as an independent journalist, Andrea Mueller works as a new editor for the Linux New Media AG.

When she is not taking care of articles or wrapping packages for the EasyLinux download area, she looks beyond Linux and is involved with other operating systems like QNX, BeOS and NetBSD.