lSwitcher for OS/2, Version 2.7 ******************************** Copyright (C) 1997-2004 Andrei Los LICENSE ======= This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as contained in the file COPYING in the distribution package. The full source code is available. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ACKNOWLEDGEMENTS ================ First of all I would like to thank the following people for comments, suggestions, bug reports, and other feedback on this program: Julian Buss Alessandro Cantatore Alexander Conon "Doodle" Ian Douglas Don "Freiheit" Eitner Tim Erickson Alfredo Fernandez Diaz Javier Arias Fernandez Klaus Fuchs Michel Goyette Cristiano Guadagnino Tomas Hajny Johann Harrieder Martin Iturbide Reb James Andreas Ludwig "Jiki" John Martin David Mediavilla Nenad Milenkovic Romulo Silva Neiva Nick Dmitry Novoseletsky Sander Nyman Konstantin Okounkov Dariusz Piatkowski Lech Wiktor Piotrowski Henk Pol Sergey Posokhov Mike Reichel Loris Rinaldo Lewis Rosenthal Antonio Manara Rossini Danis Tazetdinov Karel Wesseling John Wibawa Sebastian Wittmeier Denis Zavorotny Vladislav Zhuk Special thanks to the following people who provided translation of the README.TXT and program resources and thus made the existence of localized versions of this program possible: Tomas Hajny -- Czech translation Alfredo Fernandez Diaz -- Spanish translation DESCRIPTION =========== This software is a task switcher application for OS/2 and eCS, which includes an enhanced replacement for the standard Alt-Tab switcher and a feature-rich task bar. The program is implemented as both a standalone application and as a widget for XWorkplace WPS enhancer by Ulrich M”ller. Functionalities of both incarnations of the program are very similar. USAGE ===== Run LSWITCH.EXE from an OS/2 command shell or file folder or place it in the startup folder for automatic start at boot time. The /I command line option can be used to specify program settings file, see below. To enable support for DOS full screen sessions run LSWITCH.EXE in each such session or place it in AUTOEXEC.BAT. Resource files LSWRES*.DLL must be in the directory where the program executable is. LSWHOOK.DLL must be in the program directory or in a directory specified in LIBPATH statement of CONFIG.SYS. To use lSwitcher widget place LSWIDGET.DLL and resource DLLs LSWRES*.DLL in the PLUGINS\XCENTER subdirectory of the XWorkplace installation. LSWHOOK.DLL in this case needs to be in a directory specified in LIBPATH statement of CONFIG.SYS. After restarting XCenter, lSwitcher widget will show up in the list of available widgets. To be able to use the Alt-Tab switcher capability of the widget in DOS full-screen sessions you will need to run LSWITCHD.EXE in each DOS full-screen session. Any errors which the widget may encounter during its initialization are reported in XWPLOG.LOG file which resides in the root of your boot drive. NOTE: The standalone application and the widget cannot be used in the same time. Remove the widget from XCenter widgets directory before running LSWITCH.EXE. POPUP WINDOW ============ To activate lSwitcher popup window use Alt-Tab (or Ctrl-Tab if you enabled this hot key combination, see settings below). Browse through the list by holding the Alt (Ctrl) key down and pressing the Tab key. Browse backwards by holding down the Shift key at the same time. You can also browse through the list using the arrow keys. To select a window, release the Alt (Ctrl) key. To cancel the selection and return to the original window, press Spacebar before releasing the Alt (Ctrl) key. You can also switch to a window by clicking left mouse button on its icon in the lSwitcher's PM popup window. Clicking mouse button 2 on an icon displays the popup menu with possible actions for the window corresponding to this icon. If, while the popup window is active, Ctrl key (or Alt key if Ctrl-Tab popup hotkey is active) is pressed, releasing the Alt (Ctrl) key does not cause hiding of the popup window and switching to the selected window ("sticky popup" mode). In this mode switching to the selected window is done by pressing Enter, while all other keys behave similarly to the "nonsticky" mode (see hotkeys below). The sticky mode can also be turned on in the program settings. Scrolling the mouse wheel over the popup window moves the selection box left or right depending on the scrolling direction (see Scroll message divider in the description of program settings below). The program also supports several hotkeys when its PM popup window is active: - "C" closes currently selected window - "H" hides -------"-------- - "M" minimizes -------"-------- - "R" restores -------"-------- - "S" shows -------"-------- - "X" maximizes -------"-------- - "F" adds selected window's switch list entry to the list of filters - "P" changes the priority of the selected window's process Popup window background color as well as text font and color can be changed by drag and drop while the popup window is in the "sticky" mode. The colors and fonts are saved with program settings. NOTE: OS/2 PM Alt-Tab switching window must be enabled in order to use lSwitcher's PM popup window with Alt-Tab hotkey. This means that you cannot use this hotkey with OS/2 versions prior to version 4. TASK BAR ======== By default after the program startup the task bar is shown at the bottom of the screen. Settings of the task bar, including mappings of mouse buttons to particular task bar actions can be set in the program settings. The task bar is resizeable and can accomodate several rows of buttons. Text and background colors, as well as font for the task bar buttons can be changed by drag and drop separately for buttons corresponding to active windows, minimized/hidden windows, etc. To change the color and font for the task name "bubble" hold the Shift key down while the bubble is showing, which will make the bubble stay on the screen even if the mouse is not over a task bar button. Holding the Shift key, drag and drop colors and fonts onto the bubble window. Colors and fonts are saved together with the program settings. Clicking mouse button 2 on a taskbar button displays the popup menu with possible actions for the window corresponding to this button. Clicking mouse button 2 on the Desktop button or over an unused portion of the taskbar displays the lSwitcher menu with the following items: - Run... Opens the dialog window which allows to enter and execute a program or an operating system command. - Suspend system Puts the operating system into the suspended state. - lSwitcher settings... Opens the program settings dialog window. - Quit Ends lSwitcher. Holding down the Shift or Ctrl key while pressing on the Desktop button in the task bar shows a popup menu with all Window List entries or all running processes, respectively. Selecting an entry from the first menu leads to switching to the corresponding window. Selecting an entry in the list of processes displays a message box with an option to kill the corresponding process. Task bar is XWorkplace XPager-aware, i.e. it is always shown in the current virtual desktop. PROGRAM SETTINGS ================ Program settings can be changed in the settings window. The settings window is hidden after the program startup. To activate it select the lSwitcher entry in the OS/2 Window List or press settings hotkey (Ctrl+Alt+S by default, configurable). The settings window can also be activated by selecting lSwitcher settings menu item in the context menu which pops up after clicking mouse button 2 on an empty portion of the taskbar. The settings are saved in the OS2.INI or, if the /I is added to the program command line, in the file specified by the . This file is created in the same directory the program executable is. Widget settings are always saved in the file LSWITCH.INI, which is created in the XCenter widgets directory. The settings window includes the following options: Popup window page 1 - Replace Alt+Tab window Makes lSwitcher replace PM Alt-Tab switcher. - Switch to PM from FS sessions Turning this on makes lSwitcher switch to PM and show PM popup window when activated from a full screen session. This may be useful if your display switches slowly between text video modes. - Scroll icons Makes selection stationary and items moving when browsing through the item list in the popup window. By default the item list is stationary and the selection moves when browsing. - Show hints Makes lSwitcher show hotkey hints in its PM popup window. - Alt+Tab; Ctrl+Tab Sets the popup window activation hotkey. Alt+Tab hotkey does not work in OS/2 versions prior to version 4. - "Sticky" popup window In this mode the popup window is not hidden after Alt(Ctrl) release. Switching to the selection is made by pressing Enter key. All the other hotkeys behave similarly to the "nonsticky" mode. The "sticky" mode can be turned on temporarily if Ctrl(Atl) is pressed after pressing Alt+Tab(Ctrl+Tab). - Scroll message divider Specifies how many scroll messages will make the popup window selection move one step. Popup window page 2 - Current filters The list of windows which do not show up in the lSwitcher popup window. - New entry Combo box allowing to specify a new filter entry. Wildcards are allowed in the filter entries. - Add entry Adds the new filter entry to the list of filters. - Remove entry Removes selected entries from the filter list. - Refresh Refreshes the list of switch list entries. - Minimized to viewer Turning this on adds windows minimized to Viewer to the list of windows which do not show up in the popup window. - Hidden Similarly, for hidden windows. Taskbar page 1 - Enable Enables task bar. - Auto hide Turning this on makes the task bar hide when mouse pointer is not over it and show when mouse pointer is at the corresponding edge of screen. - Icons only By default task bar buttons display window's icon along with its switch list title. Turning this on causes task bar buttons display the icons only. - Auto resize When this option is enabled the length of task bar will change so that it is completely covered by buttons and no empty area is shown. - Top of screen; Bottom of screen Sets the task bar position on the screen. - Reduce desktop workarea Turning this on will adjust maximized window sizes such that they don't overlap with the task bar. - Maximum button width Sets maximum width of the task bar buttons. Note that the actual maximum button width is adjusted such that it is not larger than this number and a whole number of equally sized buttons fits task bar. - Group items When this option is enabled only one button, corresponding to each group of windows, having the same process ID, will be shown on task bar. Pressing such a group button shows a menu containing items corresponding to each window in the group. Double click on a group button opens the window which was created first in this group. - Flat buttons - 3D look These options control the look of the task bar. - Allow resizing When this option is enabled task bar will have a sizing border and can be resized. - Mouse actions Several groups of radio buttons defining assignment of mouse buttons to different task bar actions. Taskbar page 2 On this page the filters, defining which switch list items are not shown in the taskbar, can be specified. This page contains controls similar to the ones on the Popup window page 2. Miscellaneous - Language Defines language of the program. The combo box displays available languages depending on which resource DLLs are found in the program directory. The new setting is applied after the settings window is hidden. - Settings dialog hotkey Defines which hotkey is used to display the settings dialog. - Switching to desktop minimizes/hides This option controls whether switching to Desktop with lSwitcher will minimize or hide (depending on the window properties) all open windows. The second switching to Desktop restores the windows to their original positions. - Change minimization Z-order Makes the windows which are minimized or hidden move one step down in Z-order. This makes the just minimized or hidden window appear next after the active window in lSwitcher popup list. By OS/2 default the window which is minimized or hidden becomes the bottommost window. This option takes no effect if left Alt key is depressed while the window is minimized. - Show lSwitcher in window list Makes lSwitcher's switch list entry visible in the Window List, otherwise it is invisible. KNOWN PROBLEMS/RESTRICTIONS =========================== If you press Alt-Tab (or Ctrl-Tab if it is enabled) in an FS session and then release the Alt (Ctrl) very quickly the lSwitcher can sometimes get stuck in the popup state. Press and release the Alt (Ctrl) key one more time to switch to the task you've chosen. The program appears to be incompatible with the VShield TSR, which is a part of ViruScan for DOS by Network Associates Inc. If both lSwitch.exe and VShield.exe are loaded in a DOS session, this session may crash after a while. The reason seems to be a bug in the VShield's INT08 handler. This is partially confirmed by the fact that VShield causes a crash in combination with some other programs hooking this interrupt. I have not found a reliable workaround for this problem so far. If XCenter properties window is hidden, rather than closed, choosing XCenter Properties in a widget submenu locks the system. This is an XCenter problem. Hidden and minimized to viewer windows are always restored to the current virtual desktop. This is an XPager feature/limitation. This program uses several undocumented operating system features and may not work properly in some system configurations. If you encounter such problems please let me know. CHANGES ======= V 2.7 - New look! - Second consecutive switching to Desktop restores all windows to the states they had before they were minimized or hidden by switching to Desktop. - Holding Shift or Ctrl key while clicking on Desktop button in the task bar opens a list of all switch list items or running processes, respectively, similarly to WarpCenter/eComCenter. - Popup window accepts scroll messages, e.g. from mouse wheel. - Popup window and bubble colors and fonts can be changed by drag and drop. - Taskbar button grouping. - lSwitcher is XPager-aware, task bar is always shown in the current virtual desktop. - Some other new program options, changes and bug fixes. V 2.6 - The program is now distributed under the GNU licence with full source code available. - lSwitcher now exists in the form of widget for XWorkplace. - Configurable task bar. - New settings window. - "Sticky" mode for the popup window. - Popup window font can now be changed by dragg'n'dropping from the Font Palette. - Wildcards are now possible in the filters. - Settings hotkey is now configurable. - Language of the lSwitcher messages can now be changed in the settings. - Additional program killing options are added to the popup menu in the popup window and task bar. - Program priority can now be changed from the popup menu. - Move command is added to the popup menu. - Some other new program options. - Other changes and bug fixes. V 2.5 - Added the option of stationary items and moving selection. - Clicking left mouse button on an icon now switches to the window corresponding to this icon; clicking right mouse button displays the popup menu with possible actions for this window. - The maximum number of items which can be displayed in the PM popup window changed to 27 (3 lines of 9 icons). - The settings are now saved in OS2.INI or in a user specified file. - Several new hotkeys added. - Some other options added. - Fixed compatibility problems with programs using Ctrl-Tab hotkey (e.g. Netscape). - Other changes and bug fixes. V 2.4 - Program parameters can now be set in the Settings Window or in the ini file, command line options are no longer supported. - Program settings now include the list of programs which are skipped by lSwitcher. - Program now supports several hotkeys during the PM popup. - OS/2 full screen monitoring code is now incorporated in the 32-bit executable, no need for a separate 16-bit executable (lswfsmon.exe). - Full screen popup window now has a maximum number of entries 23, PM popup window - 9, switch menu items option no longer supported. - Minimizing/hiding open windows when switching to desktop is now optional - Fixed the problem of lSwitcher dying at load time with no error messages on some system configurations. - Corrected the problem of current task not showing in the switcher list if it is a full screen task with "minimize to viewer" or "hide" minimization behavior. - Corrected the problem of current task being selected in the switcher list after popup activization. - Found a workaround for trap in ProNews when switching to it with lSwitcher - Some other small changes and bug fixes. V 2.3 - Added an option of displaying several entries in the PM switcher popup window. - At last fixed the problem with Win-OS2 icons not showing up - Some bug fixes. V 2.21 - Fixed a problem with Dos Navigator windows switching before lSwitcher activation. - Fixed a problem with Slick Editor minimizing incorrectly when switching to Desktop. V 2.2 - The OS/2 PM Alt-Tab switcher window is now replaced by lSwitcher's PM switcher (this can be turned off). - Switching to Desktop minimizes or hides all open windows. - Switching order changed slightly. - Fixed some problems with WIN-OS2 windows. - Some other bugs fixes. HOW TO CONTACT THE AUTHOR ========================= If you have any comments on this program, please send email to "avl1@inet@ua" TRADEMARKS ========== Some words and/or phrases in this document may be trademarks of some companies.