Virtual Desktops -- 101
OS/2 Warp is delivered with (and installs) a single desktop -- the user environment against which all Warp computing activities happen. This desktop is exactly the size of your display. If you happen to be a fairly active user who is in the habit of having a number of applications and folders open at the same time, this single desktop can get fairly cluttered. Organized it ain't!
One possibility is to set up "project folders" as OS/2 workspaces. These can contain shadow or real application objects, data files and other objects needed to do the necessary work. But, project folders are quite rigid, and don't lend themselves to a very active and complex work style. They usually require a lot of management, and they can compound the desktop clutter factor instead of helping it.
As it happens, the single desktop that is just the size of your display screen is not a design limitation of Warp; the presentation space can be arbitrarily large, in fact. On the other hand, there is no evidence to indicate that IBM planned for -- or even contemplated -- that such a large display environment might be a useful or desirable trait of the Presentation Manager. As a result, there are not (as far as I can determine) any Presentation Manager APIs that are intended to support the use of a large presentation space. This issue not withstanding, a few resourceful programmers have been able to "convince" the Presentation Manager to do what was not necessarily intended.
The basic technique is to define a very large desktop -- that is, a large, contiguous presentation space that is some multiple, horizontally and/or vertically, of the size of your display screen. This is the "real" desktop. In this space, open objects -- applications, folders, whatever -- are placed in convenient and logical relationship to each other. Then, a facility is incorporated that uses a "sliding window" to display a portion of this space which is just the size of your screen. What you see is the "virtual" desktop. The result is an environment that expands on, and lends flexibility to, the basic notion of workspaces in a way that allows you to better organize your work. A "desktop grid" is the typical interface used to access particular "virtual" desktops. Navigation is achieved by clicking on one of the cells in the grid; sometimes, keyboard navigation is also available.
So, think of virtual desktops as a series of highly configurable and flexible workspaces, each with the capability to contain all the objects you might need at any given time to perform a particular task. They are dynamically configurable; that means that you aren't constrained by a highly rigid organizational structure, as would be the case with project folders. They exist to support your work, whatever that is.
Virtual desktops provide a superior way to organize work. They facilitate human "multi-tasking" in ways that are very difficult with any other type of work environment. That is a very big advantage if you are, like many of us, an "interrupt-driven animal." Whenever the need arises, switch to a "clean" desktop, handle the interrupting task, and switch back to whatever you were working on. No muss, no fuss, no clutter!
Stardock's Virtual Desktop Facility
Stardock's entry in this game is the Object Desktop Virtual Desktops facility. The Virtual Desktops provided by this facility act -- and react -- exactly like the single desktop that was created when you first installed Warp. The facililty allows you to define up to sixteen virtual desktops. The Virtual Desktops even inherit their basic appearance -- color or image background -- from the basic Warp desktop configuration. And, the code supporting Virtual Desktops is stable.
The Object Desktop Control Center includes a grid that is used to manage the Virtual Desktops. For some reason, Object Desktop defaults the orientation of this grid to show the desktops side by side in a very non-proportional way. Fortunately, this is a configurable arrangement and I found that the desktops were easier to work with if the representations are arranged vertically.
My Object Desktop configuration included four Virtual Desktops, each accessible simply by clicking the associated desktop section in the Control Center display. Objects on the various desktops are shown in the management grid with labels and small icons by default; either or both of these can be removed if desired through the configuration notebook.
Object Desktop Virtual Desktops are drag-and-drop-enabled. That makes it easy to reorganize objects in the workspaces as your needs change. Of course, there are some objects -- like the WarpCenter -- that you would like to have appear "stationary" (that is, to be a part of every Virtual Desktop). To do this, simply define the object as a "locked window" and it becomes a constant in your work environment.
No cloud, however, has an entirely untarnished silver lining. Occasionally, windows (objects) can get "lost" in the virtualization process and become inaccessible (this condition is a problem recognized by every virtual desktop utility). Stardock calls these "out-of-bounds" windows. There is a facility in Object Desktop to monitor and retrieve such objects.
Really Virtual (Desktop) Wasteland
I like to think that my research has been diligent. I really do! I have searched Hobbes; I have searched BMT Micro; I have looked under large stones and in warm dry places. What I have found is that there hasn't been a lot of work done on virtual desktop utilities and most of the work that has been done is not recent. I have found:
PM Virtual Desktop -- Long In The Tooth. The earliest virtual desktop utility currently available (on Hobbes) is a freeware program, PM Virtual Desktop. The version available on Hobbes -- 0.25 -- was written by Carrick von Schoultz, at the time a student of Computer Science at Abo Akademi University, Finland. It was released for use with OS/2 2.x on January 3, 1994. Due to the age of the code, I have not attempted to use this program (there is no reason to believe that it would not run on a current Warp system, but call me cautious). I have, however, reviewed the accompanying documentation, which is the basis for the following description.
The virtual desktop navigation tool is a button grid (3x3 at original installation; other options are 2x2 and 4x4). Each button represents an associated virtual desktop (screen). Keep in mind that this program predates the Workplace Shell. Each screen is (apparently) a complete copy of the installed desktop, including all permanent icons. I do not know -- and the documentation does not indicate -- whether this characteristic extends to programs such as the WarpCenter. The documentation remains mute, also, with regard to a "sticky window" feature (an object, especially a program object, that "travels" to whichever desktop is visible) and from this omission I surmise that program objects are not included in the desktop copying process and that objects such as the WarpCenter would probably appear in only one virtual desktop.
The "current" desktop (the one you see) representation in the button grid contains an "X". To move to a different desktop, click the appropriate button in the grid. This version of PMVDesk does not display icons or other identifying data about what is open in any given desktop (promised for a future release, but I have found no information to suggest that it really saw the light of day).
9Lives -- Not Purrrfect. Contemporaneous with PMVDesk is a virtual desktop utility program called 9Lives. This shareware program (registration price is listed as $18.00) was written by Ross Judson of The Code Industry. The version -- 1.21 -- available on Hobbes was released on or about January 29, 1994. This program is apparently still in use around the world -- at least, I have seen references to active use in the xWorkplace discussion group. I share one characteristic with cats, I guess, so, I have installed and tried 9Lives on my system -- out of curiosity. It works -- sort of.
Installation is simple and very basic: unzip the contents of the archive to the directory of your choice; then, rip off a Warp program template to make a program execution icon; the 9Lives icon, incidentally is a copy of Niko from OS/2 Version 2 days.
The running 9Lives program displays a grid of desktops in its window. The author calls this grid the "Desktop Diagram." It can be configured up to 9 desktops high and 9 desktops wide (a coincidence?); as the author says, "There is no penalty for making large desktops, so feel free!" By implication, the window can be arranged either horizontally or vertically. For testing, I elected to arrange the diagram as a square of four cells.
Each cell in the diagram contains miniature rectangles representing the windows opened in the associated virtual desktop (omitting the Workplace Shell, 9Lives, the virtual desktop itself, and windows on the "sticky" list). Since 9Lives implements "sticky" windows, it should be possible to designate objects such as the WarpCenter to appear on each virtual desktop, and this works in practice.
The virtual desktops are navigated by clicking the related cell in the "Desktop Diagram"; alternatively, the cursor control keys can be used to navigate the desktops. Clicking on an open window rectangle within a cell switches to the selected desktop and makes that window the active window. The documentation does not indicate whether the "Desktop Diagram" directly indicates which desktop is "current"; the running program, however, does mark the "current" desktop by drawing a nice red border around it.
Considering its age -- it predates the Workplace Shell -- 9Lives works fairly well. This is a bit remarkable because, as all virtual desktop utilities do, 9Lives plays fast and loose with the Presentation Manager. My testing of the program has not been exhaustive, but I have found that 9Lives (more properly, the apparent absence of it) can lead to serious "icon creep" for objects that permanently reside on the desktop.
I have a row of permanent icons (mostly folders) along the left side of my desktop. As long as 9Lives is running, these objects remain in their proper places. However, once I close 9Lives, accessing one of these icons causes that icon (and, occasionally several others) to misalign vertically by just the amount of real estate used by the WarpCenter! Even worse, a "ghost" of the icon(s) remains in the original position(s). Remember, desktop virtualization forces the Presentation Manager to perform in ways not necessarily in the design specification. This is one of the unintended consequences.
What About DeskMan/2? The only commercial software, other than Object Desktop, that appears to support virtual desktops is DeskMan/2 published by DevTech, Inc. It is a desktop management suite that -- in its most current incarnation -- is targeted to the needs of the corporate system administrator. As commercial software, it is definitely "buy before try" and the price at Indelible Blue is $79.00 (list is $99.95). Needless to say, the following discussion is based on available documentation.
DeskMan/2 includes a "Workspace Facility" called VUEMan/2. According to information from Indelible Blue, the "...functionality of the virtual desktop component VUEMan/2 is expanded to give customers the ability to define separate, named, PM workspaces or 'rooms,' each with its own windows, task list, desktop, context sensitive tools, and more! Creation of a logical, separate Workspace allows for a much more controlled and well-defined environment."
Too bad VUEMan/2 isn't available separately. It has some features that sound nice.
PageMage -- And xWorkplace: The original PageMage application is contemporaneous with PM Virtual Desktop and 9Lives. The latest build I have found (on Hobbes) is 0.36[beta] and the operative files in the archive are dated July, 1995. PageMage was written by Carlos Ugarte, who was apparently a student at Georgia Tech at the time of development. When his development time ran short, he released the source code under the GNU Public License. Ulrich Mueller, the author of xWorkplace was, therefore, able to incorporate PageMage into xWorkplace (which is also licensed under GPL).
PageMage has officially been "available for testing" in xWorkplace since beta release 0.93 (which was the release reviewed in Part 3 of this series). Advice at the time, however, was to be prepared for possible system crashes because the incorporated PageMage was quite buggy. xWorkplace beta release 0.94 was made available on August 9 and I have installed it on my system. This release of PageMage is still reputed to be buggy, but is much better than the previous release, so I am testing it.
PageMage works like most other virtual desktop utilities; the set of virtual desktops are represented by an on-screen grid called the Pager Window. Navigation is done by clicking a cell in the Pager Window or through the use of the keyboard. PageMage allows up to a 10x10 grid to be defined. The "active" desktop is represented in the grid by a user-selectable cell color. Objects open in a desktop are represented by "mini-windows." The colors of "active" and "inactive" desktops and mini-windows, and the Pager Window borders can be set by dragging desired colors from the color palettes. The titlebar can be removed from the Pager Window, if desired; doing so, however, eliminates the only technique currently available for moving the Pager Window.
My PageMage test configuration is a 1x4 grid with custom colors. The accompanying screen shot shows PageMage with a command session open on one desktop and a folder open and with the focus on the active desktop. The good news is that PageMage works fairly well at this stage of development. The bad news is that it still has some characteristics (bugs?) that are disconcerting.
At this stage of PageMage development, the nuisance to usefulness ratio is still fairly high. I expect this situation to improve with further development. And, since PageMage is a part of xWorkplace, it will certainly be my choice for a replacement when the time is right... ...But, not yet.
"Your Virtual Desktop Utility Is Under Development. Please Wait."
For the time being, it seems that the only virtual desktop game in town is a waiting game. Eventually, my desktop(s) will be virtualized by the xWorkpace PageMage. For now, I will continue to manage -- excepting for testing -- with only a single, real, desktop.
Coming Next (Finally):
The final installment! It will be a recap of this project, and contain answers to burning questions such as