VirtuaWin v4.0 Help

Overview

VirtuaWin is a virtual window manager for Windows 9x/ME/NT/2000/XP/Vista with up to twenty desktops. It’s quick and easy to use with no fancy graphics, just an icon in the system tray indicating current desktop.

VirtuaWin is Copyright (c) 1999-2005 Johan Piculell, Copyright (c) 2006-2008 VirtuaWin (VirtuaWin@home.se) and is licensed through the GNU General Public License. Read the COPYING.TXT file for the complete license.

We take no responsibility for data losses or damage caused by VirtuaWin.

For latest version, question forum and bug reporting please visit http://virtuawin.sourceforge.net/.


Install/Uninstall

The installation and un-installation of VirtuaWin is fully automated.

To install run VirtuWin_setup_<version>.exe or, if wide character support is required, run VirtuWin_Unicode_setup_<version>.exe. For uninstalling, quit VirtuaWin and choose the uninstall icon, however, if you add custom icons or modules, the un-install process will not be able to remove the “icons” or “modules” folder – this must be done manually.

VirtuaWin does not add or require any registry keys to run, only the required uninstall program registry keys are added by the installer. Nothing else is added to your system, all VirtuaWin files are placed in the installation directory of VirtuaWin.


Functions

These are the basic functions of VirtuaWin:

  • Use the configured keys and or mouse to switch to a new desktop.

  • Left double click on the system tray icon to bring up the setup dialog or right click and choose setup to show the Setup Dialog.

  • Left click on the icon to show the window list, click on a window title that you want to keep on all desktops (sticky). There is optional usage of this list, see Setup Dialog.

  • Middle click or Shift middle click on the icon to move forward or backward a desktop.

  • Right click and choose gather to make all windows visible on the current desktop.

  • If the system tray icon flashes after a desktop switch, this means that an application did not respond and VirtuaWin was not able to hide/show it, the window is not lost, it will be recovered once the window starts responding.


Control Menu

The Control Menu can be opened by:

  • Right clicking on the system tray icon.

  • Binding the UI: Open control menu command to a Hotkey and pressing this Hotkey.

The control menu is used to access main VirtuaWin functionality, the menu contains the following items:

  • Setup: Opens the main VirtuaWin Setup Dialog.

  • Window Rules: Opens the Window Rules Dialog.

  • Re-apply Rules: Re-initializes all windows visible on the current desktop, applying all window rules appropriately. Window settings like 'Always show' will be reset.

  • Gather All: Moves all windows to the current desktop.

  • Help: Opens this help documentation.

  • Enable or Disable: Toggles the current active state of VirtuaWin, if Disabled is selected all VirtuaWin functionality is disabled except for access to the Control Menu so VirtuaWin can be re-enabled.

  • Exit: Exits VirtuaWin; VirtuaWin will gather all windows before exiting so that no application is lost.

  • Next: Moves to the next desktop.

  • Previous: Moves to the previous desktop.


Window Menu

The Window Menu can be opened by:

  • Clicking the middle mouse button on the window title bar, see Setup Dialog's Enable middle button window menu activation setting.

  • Binding the UI: Open standard window menu command to a Hotkey and pressing this Hotkey while a window has input focus.

  • Binding the UI: Open compact window menu command to a Hotkey and pressing this Hotkey while a window has input focus.

The window menu is used to control and configure the current window, i.e the window currently with the input focus. The menu contains the following items:

  • Dismiss Window: If the current window is only being temporarily show (for example the window list 'Show' feature was used to display it, also see option On hidden window activation) it will be moved back to its original desktop, otherwise the window will be minimized.

  • Push to Bottom: Pushes the window to the back of the desktop, i.e. under every other window.

  • Always on Top: Toggles the Window ‘Always on top’ property which keeps the window above other windows.

  • Manage Window: Forces VirtuaWin to manage the current window, this item is only available if the window is not currently being managed.

  • Stop Managing: Forces VirtuaWin to not manage the current window, this item is only available if the window is currently being managed.

  • Always Show: Toggles whether the current window is visible on all desktops or just the current one.

  • Gather: moves all the windows created by the current window's process onto the current desktop.

  • Move to Next: Moves the current window to next desktop; this command will fail if the current desktop is the last desktop and Enable desktop wrapping is disabled.

  • Move to Previous: Moves the current window to next desktop; this command will fail if the current desktop is the first desktop and Enable desktop wrapping is disabled.

  • Move to Desk #: Moves the current window to the selected desktop; the compact form of the window menu puts these items into a sub menu.

  • Edit Window Rule: Opens the Window Rule Dialog with the rule being applied to the current window selected, this item is only available if the current window had a rule applied to it.

  • Add Window Rule: Opens the Window Rule Dialog with the window identification section filled with the current window’s details (i.e. class name etc.), normal only one name is required for identifying the window type so the others should be removed.

    Note: The new rule will not be created until you Add the rule.

  • Info: Opens a dialog giving detailed information about the current window.

    Note: The text in this dialog can be copied using standard Windows Control+C key.


Window Lists

Standard Window List

The Standard Window List can be opened by:

  • Clicking the left mouse button on the system tray icon if Setup option Mouse opens compact window list is disabled, or by clicking the left mouse button on the system tray icon with the Shift key pressed if this option is enabled.

  • Clicking the middle mouse button on the desktop if Setup option Enable middle button window list activation is enabled, the Shift key must be pressed if Mouse opens compact window list is enabled.

  • Binding the UI: Open standard window list command to a Hotkey and pressing this Hotkey.

The standard window list can be configured using Setup's Available window list actions to display the following columns:

  • Switch To: VirtuaWin will change the current focus to the window selected form this column, if the window belongs to a different desktop to the current VirtuaWin will also change desktops.

  • Move Here: A window selected from this column will be moved to the current desktop and given the focus; only windows not on the current desktop will be listed in this column.

  • Show: A window selected from this column will be shown on the current desktop, but it is not moved; this means the window can be dismissed back to its original desktop.

  • Always Show: Toggles whether a window is shown on all desktops, the windows icon is replaced with a tick icon if the window is currently shown on all desktops.

Only the columns enabled in the Available window list actions are initially displayed, however all columns will be displayed if a column title is clicked on.

Note: This window list form is restricted to a maximum of one screen depth of windows, if more windows exist than can be displayed VirtuaWin will automatically use a compact window list.

Compact Window List

The Compact Window List can be opened by:

  • Clicking the left mouse button on the system tray icon if Setup option Mouse opens compact window list is enabled, or by clicking the left mouse button on the system tray icon with the Shift key pressed if this option is disabled.

  • Clicking the middle mouse button on the desktop if Setup option Enable middle button window list activation is enabled, the Shift key must be pressed if Mouse opens compact window list is disabled.

  • Binding the UI: Open compact window list command to a Hotkey and pressing this Hotkey.

As with the Standard Window List form the compact window list can be used to display 4 different columns. The compact form only displays one column at a time, click on the title to change to the next column (or the hotkey 'n'). The compact window list will first cycle through the columns enabled in Setup's Available window list actions and then cycle through all columns.

Unlike the standard window list, the compact window list can display more than one screen depth of windows and displays more of each window's title bar text.

MRU Window List

The Most Recently Used (MRU) Window List can be opened by:

  • Clicking the left mouse button on the system tray icon with the Control key pressed.

  • Clicking the middle mouse button on the desktop with the Control key pressed if Setup option Enable middle button window list activation is enabled.

  • Binding the UI: Open most recently used window list command to a Hotkey and pressing this Hotkey.

The MRU window list displays a single list of windows, order by how recently they they last had the input focused (i.e. similar to the main Windows Alt+tab window list). VirtuaWin will change the current focus to the window selected from this list, VirtuaWin will also change desktops if the window belongs to a different desktop to the current.


Setup Dialog

The Setup dialog can be opened by:

  • Double clicking the left mouse button on the system tray icon.

  • Selecting Setup in the Control Menu.

  • Binding the UI: Open VirtuaWin setup command to a Hotkey and pressing this Hotkey.

  • Running the VirtuaWin program while VirtuaWin is already running.

The setup dialog consists of 5 different setup tabs with keys, mouse, modules and other various configuration options under them. It is possible to use the Apply button to try out different settings. If Cancel is pressed, all changed from the last apply will be undone.

General Tab

Desktop Configuration

  • With Desktop Layout you can configure how many desktops you want and how they shall be positioned. You can have up to 20 desktops. If you for example set this to 8 wide by 1 deep, you will get a horizontal row of eight desktops. The “original” icon will be used if you set 2 by 2, otherwise numbers will be used. See also Custom Icons. Please note that if you set the size to fewer desktops any windows on the removed desktops will be automatically moved to desktop 1.

  • Enable desktop wrapping: If checked, it will be possible to cycle through all desktops in both directions, meaning that from the last desktop in any direction, it’s possible to go to the first again by continuing in the same direction.

  • Name of desktop # defines the name of the current desktop, this is used in the tooltip given when the mouse is moved over the system tray icon. If no name is give the name used will be ‘Desktop #’ where # is the current desktop number.

  • The Next button can be used to move to the next desktop.

Window Configuration

  • On hidden window activation: A hidden window is one that currently belongs to a different desktop so it is being hidden; activation is some event that suggests to VirtuaWin that the owning application wants the window to be disabled (e.g. opening a url link may activate a hidden internet browser). Setting this option to Ignore the event which ensure that VirtuaWin will not allow the window to display. When set to Move window to the current desktop VirtuaWin will move the window to the current desktop and display the window. If set to Show window on current desktop the window will be display but it is not moved to the current desktop, instead the window will be returned to its original desktop when it is either dismissed (see the dismiss window hotkey) or on the next desktop change. When set to Change to window’s desktop VirtuaWin will do a desktop change to the window’s desktop, which will also display the window.

  • On taskbar button activation: As with On hidden window activation except this configures the behaviour for window’s whose taskbar button is not hidden (see Window Rules Dialog’s Method for hiding taskbar button). A window may be configured to not have its taskbar button hidden as the button may be used to indicate some sort of event (for example it may start to flash), these windows often need to be handled differently. Despite the options label, the method of activation is not important, it is merely whether the window has been configured to always display the taskbar button.

User Interface

  • Available window list actions can be used to configure the contents of the Window List menu, available options are:

    • Switch To can be used to access any window directly, meaning that VirtuaWin will change to the window’s desktop and give the focus to the window.

    • Move Here is used for moving the selected window to the current desktop, useful for moving windows to different desktops.

    • Show is used to temporarily display the selected window on the current desktop; the window will be returned to its original desktop when it is either dismissed (see the dismiss window hotkey) or on the next desktop change.

    • Always Show is used to toggle whether a window is visible on all desktops (sometimes termed 'sticky').

    It is possible to choose any combination and if more than one function is selected, the menus will be displayed side-by-side. Selecting a column title, e.g. click on 'Switch To', will change the menu to display all columns.

    Note: The menus will only contain the windows that are possible to affect during the time, for example, moving a window to the same desktop that it already belongs to is pointless and therefore windows on the current desktop will not appear in the Move Here column.

  • Mouse opens compact window list: If checked the compact form of the window list is opened by the mouse rather than the standard form. The window list can be opened using the mouse by left clicking on the system tray icon or by middle clicking on a the desktop (if enable, see Enable middle button window list activation).

    The compact form of the Window List displays only one column, clicking on the title of the column will change the menu to the next column.

    Note: The compact list has two further advantages, firstly it is able to support many more windows (multiple menu columns will be automatically used if there are too many windows to display in a single column) and the length of text for each window is truncated to 128 characters rather than only 30 for the non-compact form.

  • Mouse opens compact window menu: If checked the compact form of the window menu is opened by the mouse rather than the standard form. The window menu can be opened using the mouse by middle clicking on a the desktop (if enable, see Enable middle button window menu activation).

    The compact form of the Window Menu uses sub-menus to keep the size of the main menu small.

Hotkeys Tab

The Hotkeys tab is used to bind system wide ‘hotkey’ combinations to VirtuaWin functionality, as the hotkey is system wide a key combination must not be used by any other application including Windows itself. The following commands can be bound to a hotkey:

  • NAV: Move left: Moves to the next desktop to the left, this command fails if the current desktop is in the left most column and Enable desktop wrapping is disabled.

  • NAV: Move right: Moves to the next desktop to the right, this command fails if the current desktop is in the right most column and Enable desktop wrapping is disabled.

  • NAV: Move up: Moves to the next desktop above (which desktop this is depends on your Expert Invert Up/Down setting). This command fails if the current desktop is on the top row and Enable desktop wrapping is disabled.

  • NAV: Move down: Moves to the next desktop below (which desktop this is depends on your Expert Invert Up/Down setting). This command fails if the current desktop is on the bottom row and Enable desktop wrapping is disabled.

  • NAV: Move to next: Moves to the next desktop; this command will fail if the current desktop is the last desktop and Enable desktop wrapping is disabled.

  • NAV: Move to previous: Moves to the previous desktop; this command will fail if the current desktop is the first desktop and Enable desktop wrapping is disabled.

  • NAV: Move to desktop #: Moves directly to the desktop specified.

  • WIN: Toggle always show: Toggles whether the current window is visible on all desktops or just the current one.

  • WIN: Always on top: Toggles the Window’s ‘Always on top’ property which keeps the window above other windows.

  • WIN: Push to bottom: Pushes the window to the back of the desktop, i.e. under every other window.

  • WIN: Dismiss window: If the current window is only being temporarily show (for example the window list 'Show' feature was used to display it, also see option On hidden window activation) it will be moved back to its original desktop, otherwise the window will be minimized.

  • WIN: Gather process windows: Moves all the windows created by the current window's process onto the current desktop.

  • WIN: Move left: Moves the current window to the next desktop to the left; this command will fail if no window currently has focus or if the current desktop is the left most desktop and Enable desktop wrapping is disabled.

  • WIN: Move right: Moves the current window to the next desktop to the right; this command will fail if no window currently has focus or if the current desktop is the right most desktop and Enable desktop wrapping is disabled.

  • WIN: Move up: Moves the current window to the next desktop above (which desktop this is depends on your Expert Invert Up/Down setting); this command will fail if no window currently has focus or if the current desktop is the top most desktop and Enable desktop wrapping is disabled.

  • WIN: Move down: Moves the current window to the next desktop below (which desktop this is depends on your Expert Invert Up/Down setting); this command will fail if no window currently has focus or if the current desktop is the bottom most desktop and Enable desktop wrapping is disabled.

  • WIN: Move to next desktop: Moves the current window to next desktop; this command will fail if no window currently has focus or if the current desktop is the last desktop and Enable desktop wrapping is disabled.

  • WIN: Move to previous desktop: Moves the current window to next desktop; this command will fail if no window currently has focus or if the current desktop is the first desktop and Enable desktop wrapping is disabled.

  • WIN: Move to desktop #: Moves the current window to the specified desktop; this command will fail if no window currently has focus.

  • WIN: Move left and follow: Same as WIN: Move left except VirtuaWin changes to desktop as well.

  • WIN: Move right and follow: Same as WIN: Move right except VirtuaWin changes to desktop as well.

  • WIN: Move up and follow: Same as WIN: Move up except VirtuaWin changes to desktop as well.

  • WIN: Move down and follow: Same as WIN: Move down except VirtuaWin changes to desktop as well.

  • WIN: Move to next desktop and follow: Same as WIN: Move to next desktop except VirtuaWin changes to desktop as well.

  • WIN: Move to prev desktop and follow: Same as WIN: Move to previous desktop except VirtuaWin changes to desktop as well.

  • WIN: Move to desktop # and follow: Same as WIN: Move to desktop # except VirtuaWin changes to desktop as well.

  • WIN: Gather all windows: Moves all windows being managed by VirtuaWin onto the current desktop.

  • UI: Open standard window menu: Opens the standard window menu to control the current window; this command will fail if no window currently has focus.

  • UI: Open compact window menu: Opens the compact window menu to control the current window; this command will fail if no window currently has focus. The compact menu moves some menu items into sub-menus ensuring the size of the menu does not get unmanageable.

  • UI: Open standard window list: Opens the standard window list menu, which is used to access any window.

  • UI: Open compact window list: Opens the compact window list menu which is used to access any window. See option Mouse opens compact window list for more information on the differences between the two window list forms.

  • UI: Open most recently used window list: Opens a menu listing all windows in order of last use, VirtuaWin will switch to the selected window.

  • UI: Open window rules setup: Opens the Window Rules Dialog.

  • UI: Open VirtuaWin setup: Opens VirtuaWin’s main Setup Dialog.

  • UI: Open control menu: Opens VirtuaWin’s Control Menu, which can also be opened by right clicking on the system tray icon.

  • UI: Toggle enable state: Toggles whether VirtuaWin is enabled or not; when VirtuaWin is disabled this hotkey command is the only one which remains bound.

Hotkeys

  • The first sub-window on the Hotkeys tab contains a list of current hotkeys, select a line to Modify or Delete the selected hotkey. When a line is selected, the remaining fields in the tab are updated to reflect the hotkey selected.

  • Command is used to configure what command is to be executed by the hotkey, see above for a complete list of available commands and what they do.

  • Desktop: Some commands require a desktop to be specified, e.g. NAV: Move to desktop #, the Desktop contains a drop down list of all available desktops, use this to specify the required desktop.

    Note: Usually this list only contains normal visible desktops, if using a hidden desktop you must first go to the hidden desktop for it to appear in this list.

  • Use the Hotkey entry to specify the required hotkey by simply clicking into the entry and pressing the required Hotkey combination, the + WIN key checkbox will also need to be set depending on whether the Windows key modifier is desired.

    Note: If the Hotkey is already bound by something else (including VirtuaWin and Windows) the entry will not be correctly changed, it may be set to None and the action bound to the hotkey will be executed. This is a limitation of the Windows Hotkey interface, see the main VirtuaWin FAQ for instructions on how to manually configure some hotkeys.

  • Pressing the Add button add the current Command/Hotkey configuration as a new hotkey, it will be added to the bottom of the list. This button is not enabled if the Hotkey is not set to a valid hotkey combination.

  • Pressing the Modify button up-date the currently selected hotkey with the current Command/Hotkey configuration. This button is not enabled if a hotkey is not selected in the list or the Hotkey is not set to a valid hotkey combination.

  • Pressing the Delete button removes the currently selected Hotkey. This button is not enabled if a hotkey is not selected in the list.

Mouse Tab

Mouse Support

  • Enable mouse desktop changing: If checked, it will be possible to change desktop and drag windows to other desktops with the mouse.

  • The Delay before changing desktop slider configures how long it will take to switch desktop when the mouse goes to the ends of the screen. You can set a value between 50 - 4000 ms.

  • Enable modifier key control: If checked, you can choose a key that must be held down if the mouse should move to a new desktop. This is useful for avoiding accidental desktop switch when using Mouse support.

  • Enable desktop edge knocking: If checked the mouse must 'knock' the desktop edge before VirtuaWin will change desktops. To knock the edge the mouse must move to the desktop edge, then move away from the edge (by a quarter of the Mouse jump length), before going back to the edge - this action must be performed within a second. So if the Mouse jump length is set to 60 (recommended) the mouse must move 15 pixels away from the edge, also the mouse must not wander in the direction perpendicular to the edge by more than the Mouse jump length.

    • When Always required is also checked, a knock must always be performed to change desktops with the mouse. If disabled a knock is only required when the mouse operation starts near the edge (within 'Mouse jump length', e.g. 60 pixels). For example, if the modifier key control is pressed within 60 pixels of the edge a knock will be required, if its pressed outside this boarder no knock will be required.

  • The Mouse jump length field tells how many pixels the mouse pointer will jump away from the desktop edge on a mouse desktop change. Values between 0-999 are possible, but don’t set this value any higher than the resolution of your screen. A value of at least 10 is recommended to avoid unwanted double desktop changing and a value of around 60 or more if edge knocking is enable.

  • Enable mouse warping: If checked, the mouse will be moved to the opposite side of the screen when going over the edge. The effect of the Mouse jump field is the same.

  • Enable middle button desktop changing: If checked, clicking the middle mouse button on the desktop and moving the mouse will change desktops in the direction of the mouse movement. The size of the mouse movement required to change desktops is a quarter of the Mouse jump length.

  • Enable middle button window list activation: If checked, clicking the middle mouse button on the desktop will open a VirtuaWin window list (see Window List Contents section below). This menu can also be opened using a hotkey, see Enable window list hotkey.

  • Enable middle button window menu activation: If checked, clicking the middle mouse button on a window’s title bar will open a VirtuaWin control menu for the window. This menu can be used to dismiss the window and control which desktop it is placed on. This menu can also be opened using a hotkey, see UI: Open standard window menu.

Modules Tab

The original installation of VirtuaWin includes only one module, WinList module. More info about modules is available on http://virtuawin.sourceforge.net/. There you can also find more modules to download. There is currently a max limit of 10 modules that VirtuaWin will handle.

  • The list box will display the modules that are currently loaded.

  • Pressing the Configure button, or by double clicking, will bring up the setup dialog for the selected module, if the selected module has one.

  • Press the Reload button for unloading all modules and re-read the module directory.

  • Pressing the Enable/Disable button does exactly what it sounds like. Note that you need to restart VirtuaWin in order for enabled modules to become active again. Disabling modules works instantly.

Expert Tab

Advanced Options

  • On desktop change preserve: Setting this option to Taskbar Order will make VirtuaWin maintain the window order in the taskbar when changing desktops; it does not attempt to restore the Z order. When Z order is selected VirtuaWin will maintain the order that windows are on top of each other, this is the same order as used by the Windows Application Menu (Alt + Tab). When used, the order of windows in the taskbar is not preserved and there is a desktop changing performance hit of around 5% compared to Taskbar Order. When Taskbar & Z Order is used both orders are restored but at about a 10% performance cost.

  • Restore focus on desktop change: If checked, when switching desktops the focus will be returned to the window that last had the focus on the desktop. If disable the focus is removed - no window will have the focus.

  • Invert Up/Down: If checked, the up/down control keys and mouse behavior will be switched. This is nice to use when you have hot keys set on the numpad. For example on a 3x3 desktop setup, use hot keys 1-9 on the numpad and invert up/down. Then every desktop will be mapped to corresponding key number and the control keys/mouse will behave as expected. Hard to explain, try it out…

  • Hide system tray icon: If checked the system tray icon will be removed. To see the setup dialog just start VirtuaWin a second time and the setup dialog will appear.

Workarounds

Options in this group should only be changed if VirtuaWin is not functioning correctly.

  • Enable taskbar detection: During startup, VirtuaWin will try to locate the taskbar to be able to use taskbar warp and alternative hiding. If you use an alternative shell, e.g. LiteStep, then you wont have a taskbar and probably want to disable this.

  • Enable window rules: If enabled, window specific rules created via the Window Rules Dialog will be applied, see help about the Window Rules Dialog for more information. This option should be enabled, if not some windows, most notably Explorer windows, may disappear.

  • Force refresh after desktop change: If checked, VirtuaWin will do a refresh after a switch to a new desktop, similar to pressing F5 with “desktop focus”. Useful if applications are leaving traces after them (I have only seen this problem with PhotoShop). Otherwise, uncheck it to get rid of the annoying flicker.

  • Write events to the virtuawin.log: If checked VirtuaWin creates a log file detailing all VirtuaWin related events in your user configuration directory (to locate this file see Explore Config). This is very useful when attempting to reproduce issues and reporting problems to VirtuaWin.

  • The Log Windows button adds information about every window to the virtuawin.log file, this helps gather information required when a problem is encountered. The Write events to the virtuawin.log option must be enabled for this feature to have any effect.

  • The Explore Config button opens an explorer window displaying the contents of your VirtuaWin configuration directory; this can be used to find your configuration files.


Window Rules Dialog

The Window Rules dialog can be opened by:

  • Selecting Window Rules in the Control Menu.

  • Binding the UI: Open window rule setup command to a Hotkey and pressing this Hotkey.

  • Selecting Add Window Rule or Edit Window Rule in the Window Menu.

The window rules dialog is used to improve the way VirtuaWin handles certain types of windows. Each window rule consists of two basic parts, the first part controls the window identification, i.e. determines what windows the configuration is to be applied to, the second part configures the settings to apply to these windows. Each window can have at most one window rule applied.

  • The first sub-window on the Window Rules dialog contains a list of all currently defined window rules, the order of the list is very important, as a window can only be assigned one window rule, when a new window is opened VirtuaWin starts at the top of the list trying to find a window rule that matches, it stops at the first match.

  • Press the Up or Down button to move the currently selected window rule up or down the list; these buttons simply change the order of items in the list, they do not apply any modifications made to the current window rule.

  • The Add button creates a new window rule at the top of the list; its window identification and settings will be as per the current dialog state.

  • The Modify button applies any changes made to the current window rule’s identification and settings.

    Note: Until this button is pressed all changes to the current window rule are ignored; a common mistake is to select a window rule, make some changes and then press Okay or Apply - this has no effect as the selected window rule was not modified!

  • The Delete button removes the currently selected window rule.

  • The OK and Apply buttons will save any changes made to the Window Rules configuration (see note for Modify) and re-applies the window rules to all windows on the current desktop.

Identification

A combination of three fields is used to identify what windows the window rule is to be applied to:

  • Class Name: Defines the name of the window’s class, this can be found in the Window Menu’s Info dialog. A ‘*’ at the beginning and/or at the end can be used for partial string matching (e.g. “*MyClass*” will match any window class containing the string “MyClass”). Leave is field empty if the window rule is not to match on the window’s class.

  • Window Name: Defines the title of the window, note that this must be correctly set for when the window is first created (or when the window rules are reapplied). A ‘*’ at the beginning and/or at the end can be used for partial string matching (e.g. “*Mozilla Firefox” will match any window whose title ends in the string “Mozilla Firefox ”). Leave is field empty if the window rule is not to match on the window’s title.

  • Program Name: Defines the full path of the program which created the window, this can be found in the Window Menu’s Info dialog. A ‘*’ at the beginning and/or at the end can be used for partial string matching (e.g. “*\firefox.exe” will match any window created by Firefox). Leave is field empty if the window rule is not to match on the window’s executable.

    Note: The Program Name is not support on early versions of Windows, e.g. Win9x.

  • Window rule enabled: If not checked the window rule is simply ignored, this option can be useful when tracking down problems.

Note: When using the Window Menu’s Add Window Rule feature the three name fields are set to the current window’s details, it is very unlikely that all three fields are required for the identification, particularly the Window Name.

Settings

Note: It is strongly advised that minimal changes made to avoid unwanted side effects; VirtuaWin handles most windows correctly so only change settings which directly address a problem.

  • Manage windows of this type: Three radio buttons give the options to Never manage, Always manage or Let VirtuaWin decide (default).

  • Main window of multiple taskbar buttons: If checked the window is flagged as the main visible window for an application that uses multiple taskbar buttons to access this window. For example Excel creates a taskbar button for each file opened but has only one main window, clicking on each taskbar button simply changes which file is viewed in the main window. This option enables VirtuaWin to identify these main windows and handle them properly by removing the additional taskbar button for the main window (this button is typically removed by the application). Only use this option if changing desktops leads to the creation of an additional taskbar button.

  • Show windows of this type on all desktops: If checked any window of this type will be automatically shown on all desktops. This differs from the window not being managed in several ways, firstly the window will not appear in the main Window List menu, also when changing desktops VirtuaWin will not give the focus to a non-managed window.

  • Keep all windows of this application together: If checked all windows created by the window's application are kept together, i.e. VirtuaWin will move all the application's windows when one of them is moved and if one is flagged as Always Show then all the windows will be.

  • Automatically move windows of this type to Desktop: If checked the window will be automatically moved to the given desktop. VirtuaWin will move the window immediately on start-up or when window rules are re-applied, when VirtuaWin is already running and a new window is opened it is either moved immediately if Move windows immediately is enabled or when the window is first dismissed (either by using the user dismissing the window or by changing desktops).

  • Method for hiding the window: Specifies what method should be used to hide windows of this type, the standard method works well for most windows and is the most efficient, however some windows (most notably Explorer, IExplorer and some .NET dialogs) mysteriously disappear when this method is used. To avoid this problem these windows must be hidden using the move window method. The minimizing window method is the most efficient to use when the taskbar button is to be kept shown.

    Note: The Windows 'Animate windows when minimizing and maximizing' performance option greatly affects the minimizing hiding method; if you need to use this method of hiding it is recommended that you disable this option.

  • Method for hiding taskbar button: Specifies what method, if any, is used to hide the window’s taskbar button, the standard method is the most efficient but can only be used when the window is hidden using the standard method. If set to Show, VirtuaWin will not hide the taskbar button, this is useful when the application uses the taskbar button to show events (such as a new message etc), if the taskbar button is hidden the event could be missed - only move window or minimizing window hiding methods can be used with this setting. The Hide by using toolwin flag is an alternative hiding method which must be used when the window’s hiding method is not standard method.


Locking or Hiding Desktops

As applications run independently of VirtuaWin, a 'locked desktop' concept is flawed and cannot be made secure. For example, an unwanted guest could use the task manager to suspend the VirtuaWin process and then use any window restore tool (like WinList) to access the hidden windows. From a security perspective, the only thing a locked desktop achieves is to prove you have something to hide!

A more suitable approach would be 'stealth', what is not seen is unlikely to be found. A hidden desktop is no more secure than a locked desktop when someone else knows it exists, so don't tell anyone!

VirtuaWin can be configured to support 1 or more hidden desktops by assigning a desktop access hotkey to a desktop that is outside of the main Desktop Layout size. For example, if a 2 by 2 layout is used, assigning a hotkey to desktop 8 will give you direct access to this desktop yet the desktop and its contents will be hidden in every other aspect.

To configure a hidden desktop, use the main VirtuaWin Setup to change your Desktop Layout so that your required hidden desktop becomes part of the layout, e.g. to enable desktop 8 change to a 4 by 2 layout. Change to this new desktop and use Setup to assign a hotkey, make sure the hotkey is not something you could accidentally type and don't forget it! Last, restore the desktop layout so that the hidden desktop is outside this range (i.e. back to a 2 by 2 layout) and check you can still access the hidden desktop using your assigned hotkey.

As a hidden desktop will not appear on any VirtuaWin menu, moving a window to it must be done by either making the window sticky or by going to the desktop and using the Window List menu to Assign the window.

Hiding desktops in VirtuaWin is deliberately low profile, the less this feature is known the more secure it is.


External Interface

Most VirtuaWin commands and features can be accessed by sending windows messages to the VirtuaWinMainClass window, this is also known as the Module interface. Any external program can locate this VirtuaWin window and send it commands, or use VirtuaWin's -msg command-line option, the format of this option is as follows:

VirtuaWin.exe -msg <Msg> <wParam> <lParam>

Where <Msg>, <wParam> and <lParam> are numbers as per the standard Windows SendMessage function. A complete and up-to-date list of supported messages can be found in Messages.h in the SDK package, the following list may not be fully up-to-date:

Msg | wParam | lParam | Description
1034 | # | - | Change to desktop #.
1034 | 1025 | - | Change to previous desktop.
1034 | 1026 | - | Change to next desktop.
1034 | 1035 | - | Change to next desktop to the left.
1034 | 1036 | - | Change to next desktop to the right.
1034 | 1037 | - | Change to next desktop above.
1034 | 1038 | - | Change to next desktop below.
1039 | - | - | Exit VirtuaWin.
1040 | - | - | Open Setup dialog.
1041 | - | - | Remove VirtuaWin's systray icon.
1042 | - | - | Show VirtuaWin's systray icon.
1043 | - | - | Open VirtuaWin's on-line help.
1044 | - | - | Gather all windows onto the current desktop.
1045 | - | - | Returns the width of the current layout, i.e. how many desktops wide.
1046 | - | - | Returns the depth of the current layout, i.e. how many desktops deep.
1048 | - | - | Returns the current desktop number.
1049 | hWnd or 0 | # | Move window to desktop #.
1049 | hWnd or 0 | 1025 | Move window to previous desktop.
1049 | hWnd or 0 | 1026 | Move window to next desktop.
1049 | hWnd or 0 | 1035 | Move window to next desktop to the left.
1049 | hWnd or 0 | 1036 | Move window to next desktop to the right.
1049 | hWnd or 0 | 1037 | Move window to next desktop above.
1049 | hWnd or 0 | 1038 | Move window to next desktop below.
1049 | hWnd or 0 | -#, -1025, ... | As with positive lParam values only VirtuaWin changes desktops as well, i.e. moves window and follows.
1050 | hWnd or 0 | -1 | Toggle whether the window is shown on all desktops.
1050 | hWnd or 0 | 0 | Do not show window on all desktops.
1050 | hWnd or 0 | 1 | Show window on all desktops.
1051 | hWnd | - | Give the window the focus, i.e. make it the foreground window.
1052 | hWnd | - | Send the VirtuaWin installation path to hWnd via a WM_COPYDATA message.
1053 | hWnd | - | Send the VirtuaWin user configuration path to hWnd via a WM_COPYDATA message.
1063 | hWnd | 0 | Access window - use method defined by 'On hidden window activation' setting.
1063 | hWnd | 1 | Access window - move to the current desktop.
1063 | hWnd | 2 | Access window - shown on the current desktop.
1063 | hWnd | 3 | Access window - change to the window's desktop.
1064 | hWnd | - | Returns information about the window, see Messages.h for more information.
1065 | ? | ? | Controls desktop thumbnail image generation, see Messages.h for more information.
1066 | 0 | - | Returns the current VirtuaWin running state (0 = disabled, 1 = enabled).
1066 | 1 | - | Toggles the current VirtuaWin running state, returns the previous state.
1066 | 2 | - | Disables VirtuaWin, returns the previous running state.
1066 | 3 | - | Enables VirtuaWin, returns the previous running state.
1067 | hWnd | # | Send the name of desktop # (or current desktop if # = 0) to hWnd via a WM_COPYDATA message.
1068 | - | - | Returns the largest possible desktop number.
1069 | hWnd or 0 | - | Change to next desktop below.

Where:

- | means not used (use a 0).
hWnd | Numeric handle to the window required.
hWnd or 0 | Numeric handle to the window required or 0 for the window which currently has the focus.


WinList Module

The WinList module is used for recovering windows that might be lost by VirtuaWin due to some reason.

Press the configure button for the module to bring up a list of all windows that exists. Note that there are many system windows that are hidden by default, which are also shown in this list. It is possible to undo the latest action if the window list dialog is not closed.

Note that both the application title bar text and the classname is displayed and if the title cannot be found, the module will display "<None>" as title.


Configuration Files

With the exception of userpath.cfg all configuration files are located in the user’s 'Application Data/VirtuaWin' directory, use the Setup Expert Explore Config button to locate this directory. When a user runs VirtuaWin for the first time all configuration files located in the VirtuaWin installation directory are copied into the user’s own VirtuaWin directory within their Application Data area. The following configuration files are used by VirtuaWin:

userpath.cfg

If present in the installation directory it contains a single line defining the directory containing the user’s configuration files. This file can be used to solve problems caused by user permissions and roaming profiles. The string within the file can user environment variables by using the format '${<variable-name>}' (e.g. ${HOMEPATH}) and can use the built in variable ${VIRTUAWIN_PATH} to use the VirtuaWin installation directory. For example, the following could be used if a fixed path with the same setup for all users was required:

c:\VirtuaWin_config\

The following uses a fixed path but allows different configurations per user:

c:\VirtuaWin_conf\${USERNAME}

Note that VirtuaWin will create the directory if it does not already exist.

virtuawin.cfg

Main user configuration file, the Setup Dialog settings are stored in this file.

window.cfg

Configuration file used to store the specific Window Rule setup.

module.cfg

Contains the list of currently disabled modules.


Custom Icons

It’s possible to use custom icons on the system tray. For using this feature you need to get a tool for creating the icons (or download custom icons for the website – see below) and add them to the “icons” directory in the install directory of VirtuaWin.

VirtuaWin uses icons 0.ico, 1.ico, 2.ico … n.ico where ‘n’ is the number of desktops used. The 0.ico is used when the user disables VirtuaWin; the others are used when on the respective desktop (i.e. 3.ico is used when on desktop 3). If any icon is missing from the icons directory VirtuaWin will use a default icon; this will be the main VirtuaWin icon for desktops greater than 9.

When creating you own, the icons must have a size of 16x16 pixels and the color palette must be restricted to the 16 ‘dos’ colors for pre-XP versions of windows. The naming of the icon files must be as described above.

VirtuaWin associates the icons with desktops from left to right row by row, meaning that if you have a 3 by 3-desktop area the icon positions will be:

1 2 3
4 5 6
7 8 9

And a 2 by 3 will be:

1 2
3 4
5 6

If there are custom icons present, they will be used in both 2 by 2 and all other desktop sizes. Check http://virtuawin.sourceforge.net/ for other icons, and if you make your own icon set please make them available to all by submitting them as a SourceForge patch.