Monday, December 12, 2011

Workstations v1.0

Workstations is a program I have written in C++ using the Qt GUI Framework which allows the user to open multiple instances of their Windows Desktop and iterate between them. The program is very similar to Desktops which was written by SysInternals. There are a few notable differences between the software, however:

  • Workstations is open-source
  • Workstations allows up to 8 desktops, Desktops only allows 4
  • Workstations is currently not finished. When it is, it will also have hotkeys for changing desktops and the ability to change the maximum number of desktops that can be opened, capping at 8 and being no less than 4.

Workstations was developed and tested on Windows 7 Enterprise x64 and seems to work nearly flawlessly. I would appreciate if some readers with different OS's especially could report and bugs they find with details on said bugs so I can fix them in later releases.

You can checkout from the repository and play with or recompile the code, or you can grab the pre-compiled binary to test out the software. This is one of the peices of software which I intent to update, so if you like what you see please help me out by reporting issues and voicing concerns via comments on this blog. 


  1. - Lag when changing desktops.
    - QUIT and SETTINGS submenus don't work.
    - No way of closing a desktop.

    Everthing tested on XP Professional.

    Thank you, great app, very useful, just need some fixes :D.

  2. I'm always looking for a better solution to my current multidesktop solution (VirtuaWin) which feels a bit laggy.

    I would love to see some table that compares the features/performance of your tool with other products like "Desktops (sysinternal)", "VirtuaWin" and "WindowsPager".

    For example;
    - has x64 support
    - has preview windows
    - taskbar shows only windows relevant to that desktop
    - opensource vs closed

    I know there are issues with some of these tools;
    - I believe Desktops or Windowspager doesn't support the command promp window in the other desktops (only in the root or Desktop 0 window).
    - "WindowsPager" preview only works if you use the new windows 7 taskbar. Not if you use a 2-row taskbar with oldstyle quicklaunch on the top row and open windows on the bottom one.

    I just can't bring up the energy anymore to do it myself O_o

  3. I just tried the pre-compiled binaries and unfortunately it did not work for me. Here are my issues:
    - Killing the application from the systray (right click-> quit) does not work. I have to use process explorer to kill it
    - Clicking create new desktop appears to work (I get a blank preview window and an increased window count), but I cannot switch to the new desktop. Trying to switch makes it jump back to the root desktop.

    This is on Windows 7 Professional, 64-bit, SP1

  4. Yeah, the I had forgotten that I had added that context menu, I never binded any events to it. As for switching, I'll take a look. I'm also using W7 64bit, so its weird that its not working for you. Is it possible that you may have other program hindering the functionality? (AV, Or one of the other multi-desktop programs?)

  5. Some additional feedback:
    - I closed the other multi-desktop programs, but I will try to kill the AV tomorrow when I'm back at that system.

    Meanwhile at another system (also win7,64-bit) with the same pre-compiled binaries (no av, no other multi-desktop):
    - aero theme only works on first/root desktop
    - if I have firefox open on first desktop, then try to open another firefox on a new desktop I'll get a pop-up saying "another instance is running that's not responding etc". In other words it won't start because it somehow knows there's one running else where and thinks it's not responding.
    - windows shortcuts "don't" work on the other desktop. E.g. WIN+E or WIN+R will open respectively explorer and Run, but on the root desktop window, not on the 2nd/nth window I called it from.

  6. The Aero bug is a result of the fact that dwn.exe must be running for Aero to work, and I don't autorun it (yet). I'm also not sure if it will work just being run or if I have to do something special to activate it.

    The FireFox bug is out of my hands. They must use EnumProcess or a similar function in order to detect other running instances instead of using mutexes. If they checked with a mutex, it would work fine due to the fact mutexes exist dependant upon the current Desktop, as it is part of their handles name. Processes, however, are global. They just have a Desktop they are assigned to show on.

    I have no clue what to do about shortcuts, I guess I can simulate them in the program on each Desktop? Not sure yet.

    Are these bugs in the other programs you use as well, or are they unique to this software?

  7. I believe the Aero bug is also present in Sysinternals Desktops (can't remember). WindowsPager was gone as fast as I installed it due to the incompatibility with my 2-row taskbar setup so I can't recall.

    All mentioned bugs are not present in VirtuaWin which I currently use. However I believe they don't really create a new desktop environment/object, but hide the windows based on the selected desktop. It's also opensource so you might be able to get some clues as to how they solve some issues.