====================================================================== Welcome to Version 1.21 of 9 Lives! written by Ross Judson of The Code Industry 9 Lives gives you multiple desktops in OS/2's Workplace Shell! 9 Lives is a desktop expander. It makes many "virtual desktops" available to the user, instead of the standard one. Why is this useful? It reduces window clutter and allows you to organize groups of windows more effectively. Thanks to everyone who registered the previous version! Your registration code will work with this version as well (free upgrade). Contact the address at the bottom of this file if you have any trouble. I hope everyone likes this new version. I like it and use it every day. ====================================================================== ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Disclaimer! ----------- This version has proven to be relatively stable, but to achieve multiple desktops 9 Lives needs to do unusual things to PM. Therefore, Ross Judson and the Code Industry cannot be held responsible for any losses or damages incurred by the use of this program. Use it at your own risk! Improvements ------------ 1.21 provides an indicator that a layout is active. 1.2 repairs a bug in the layout dialog handler. It also improves support for automatic layout retrieval. 1.2beta won't close if window protection is active. It will also attempt to determine if protected windows are closed and abandon the password dialog if they are. 1.2beta provides a window layout feature. You can save and restore the layout of your windows. This is probably the most requested feature that users have, and now you can do it! 1.2beta provides a window protection feature that allows password protection of windows. The window cannot be accessed upon activation unless the correct password is provided. The dialog that controls the protection is also password protected. As of this writing, 9 Lives does not make an effort to prevent itself from being unloaded. 1.2beta allows the display of titles, icons, or both in the desktop diagram. 1.2beta changes the default for window movement in the desktop diagram to be snapped to the desktop (exact movement is now done with the control key). 1.2beta provides combo boxes for sticky window and protected window selection. This makes it much less error prone to select windows to be sticky or protected. 1.2beta increases the length of the window titles stored for sticky and protected windows. 1.2beta ensures that the shell window cannot be protected or made sticky. 1.1beta stores its settings in a new way that is compatible with OS/2 2.1. 1.1beta draws the desktop diagram more accurately. 1.1beta lets you set different background colors for each virtual desktop (although it's kind of slow). 1.1beta lets you configure the size of your virtual desktop. 1.1beta fixes a nasty problem with suspended windows, where you couldn't get 9 Lives to do anything. I think. 1.1beta uses a smoother method of painting its window. 1.0d gives you the option of activating the window you click on in the desktop diagram. When you clicked to change a window in 1.0b, the desktop changed but the active window didn't. Selecting the "activate under click" option tells 9 Lives' to switch to the desktop you clicked on AND activate the window you clicked on. 1.0d makes the number keys activate particular desktops. 1.0d lets you drag windows between desktops but have them end up in the same position. Hold down the control key while dragging windows on the desktop diagram to force your window to have the same screen position it had before. 1.0c adds a zooming capability; by clicking both mouse buttons at the same time you can tell 9 Lives to fill the entire screen. It then becomes extremely easy to place your windows. Click both buttons again to put 9 Lives back to its original size. You can also use the 'control-Z' key, or choose 'Zoom' from the context menu. A 'visible margin' feature has been added to the option dialog. It's convenient to have a margin around the virtual desktop diagram that doesn't activate any desktop if you have the activate on first click option turned off. 1.0c also changes all accelerator keys to use the control key as a modifier (that means you type control-z instead of just z). This is in reponse to users who said that, due to confusion about the focus, they were accidentally activating 9 Lives features when they thought they were typing in a program. No more! 1.0c removes byte alignment from its window. That makes it a little easier to position the window. 1.0c improves upon the method used to detect the workplace shell. The improvement to you, the user, is that you will no longer have to enter the title of the shell window into the options dialog. 1.0c gives you sticky windows. Sticky windows are windows (such as Pulse or a memory watcher) that you want to keep visible at all times. To set up sticky windows, use the "sticky windows..." button in the options dialog. Enter the titles of the windows you want to be sticky. 9 Lives will match what you type against window titles it looks at. It uses _prefixes_. That means if you type BIC in the sticky list, all windows with BIC as their first three letters will stick. 1.0c now correctly resets the shell window when deleted from the task list. V1.0b adds the ability to drag 9 Lives' window around on the screen. Right click and hold anywhere there isn't a mini-window in the desktop diagram, then drag. You'll be able to easily position 9 Lives' window. If you want to bring up the context menu, don't drag; just click. Fixes ----- V1.2beta fixes the periodic lack of update in the desktop diagram. V1.0d fixes an error that could occur during the "Retrieve Windows" operation. Some windows might not be retrieved correctly. V1.0c correct some shell position errors when growing and shrinking the shell window. V1.0c corrects an error that occurred with certain complex parent/ owner relationships. An owned-relationship was not being correctly detected. This was primarily visible with the Help System of Borland C++. V1.0c unzooms before closing so that the zoomed position will not be stored. V1.0c improves the keep on top logic. It's still not perfect, but it works better. V1.0b corrects a deficiency in changing desktops when invisible, owned windows are present. The bug identified for V1.0a was not actually completely fixed in that release, but turns out to be related to the code used to keep the window on top. I am searching for a better method to do this. In the mean time, you can work around it by turning off the keep on top option. V1.0a corrects an oddity PM presents to 9 Lives. Apparently, after quitting from a full screen session, the WM_BUTTON1CLICK message is not received. This resulted in an inability to switch desktops with the mouse, but the keyboard controls still worked! A slight change in 9 Lives attempts to work around this, so the problem should be no more (NOTE - not so; see preceding paragraph). If you find any problems, please let me know. My street address and email addresses are at the bottom of this file. Release Notes ------------- If you lose a window (and I hope you don't), try the following: 1 - 9 Lives' Retrieve Lost Windows option 2 - The Alt-F7 keystroke 3 - The Alt then M keystroke One of them should help you get it back. Remember, the window isn't lost. It's just somewhere out of sight. There is slight problem associated with VIO window, such as an OS/2 shell window. VIO windows need to be notified when they are moved or sized. Unfortunately, 9 Lives can't let this processing happen (arrgg :-). 9 Lives attempts to compensate for this, but is not always successful. I am researching ways to fix this problem. When leaving a full screen session, if you have the "keep on top" option active, do not immediately change to another desktop. There is some focus confusion happening, and 9 Lives will not correctly respond. Either choose some other program first, or turn off the keep on top option. This will be fixed! In the mean time, it might happen to you. Here's what you should look for. When you exit the full screen session, you'll notice that both 9 Lives and another window are active (have title bars/borders in the active color). Choose the other active window (not 9 Lives). PM seems to reset the activation correctly at this point, and everything is normal from then on. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Instructions ------------ 9 Lives is a desktop expander. It makes many "virtual desktops" available to the user, instead of the standard one. Why is this useful? It reduces window clutter and allows you to organize groups of windows more effectively. 9 Lives also knows how to save your groups of windows so that you can save even more time. Manifest -------- The 9 Lives package consists of three files: 9LIVES.EXE - main executable VMAN.DLL - support library README.TXT - documentation file (ASCII) Please do not tamper with the archive; upload it intact to other bulletin boards. Installation ------------ Installing 9 Lives is simple. Unpack the archive and place 9LIVES.EXE, VMAN.DLL, and README.TXT either in their own directory, or with your other OS/2 utilities. You'll probably want to make an icon on your desktop for 9 Lives. Open up the Templates folder and drag a new Program object to the desktop. Enter the directory and file name to locate 9 Lives. Switch to the General Page and change the title to 9 Lives. You may want to put the program object in your startup folder. Now you're ready to run 9 Lives! If you want 9 Lives to automatically start when you boot OS/2, put its icon or a shadow of its icon in the Startup folder, which is in your OS/2 System folder. Using 9 Lives ------------- Once 9 Lives is running, you'll see a grid of desktops on its window (this is called the "Desktop Diagram" throughout the rest of this documentation). Miniature rectangles representing the windows on your desktop will be shown in the diagram. Some are conspicuously absent; 9 Lives itself, your shell window (the Desktop), and anything you have in the "sticky" list (more on the sticky list later). You can pick a new desktop by clicking the left mouse button on it. The windows in your current desktop disappear, and those in the new desktop become visible. Turn on the "activate under click" option and the window you click on while you are changing desktops will become activate automatically. If you click on an area of the desktop diagram that has no window, the window currently activated will stay activated. Click the right mouse button to show a context menu. Click the right mouse button and drag on a mini-window to drag it somewhere else. By default the window will move to the same position on the target desktop. Hold down the control key while dragging a mini-window to allow precise positioning. Click the right mouse button where there isn't a mini-window, then drag without releasing the button, and you can drag 9 Lives' window around. The following accelerator keys are available (^ means control): F1 - Bring up help (instructions) ^A - Show the about dialog ^O - Show the options dialog ^L - Show the layout dialog ^R - Retrieve lost windows ^Z - Zoom in and out ^H - Hey, cut that out! key. If 9 Lives stops updating itself, hitting this key may return it to action. Esc- Turn the title bar on and off You can use the cursor keys to move the current virtual desktop. The desktop moves in the direction of the arrow key you push. Right clicking on an empty area (without a window underneath) will pop up the 9 Lives context menu, from which many commands can be executed. Clicking both buttons at the same time zooms 9 Lives' window in and out. Clicking both buttons is commonly called a chord. Zooming is nice for position windows across desktops -- the big picture is much easier to work with. Use the retrieve lost windows to pull all other windows to the current desktop. This is very useful if, for example, you accidentally move windows off the virtual desktop and want to get them back. Use the layout feature to save and restore window arrangements. Often you will spend time to get your windows positioned across desktops the way you want. After you've organized them, use the layout feature to store the positions. You can designate a layout as the "auto layout". The automatic layout is used by 9 Lives when it starts up. This lets you create a favourite layout and use it automatically. When you activate a layout, 9 Lives watches for the windows in that layout (even if they haven't been created yet). As the windows appear, 9 Lives will position them. A small green square is displayed in the lower right corner of the desktop diagram when a layout is active. To deactivate a layout, display either the options dialog or the layout dialog. Both will stop the active layout. The "comparison stop" field tells 9 Lives where to stop comparing window titles. This is useful if, for example, you have your word processor running with a file loaded. The title bar might read "Word Processor - c:\doc.txt". You want 9 Lives to move your word processor window, but you don't want to have to enter the file name. Entering "-" in the comparison stop characters option will cause 9 Lives to compare everything in the names until it reaches a "-". You can enter as many characters as you want; the defaults ot "-" and ":" seem to work well. Options ------- "Width" and "Height" let you tell 9 Lives how big you want your desktop to be. You can choose anything up to 9 desktops wide and 9 desktops high. There is no penalty for making large desktops, so feel free! A "Follow Active" option tells 9 Lives to try to keep the currently active window visible. If you change to another window by, say, using the task list, 9 Lives will attempt to figure out which desktop that window is on and go there. You can activate and deactivate this option from the options dialog. "Expand desktop" tells 9 lives what to do with your workplace shell. If this option is selected, 9 Lives will expand the shell window to cover the entire virtual desktop. Your icons will only appear in one desktop, unless you move them to another. If this option is not checked, the workplace shell is not touched, and will be available on each virtual desktop. "Activating click..." prevents 9 Lives from changing desktops when you click on it to active it. This option is very handy if most of 9 Lives is behind another window. You can click on the 9 Lives window to activate it, then click on the desktop you want to go to. Without this option turned on, the click that activated 9 Lives would also have chosen a new desktop. But, some people prefer to have 9 Lives on top and instantly respond to desktop changes on the first click. "Visible margin..." tells 9 Lives to draw a small margin around the virtual desktop diagram. This makes it easy to activate 9 Lives without changing desktops. It also looks neat on some systems. "Activate under..." tells 9 Lives to activate the window that's under the mouse when you click on the desktop diagram to change desktops. Was that a run-on sentence or what. Simple explanation -- see the desktop diagram? Left click on a window in that and 9 Lives will change to that desktop _and_ activate that program. "Icons" and "Titles" allow you to control what is displayed in the desktop diagram. Check or uncheck these boxes to display the title or icons (if they are available) for the windows that show up in the diagram. The icons and stretched or shrunken to fit in the small space inside each window in the diagram, so they may not be too readable. The "sticky windows" button brings up a dialog that lets you make windows stay put when you change desktops. Many OS/2 users always have a memory manager and a pulse-type program visible. If you enter the window titles of those programs here, they will stay visible when you change desktops. So if you want to keep Pulse visible, enter "Pulse" (without the double quotes) into one of the sticky window boxes. The titles you enter in this dialog are compared as _prefixes_. That means that 9 Lives compares the window title with what you enter for the length of the string that you enter. If you enter PUL, all windows that start with PUL will be sticky. The comparison is case sensitive, so make sure you have the correct spelling and capitalization of the words. 9 Lives provides a drop-down list of the windows in your system to make choosing the windows you want to be sticky easier. You can drag and drop a font from the font palette on the 9 Lives window. 9 Lives will use that font to draw the titles of windows in its desktop diagram. 9 Lives remembers where you put it and how you set it up. Tips and Tricks --------------- 9 Lives' many options make it easy to configure to your tastes. If there's something that you'd like to see, please let me know! I'll be happy to consider your request. I like to set up 9 Lives in a 7 wide, 1 high configuration that sits in a strip across the lower left corner of my screen. Most programs pop into being conveniently above it, and it makes switching very easy. I like to use the activate clicked window, follow active, and expand desktop options. When you are arranging windows across desktops, it's very handy to use the zoom feature. Click both buttons on the 9 Lives window. You can then easily move windows from desktop to desktop in the large desktop diagram. Select the desktop you want to work on with the left mouse button, then click both buttons again. 9 Lives will "unzoom", and you will be working on the desktop you selected. I have a default layout that I use. The program objects for the layout are in a work folder so that I can start them all with one click. Then I tell 9 Lives to use my default layout, and all my programs area quickly arranged across the desktop. I have my program object for 9 Lives sitting in the lower left corner of my screen. When 9 Lives is running, it covers up the icon. Registration ------------ You may use this program freely in a 14 day trial period. If you continue to use this program after the trial period has elapsed, you must register it by sending your name, address, and $18 (U.S.) to: Ross Judson 13105-G Tall Shadows Lane Fairfax, Virginia, USA 22033 In Canada, you may send a cheque for $20 Canadian to: John Judson 6 St. Remy Drive Nepean, Ontario, Canada K2J 1A3 Make Cheques (payable in U.S. dollars, drawn on a U.S. bank) payable to Ross Judson in the U.S.A., and to John Judson in Canada. A registration form follows in this text; you can print it, fill it out, and send it. You will receive a registration code in response. Entering this registration code into 9 Lives will defeat a nag mechanism that becomes active after you use the program a certain number of times. If you are requesting more than 3 registrations, please contact me to learn about volume discounts. For support, you can reach the author via email on Compuserve. The ID is 73657,1712. I will attempt to answer as many questions as I can. Please email me with your comments! They are very useful for evolving the program. I am available on America Online. You can email my screen name, MediaBlind. My internet address is MediaBlind@aol.com. If you have access to FidoNet, you can reach me on the OS/2 Shareware BBS. The address is 1:109/347, and my name is Ross Judson, there. This is the least reliable way to contact me, so please try one of the other email methods if you can. Enjoy your expanded lifestyle under the Workplace Shell! Thanks to Kurt Westerfeld, who drove this forward when I got distracted. Check out his cool QWK mail reader for OS/2, KWQMail/2. It's the best thing going for reading bulletin board mail. I'd like to take a moment to thank the users who've registered 9 Lives. You've made this all worthwhile. If you think you should be on this list and aren't, let me know. Alan Casden, Columbus, OH, USA Allan Nancoz, Bronx, NY, USA Andre Violette, HULL, Quebec, Canada Anthony Simonini, Smithtown, NY, USA C. W. Thompson, Oakworth, Keighley, West Yorkshire, England Colin Longman, Fredericton, New Brunswick, Canada Dana White, San Diego, CA, USA Dave Proffer, Los Angeles, California, USA Derek Smart, Miami, FL, USA Dirk Klages, 31311 Uetze, , Germany Fischer Olaf, 49086 Osnabruck, , Germany Gerri's Service, St. Louis, MO, USA Hansjorg Zimmerman, Mellingen, AG, Switzerland Heikki Laitala, , , Finland Jeff Sparksworthy, Truckee, CA, USA Jeffery Haremski, Novi, MI, USA Jim Brandon, Santa Barbara, CA, USA John Hughes, Sacramento, CA, USA John Volkar, Monongahela, PA, USA Kai Uwe Rommel, D-80807 Munchen, , Germany Ken Sproule, Elbow Lake, MN, USA Kreitschi Norbert, Eichenau, , Germany Lawrence Hunsicker, Iowa City, IA, USA Mark Mollere, Hattiesburg, MS, USA Mark Prabucki, Milwaukee, Wisconsin, USA Mark T. Houpt, Upper Sandusky, OH, USA Matt Boersma, Saratoga, CA, USA Melissa Woo, Champaign, IL, USA Michael Klink, 53127 Bonn, , Germany Michael White, Hoffman Estates, IL, USA Mike Collins, Columbus, OH, USA Mike Stewart, Indianapolis, IN, USA Miles Wan, Pickering, Ontario, Canada Mitch Kirsch, Toronto, Ontario, Canada Niels Schaumann, Edina, MN, USA Peter Brodin, Norcross, GA, USA Philip Mulrane, , , Germany Randolph King, Tampa, Florida, USA Richard Melrose, Cambridge, MA, USA Robert Waller, Rowlett, TX, USA Roland Foerster, 60388 Frankfurt/Main, , Germany Roman Eglin, CH-8127 Forch, , Switzerland Sean Johnson, Clemson, SC, USA Stefan Braun, , , Germany Stefan Hofmann, D-91220 Schnaittach, , Germany Ted Thorpe, Burlington, Ontario, Canada Tom Koschate, Brampton, Ontario, Canada Tom Pfeiffer, Alexandria, VA, USA Tulio Quirantes, Hialean, FL, USA Universal Dynamics, Vancouver, British Columbia, Canada Uwe Haller, 73066 Uhingen-1, , Germany Vextor, Inc., Boca Raton, FL, USA Vincenzo Inorno, 8070 Zurich, , Switzerland Walter Petlevich, Uniontown, PA, USA Wil Cook, Metairie, LA, USA William Peters, Raleigh, NC, USA Wolfgang Gottbrecht, Munich, , Germany Yo-Yoon Cho, Natick, MA, USA ====================================================================== Release History v1.0 - Initial Release v1.0a - Fix Full-Screen session release v1.0b - Fixed change desktop bug related to invisible, owned windows v1.0c - Add zoom feature, margin option. Corrected shell management. Added sticky windows. v1.0d - Added activate under click. Added control-drag of windows. v1.1 - Zillions of things. v1.2beta - Windows layouts, protection, etc. v1.2 - Final bug fixes v1.21 - Layout Indicator ====================================================================== Order Form for 9 Lives! Name _________________________________________________________________ Address ______________________________________________________________ ______________________________________________________________________ City _________________________________________________________________ State/Province _________________________ Country ____________________ Zip/Postal Code ______________________________ Compuserve ID ________________________________ America OnLine screen name ___________________ Other Email Addresses ________________________ Enclosed is a cheque for _______________, for _____ copies of 9 Lives. ====================================================================== Mail to: Ross Judson 13105-G Tall Shadows Lane Fairfax, VA, USA 22033 or John Judson 6 St. Remy Drive Nepean, Ontario, Canada K2J 1A3 Make cheque payable to Ross Judson in the U.S. and John Judson in Canada. Thank you!