Working with the Skippy Screen PagerWindow PreviewsAndrea Müller |
![]() |
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.
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.
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.
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.
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. |