The Artist's Guide to the Linux Desktop, Part 3
Window Maker is a descendent of the GNUStep project. GNUStep is, in a sense, more like GNOME and KDE than Window Maker. GNUStep attempts to provide underlying features of the desktop—features which are not visual, but functional. Window Maker includes some of this functionality, but is more akin to Enlightenment, a window manager, than GNOME, a desktop environment. Designed for additional integration support of GNUStep applications, Window Maker takes its look from NeXTSTEP, the desktop interface from the Apple-devoured NeXT company, one of Steve Jobs' post (and pre)-Apple projects.
Window Maker includes support for running as the window manager in KDE, GNOME and Open Look (yet another environment, although you aren't likely to see it on Linux). The KDE support appears more complete than the GNOME support (which tends to be a bit of a moving target at times). The source distribution contains README files describing how to use the window manager in both KDE and GNOME. Window Maker has some of its own session management capabilities, but does not directly provide drag-and drop-between applications.
Again, we'll assume you already have Window Maker installed. If not, instructions can be found in my article “Installing Window Maker” in “Strictly On-Line”, http://www.linuxjournal.com/lj-issues/issue74/4050.html. Be sure you have version 0.61 or the latest release.
The first time Window Maker starts, you'll see a display similar to Figure 1. This is the default screen display, which isn't that fancy, initially. Unlike Enlightenment, Window Maker doesn't presume any graphical pizzazz on your part. It lets you define it right from the start.
Note that on my desktop, I use the XPM-based default icons (see Figure 1), whereas on my laptop, I used the TIFF-based default icons. I never could get the TIFF-based version, which has much nicer icons, to work properly on my desktop even though the desktop and laptop systems are configured—as far as I can tell—exactly the same. This is a negative mark for Window Maker. Neither FVWM2 (my normal window manager) nor Enlightenment exhibits this sort of problem.
Figure 1 shows three important pieces of the Window Maker desktop: appicons, the clip and the dock. Window Maker uses icons in two distinct ways: as appicons and as mini-windows. This is another terminology dance we users have to play, as developers struggle with ways to define the complex to the uninitiated. Don't let it worry you much. The images along the right side of Figure 1 are appicons. They represent a running application whose windows can be open or iconicized. This differs from a mini-window, which is what you get if you iconicized a window. Click on the small box on the upper left of a window, and the window collapses into a mini-window. Visually, you can tell the difference between a mini-window and an appicon, as the mini-window has a tiny title bar in it, as shown in Figure 2.
Appicons (see Figure 2) are created each time you start a new application from a command line. This is different behavior from most other window managers, and I initially found it annoying. Fortunately, you can change this behavior by using the Dock, which I'll discuss in the section on managing the desktop.
In the upper left corner of Figure 1 is the Clip. This is essentially the pager for Window Maker, although it lacks the visual cues that other pagers provide. It also has some special behaviors when used with appicons. Dragging an appicon onto the clip connects the icon to the clip for the current workspace (see Figure 3). After a moment, unless you keep the mouse over the clip icon, the icon you just connected to it will be hidden. This allows you to use drag-and-drop to place applications on a particular desktop, plus it hides all those nasty appicons. The clip is a tool for managing which applications are on which desktop.
This leads to another issue: Window Maker doesn't have desktops. It doesn't have pages, either. Instead, it has workspaces. More terminology, but in this case, it's not needed. A workspace is the same thing as a desktop. Unlike E (Enlightenment) or FVWM2, Window Maker doesn't have multiple pages for each desktop. It just has an unlimited number of desktops connected in a sort of linear—left to right—pattern.
Dragging windows between workspaces is configurable using the Preferences utility (discussed in more detail later). Drag to the left or right edge to get to the next workspace. You can warp (i.e., jump) a window to another workspace by using the window's Title Bar menu “Move To...” option. When you get to the edge of the last window, you can't drag past the right edge unless you configure in the Preferences utility to wrap back to the first workspace or to create a new workspace—either is configurable. The same thing applies when trying to drag to the left edge of the first workspace.
Adding new workspaces can be done by clicking with the middle mouse button (normally mapped to both buttons on a two-button mouse) on the Clip. This brings up a menu, the first item of which is “New”. A right mouse click on the Clip brings up a menu for managing the current workspace, from renaming it to grabbing all appicons to managing how icons are displayed.
When switching workspaces with the Clip, the name of the workspace you've switched to is shown in the center of the display (over any windows, if necessary): it then fades from view. This is a cute trick that happens to be a bit useful as well. It's nice to know the name of the workspace you just entered.
Over on the top right side of Figure 1, you'll see the Dock. This is a special application that manages appicons. This is the place to add appicons to launch applications. It's similar to the GoodStuff bar in FVWM2, or less similarly, to the panels in KDE and GNOME.
Using the Dock is a little confusing at first. Let's walk through an example of adding an appicon to the Dock, so we can start xterms at will. The first thing to do is open an xterm manually, which you can do by right-clicking on the root window to get the root menu. The third item down should be “XTerm”. Click on it. A generic black text on a white background xterm should open, and its appicon placed in the lower left of the screen. Left-click on the appicon and drag it up under the appicons under the Dock. When you're close enough, a white box is displayed under the icon, and when you let go of the mouse button, the xterm's appicon is neatly positioned under the other icons.
Now you have an icon that will always be there (you can remove it manually later) when you start up your X session. Right now, its application—the xterm—is already running. Exit out of the xterm by typing “exit” at the command prompt or clicking on the “x” in the upper right corner of the xterm window. Notice the xterm's appicon now has three small dots in its lower left corner. That means you can start an xterm by double-clicking on the appicon. If you do this now, the xterm opens again and those dots disappear.
The problem here is that you can't open more than one xterm. You have to configure the appicon, while it's docked, to allow for more than one instance of the xterm to be started. Here is how you do that:
If it's not open, open an xterm by double-clicking on the docked appicon.
Right-click on the title bar and choose “Attributes” from the menu.
In the “Inspecting...” dialog, select the “Application Specific” option.
Click on the “No Application Icon” button, then click on “Save”.
Click on the “Close” button (the X in the upper right) of the “Inspecting...” dialog to close that window.
Now you should be able to launch multiple xterms from the single terminal icon hanging off the Dock. This process works for any appicon you connect to the Dock.
If you want to remove an appicon from the Dock, just click and drag it down to the bottom of the screen and let go; it will disappear. First, make sure you've closed all instances of the application started with that icon, however.
- My Childhood in a Cigar Box
- Tech Tip: Really Simple HTTP Server with Python
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Returning Values from Bash Functions
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Panther MPC, Inc.'s Panther Alpha
- Simplenote, Simply Awesome!
- NethServer: Linux without All That Linux Stuff