NOTE: This is beta software. Please don't run this program on machines that would get you in a lot of hot water if something goes wrong. Please see the file TODO before filing a bug report and see if it isn't something that I'm already working on. Introduction ------------ Thank you for trying SwitchMaster. SwitchMaster is a small utility that allows the user to control which tasks should/shouldn't be seen in the OS/2 Window List (CTRL+ESC), Jump Sequence (ALT+ESC), or both. In this release, the options are limited to those tasks that usually cause the most annoyances when switching tasks under OS/2: o The LaunchPad (OS/2 Warp only) o The OS/2 Desktop o Folders opened up under the Desktop o The Minimized Window Viewer o The SwitchMaster Window Later releases will allow user-defined windows to be controlled. Background ---------- I wrote SwitchMaster because I don't like having open folders included in the OS/2 Window List. Trying not to re-invent the wheel, I evaluated some of the other 'Window List control' type utilities but none of them did exactly what I wanted them to do. It seemed like the perfect reason to put all the money I've spent on OS/2 programming books to good use. Now you get to enjoy the fruits of my labor. As this is my first 'real' OS/2 program, I'd appreciate as much feedback as possible. Aside from SwitchMaster being the first OS/2 PM program I've ever written, this is also the first utility I've felt is useful enough to release publicly for others to evaluate. Taking that into account, please try to keep the flames to a minimum if/when you find a bug. The idea is to encourage me to keep on releasing new utilities for OS/2. :) Requirements ------------ SwitchMaster was written using the emx development system version 0.9a with the second series of fixes (emxfix02.zip). To run SwitchMaster you will need to have installed that level or greater of the emx runtime libraries. The required DLL's are not included here. You can find the required DLL's at ftp://ftp-os2.nmsu.edu/os2/32bit/unix/emx09a/emxrt.zip - SwitchMaster will only run on OS/2 2.0 and later. E-Mailware! ----------- SwitchMaster is E-Mailware. What that means is that you can do whatever you want with the program as long as you send me some E-Mail telling me how you liked it (or didn't like it). My E-Mail address is listed at the end of this document. Other than that, SwitchMaster is 100% free of charge. With that price, you also get something else...NO WARRANTY. Disclaimer (the non-legalese form): If there are bugs in SwitchMaster that totally destroy your computer (which I highly doubt there are), don't blame me. If you use this program, you are doing so at your own risk. Bug reporting ------------- If you do find a bug in SwitchMaster (which I'm sure there are some), please let me know. As this is supposed to be a learning experience for me, I want to find out what I did wrong so I don't do it again. My E-Mail address is listed at the end of this document. Usage ----- SwitchMaster is pretty easy to use. Just create a program object that points to whatever directory you put SwitchMaster in and fire it up. NOTE: SwitchMaster expects to see its initialization file in the same directory that it was started from. With that in mind, you may want to specify the SwitchMaster directory in the field marked 'Working Directory' in the program object settings. Once SwitchMaster is up and running, you should be greeted with the SwitchMaster main window. The radio buttons grouped under the heading 'Remove From' denote where you want the task to be removed from. There you will find three options: o Window List o Jump Sequence o Both Selecting 'Window List' removes the tasks from the Window List only (i.e. what shows up when you hit CTRL+ESC). This way you can still jump to the task via ALT+ESC, but you can't see it in the Window List. Selecting 'Jump Sequence' removes the tasks from the ALT+ESC Jump Sequence only. This way you can still see the task in the Window List, but you can't switch to it using the ALT+ESC keystroke. Selecting 'Both' removes the tasks from both the Window List and the Jump Sequence so the tasks are completely invisible to OS/2's switching mechanism. The check boxes grouped under the heading 'Remove' define what tasks should be removed. There you will find four options: o LaunchPad o Desktop o Folders o Minimized Window Viewer o SwitchMaster Selecting 'LaunchPad' will remove OS/2 Warp's Launch Pad. If you are running an earlier version of OS/2, then selecting this option won't do anything. Selecting 'Desktop' will remove the Desktop. Selecting 'Folders' will activate the 'folders kludge' (see section titled _Technical Stuff_)and try to remove any open folders. Please let me know how this works on your machine. Selecting 'Minimized Window Viewer' removes the Minimized Window Viewer. Selecting 'SwitchMaster' removes the SwitchMaster window. By default, SwitchMaster is set to only be viewable in the Window List (i.e. it will be bypassed when using ALT+ESC to switch between windows). This option allows you to redfine if SwitchMaster will be included in the Window List. NOTE: SwitchMaster performs it's magic by looking at a window's title. If, for instance, you renamed your 'Minimized Window Viewer' to 'Min Window Viewer', SwitchMaster will not see it. Perhaps I'll add the functionality to define window titles in a later release. Taking up the good portion of the lower half of the window is a listbox titled 'Removed Tasks'. This window will show you what tasks are currently being removed. This window will change when tasks are opened and closed. to the right of the listbox is a checkbox labeled 'Start Minimized'. If you check this box and save the settings (see below), the next time SwitchMaster is started, it will be started in the minimized state. Below the 'Start Minimized' checkbox is a spin button labeled 'Timer'. 'Timer' defines how often SwitchMaster should look at the Window List and take out the offending tasks. This number can be anywhere from 1 to 10 seconds. The 'File' menu has one option: 'Save Settings'. Select this when you've got all the options set up the way you want. That way the next time you run SwitchMaster, it will default to those options. The 'Help' menu has one option: 'About SwitchMaster'. That is pretty self-explanatory. That's it for what it takes to run SwitchMaster. Technical stuff --------------- As mentioned before, in my evaluation of the other utilities that do the same sort of thing that SwitchMaster does, I noticed one sorely lacking feature, that being removing open folders from the Window list. After reading up on how OS/2 stores entries in the Window List, I discovered that there is a reason why this feature hasn't popped up yet anywhere else...OS/2 doesn't differentiate open folders from other PM programs! This makes is difficult to block only the folders without also turning off other PM programs that are running. The solution: After spending quite a few hours in the debugger trying to figure out how to make the 'best guess' at telling the difference between PM apps and folders, I discovered that all open folders had the same session ID as the Desktop. Bingo! The only problem is that there are other applications that also share the Desktop session ID. Most notably: o The Desktop itself o The Minimized Window Viewer (also a folder) o The LaunchPad (OS/2 Warp only) o The Workplace Shell The solution then, was to 'scan' for the Desktop ID and remove everything with that same ID, except those tasks outlined above. Yes, it's a kludge, but it's the best solution I've found so far. If you can think of any other way, I'm all ears. The drawback is obvious, if there are other tasks that share the same session ID as the Desktop that I didn't define above, they also get taken out of the Window List. I'll try my best to figure out what those may be and 'scan' for those entries too. I don't think, however, there are that many more that need to be worried about. Author Info ----------- To reach me and tell me what you think (and/or report a bug), send your E-Mail off to: Wes Santee wsantee@cyberspace.com Enjoy!