Tuesday, July 29, 2008

MultiMon utopia

At my previous blog I wrote about tools and utilities I am using and also mentioned that I want to replace some of them...

One of tools I mentioned that I want to replace was some utility for multimon management.

Being partially developer\scripter, I really love multiple monitors. However in Windows using multi mon is not as easy as it could be :(

Ideal scenario

In ideal scenario I would like to have 3 monitors - one main for VS\Script editor & Outlook, one for tons of small windows (as mentioned, Live Messenger, Last.FM, Skype...) and one for internet\documentation. I would like to have this setup because I definitely want to have my primary working tool (editor) fullscreen, see all small windows at once and have (again fullscreen) access to articles and documentation. So from hardware perspective I find 3 monitors best.

I definitely need option to easily move windows between screens - which is quite painful in Windows, because you must make full drag&drop and this is not supported when window is in fullscreen. Obviously this is not supported by Windows natively (shame, shame...), so I need some external utility for this.

Talking about replacement for default Windows functionality, I want following:

  • Easy option to move window to another monitor (HW)
  • Easy option to move window to another screen (virtual desktop)
  • Separate taskbars for each monitor (and virtual desktop)
  • Ability to minimize windows to screen instead of taskbar. Ideally having one virtual desktop to store all minimized windows.
  • Centralized notification system (for windows that are on other desktops)
  • Virtual monitors

Current setup

Currently I have 2x22" (1680x1050) and my laptop (1920x1200) connected through Synergy and I can imagine getting third monitor ;) On one monitor I run Visual Studio\PowerGUI Script Editor together with Outlook and on second I have all other utilities like Messenger, Last.FM player, Skype etc...

For moving windows between monitors I used trial version of UltraMon, however once it expired, I was not sure whether it is what I was looking for - not many features and quite expensive.

I have no virtual desktops - I tried to use them few years ago, however it just didn't work for me (but my situation changed of course).

I have my tablet and laptop connected through Synergy with my primary desktop. Synergy is application that allows you to control multiple computers by 1 mouse and keyboard (virtual KVM without V ;)). It is easy to configure (when mouse reaches end of primary monitor on left, just to computer XXX) and it really works.

Solutions?

Ok, lets go step by step. I will start by basic introduction to 3rd party utilities that are most often used for multi monitor support:

  • MultiMon - small application that is available for free. It allows you to easily move window between monitors using easy to use title buttons. Also it creates multiple taskbars for each monitor. Small feature (important for developers) is extended clipboard, where you see all (text) entries you saved to clipboard and you can easily restore code you added to clipboard some time ago. Main disadvantages are that it doesn't really work with Vista (at least for me) and there is paid version - where all bugs are fixed :( So if you are using XP and are looking for some free solution, I can highly recommend. Price for PRO version is $28.
  • UltraMon - recognized as best multi monitor solution, however I was not really satisfied. In fact only features it adds is multi mon taskbar and title buttons to move window to other desktop. Otherwise it works fine - but I don't think $39.95 is really good price.
  • Actual Window Manager - this is not very famous piece of software, however I find it best. It is most expensive ($49.95), however it have great functionality and tons of small features and tweaks. Because MutliMon and UltraMon are quite famous and AWM not, I will write in detail about it below.

Actual Window Manager

So, I mentioned that I really like AWM (Actual Window Manager), so I want to share some details with you. Information is based on 5.2 beta 1 version (so final 5.2 could have some features added).

At first I was searching only for 2nd taskbar + move to window functionality, however AWM is more like monitor Swiss knife.

AWM provides more than 40 tools for manipulating with Windows (according to their website). Some features (second taskbar, move to monitor, virtual desktops, process priorities...) are very interesting for me, some (transparency settings, stay on top...) are interesting, however not for me and some (rollup, minimize to screen, pin to desktop...) could be very interesting for me, however they would need to be slightly modified to do exactly what I want.

There is trial version available, I highly recommend to try it and explore little bit. Visually AWM is not very nice, however from functionality perspective it is perfect.

There are also many nice tweaks and tunes that are not obvious immediately, for example modifications to cmd.exe that allows you to dynamically resize it or special right-click behaviors. Once you will start digging into configuration, you will be amazed how much can be achieved by AWM.

Consider simple configuration for minimizing. AWM allows 3 minimization modes:

  • minimize to taskbar (default Windows behavior)
  • minimize to systray (I prefer this, I used TaskSwitchXP to achieve that)
  • minimize to screen (creates small icon representing application on screen. Especially with DWM this could be great enhancement, sadly current version creates only static icon)

That's quite nice, however you can specify other settings. For example you can specify that you want to automatically minimize window 1 minute after it was deactivated (or immediately). Or you can specify that if you left-click on Close title button (X), it will only minimize and if you right-click on it, window will close (and of course you can enable this only for particular applications).

Power of AWM comes when you combine different tools (features) together. For example transparency was never really interesting for me. In AWM you can not only configure transparency, but also Ghost mode (which means that anytime you click on application, click goes to application BELOW ghosted application). So using this you can easily create transparent (status, information etc) windows that ignores clicks and you can (using AWM Always on top functionality) keep them in front. Or you can specify special CPU priority when application is minimized or inactive. Or you can specify default sized\monitors etc for each application...

It takes some time to start with AWM (because you have so many options), however it is definitely worth every penny. 100% recommended (hope so I won't change my opinion soon ;)).

Another really nice thing is that I used trial version. Once it expired, I decided to uninstall it and wanted to try UltraMon. After uninstallation I was asked what I didn't like and why I uninstalled that application. I decided to be honest and wrote what I was missing (taskbar and DWM-based minimize to screen). Soon I received answer - not the usual "thank you for your feedback blabla", I received answer - taskbar is going to be implemented in 5.2 version and second request was registered in wishlist.

I played a little bit with Virtual desktops, however I am missing some features there:

  • Easy way to switch desktops (Linux\Microsoft PowerToys like systray)
  • multi monitor aware virtual desktops - I want to use ONLY secondary screen for virtual desktops. AWM instead switches both screens to new virtual desktop. Again, based on WDM, I would like to have live preview of all virtual desktops (so if not needed, I would like to see live previews of all virtual desktops on my second screen).

So let's have a look at features I wanted when I count in AWM:

  • Easy option to move window to another monitor (HW)
  • Easy option to move window to another screen (virtual desktop)
  • Separate taskbars for each monitor (and virtual desktop)
  • Ability to minimize windows to screen instead of taskbar. Ideally having one virtual desktop to store all minimized windows. (however not DWM based)
  • Centralized notification system (for windows that are on other desktops)
  • Virtual monitors

    UPDATE: Version 5.2 of Actual Window Manager supports also taskbar on each monitor, so now AWM is definitely my recommendation. 

    Centralized notification system

    This is one feature I really miss in Windows. Do you know pop-ups from Live Messenger or Outlook whenever you receive new mail\instant message?

    I always wanted to have centralized system for this that will be supported by all Windows applications. Something like Growl for Mac OS.

    Simple interface, where you specify some default settings (timeouts, stickyness...) and subscribe to events you would like to receive (for example Outlook\New mail, Outlook\New RSS, Live Messenger\New message, Total Commander\Copy finished etc).

    There are of course some alternatives like Snarl. Problem is that all such solutions that are not VERY WELL known will have very limited support (which is also case with Snarl).

    Notification system is quite important once you start playing with stuff like Virtual Desktops - you can't just place instant messenger to (hidden) virtual desktop if you want to be aware of what is happening :(

    Currently there is no real solution available... Microsoft, are you listening? ;)

    Virtual monitors

    Virtual monitor is not virtual desktop. Virtual monitor should allow you to turn any device (old laptop) into additional monitor. Most famous application is called MaxiVista. It can also replace Synergy and add more features, however it is not for free ($39.95). Supported features are:

    • Extended screen a.k.a. software monitor
    • Remote control (Synergy)
    • Clipboard synchronization

    Don't get confused by name - MaxiVista is not designed for Vista (and therefore doesn't take advantages of WDM and is using only XPDM) :(

    What I need virtual monitor for? I really like Synergy for my laptop (why using it as monitor when I can use it 4GB Ram and dual-core processor for some tasks meanwhile), however I have also pretty old tablet (800MHz, 256MB ram...).

    I really prefer to read books\documents and make drawings at tablet, however it is too old. So what I would really like to have is tablet, that will act as software monitor, however I could use controls (pen) from TabletPC.

     

    As workaround I could connect through remote desktop, however having ability to drag&drop document to tablet would be really great.

     

    Martin

  • No comments: