Desktop Manager

If you are a Unix/Linux user, and use one of the many window managers for X, you will be well aware of the multiple desktop support. So, this tools lets you bring that functionality to Windows…

The 'Desktop Manager' provides you with four virtual desktops within Windows. Individual windows can be added to desktops, and hence you can switch between the desktops whilst maintaining window position and size!

A screen shot of this little application is shown to the left. The four desktop are displayed with the grey boxes representing the windows active on them. Users can switch between the desktops either by using short cuts keys, by clicking on the window in the manager itself, or by using a 'mouse switch' feature, similar to that in KDE.

The application itself can either stay on top of other windows, or minimize to the system tray. You can in fact use the whole application using shortcut keys, which are mapped to work anywhere in Windows. My main criteria for this product was that I wanted to be able to switch between desktops, and add/remove windows to/from desktops very quickly.


The whole idea behind this application is that no window is added to one of the virtual desktops without the user specifying it. This means that there is essentially a global desktop, where windows exist at all times, and four virtual desktops under the users control.

Anything that has a window can be added to a virtual desktop. As basically everything in Windows is treated as a window, even buttons etc, it means that you can even add your whole desktop and start bar to virtual desktop! You can add as many or as little windows as you want. If you really want to, you can add the OK button of a dialog to one desktop, and the cancel button of the same dialog to another desktop!

As indicated in the screen shot to the right, there is an option to enable a set of controls that float next to the desktop manager. These allow remote control of Winamp, providing options to play, pause, stop, forward, backwards, show playlists and change volume.

Also included is a Window Manager, allowing all windows to be shown/hidden and added to desktops. You can analyse controls within windows, such as buttons, panels and lists.

Windows added to any of the desktops can be directly manipulated by clicking on the grey boxes in the desktop manager. You can move windows about, even if you are not currently viewing that desktop, and perform other direction operations on those windows. Included with the application is an option to allow you to manager all windows with a registered handle, hence you can find out exactly what is running and have complete control over your desktop!

The application is completely configurable. Using a single INI file you can specify what key combinations are used to change between desktops and add/remove windows to/from desktops. It allows various other aspects of the application to be controlled, such as toggling mouse desktop switching. Support is included for specifying sticky windows. These are windows that should never be able to be added to a desktop, hence will always be visible.


Listed below are just some of the features included with this product.

  • Add any window with a handle to any of the four desktops.
  • Switch easily between desktops with global shortcut keys and mouse events.
  • Add/remove windows from desktops freely using defined key combinations.
  • Remotely control Winamp using the 'Winamp Controller'.
  • Have full control over all windows on your desktop.
  • Fully configurable, use whatever key assignments you want.
  • Set level of alpha blending to use on any window.
  • Set visibility of controls within windows, such as buttons, list etc.

  • Ability to customize the behaviour of the whole application.
  • Minimizes to system tray to reduce desktop footprint. Desktop number shown on system tray icon.
  • Alter the Z-order position of windows to specify layering, always on top etc.
  • Instance desktop switching.
  • Multiply your working space by four!
  • Locate those long lost windows, and hide the annoying ones!
  • Enable 'always on top' to keep your desktops to hand.
  • Drag and drop your windows between desktops using the form selector.
  • Full Delphi 3 source code available for you to customize to your own requirements!

Alpha Blending

Alpha blending was a new feature within the Windows API, included with Windows 2000 and higher. As it makes things look cool, I added it to the Desktop Manager. I'm sure it has some real uses!

The desktop manager allows you to apply transparency (0-100% in 10% increments) to any window, either through right clicking on it in the manager itself, or using the form selector. Windows can use alpha blending whilst being added to a virtual desktop.

Okay, so you can go a little over the top with alpha blending, as the picture to the right shows!

Of course, if you don't want to use alpha blending, just set the AlphaBlending variable to 0 in the INI file, and it will not use it. Obviously it won't work in 9x, but the program will behave as normal without any extra configuration.

If you apply alpha blending to the actual desktop itself (Program Manager - Progman), you get very strange effects!



Installation wise, just unzip the archive to the folder you want to install it to, and create a shortcut to deskman.exe. That's it! The application requires the main EXE file and a single DLL (to do the mouse event hook). If you want to specify you own configurations, you will need the INI file. Edit that file in a text editor (or right click on the desktop manger tray icon and select General Preferences).

You can download the executable for version 0.21 here (approx 189kb).

Default Key Mappings

Following are the default example global Windows key assignments.

Ctrl + {F1, F2, F3, F4} to switch between the four desktops.

Alt + Shift + {1, 2, 3, 4} to add/remove the current foreground window to/from one of the four desktops.

Switch desktops by moving the mouse to the screen boundaries, similar behaviour to KDE.

All the above functionality can be changed using the configuration file. Events can be mapped to almost any key combination.

Source Code

All the source code is available for free download from this site. I developed this application in Delphi 3, but there shouldn't be any problems converting up the version tree. I tried to keep the code neat in design, hence a splattering of OO to help future expansion. The concept of desktops and desktop entries should allow for easy expansion to support more than four desktops, hopefully with only a small amount of hacking.

Feel free to do what you want with the code, just please include a reference to the original author.

The source code can be downloaded from here, and should include all information required to get it to compile etc.

software/utils/deskman.txt · Last modified: 2011/05/27 21:59 (external edit)
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki