I've been sitting on this idea for several months and thought I would throw it out there to see if it has any merit. It has to do with workflow and focusing on your current task or, more precisely, focusing on the window(s) you are currently working in.
The idea was prompted by a post that I read on Rob Rohan's blog about WriteRoom and JDarkRoom, both of which are very minimalist, full-screen text editors somewhat reminiscent of the good old monochrome days (hah) which are simply sporting some coloured text on a black background and not much else (visibly speaking). The idea behind it is that you can focus on what you are writing without any distractions; no flashing chat windows, notifications, or other adjacent windows catching your eye.
So what happens if you want to achieve this ideal when you're working with any other applications and not just a text editor? The solution for some people is to maximise the window and be done with it, but personally I only ever maximise a select few applications (e.g. Outlook, Photoshop, Excel) because they actually demand a lot of screen real estate. Most applications I use, particularly for development work, are windowed and arranged in a way that I can quickly and easily switch between them with a single click and without going all the way down to the taskbar with the mouse.
My idea is to go with the trend of what we've already seen happening in user interfaces in the last few years, ala Lightbox, Windows Vista's Secure Desktop, and Expose on OS X (it's subtle, but it's there). We could use a dark overlay or "shroud" to mask the unused areas of the screen, allowing us to focus more clearly on the application that we are using at that moment.
In the screenshot you may notice an AIR application in the taskbar called "Shroudy", which is also the name I used in the title of this post. Don't get too excited because it is indeed a truly "dumb" application that would never work in the real world (as an AIR app), because it has no built-in "smarts" and can't get access to the OS level stuff that it would need. But what it did was let me get an idea of how it would feel to work with a shroud covering the parts of the screen I wasn't interested in at that point in time, and I have to say I think it was nice. It also got me thinking about other usability aspects which I think I have answers for...
So how would an application like Shroudy work in the real world?
- It would be an opaque window covering the entire screen
- It would not appear as a running program in the taskbar, it would have an icon in the notification area
- It would have an option to enable or disable covering the taskbar, or to disable covering the taskbar when the mouse hovers over it
- It would have a configurable opacity level, and a configurable dynamic opacity level which could change when the mouse cursor is outside the bounds of the active window (it could get lighter for better visibility, then after some timeout go back to it's original value)
- It would not display the "shroud" if there are no applications open
- It would be activated or deactivated by holding the Windows key for 3 seconds (configurable)
- It would listen for window activation messages and place itself directly below the active window in the z-order
- It would not capture any clicks directly, but instead pass them to the window(s) behind it (a click on the desktop would deactivate it)
- It would support multiple windows being "on-top" of the shroud, either by Control-clicking on windows ("Control-clicking through the shroud"), or even holding the Control key while the mouse cursor is over an inactive window, to bring it above the shroud while keeping the other active window(s) above the shroud
- It would support pinning applications "always on-top" of the shroud, by selecting them in the context menu of the notification icon
- Similarly, it would support being deactivated by default and only being active when using some certain applications, by selecting them in the context menu of the notification icon
- It would support multiple desktops with a configuration open to choose either a common shroud across all desktops, independent shroud on each desktop, or being enabled on some desktops and not others
- Similarly, it would support multiple virtual desktops, to support the use of applications such as DeskSpace or any native virtual desktop implementations (Windows 7, please!)
Unfortunately I'm not a Windows developer so I can't make this kind of application become a reality (I haven't touched the Win32 API or our good friends hWnd, wParam and lParam in at least 6 years! And who knows what kind of obstacles Vista might have thrown in on top). Still, I'd be interested to know if anyone thinks something like this is a good idea (or if I'm just nuts), and more interested still if someone thinks they could actually pull it off :)
And if someone does it on OS X or Linux first I'll be annoyed; maybe even annoyed enough to change operating systems! But probably not, hahaha...
Anyway, Shroudy is an application I'd like to have, or a feature I'd like my OS to have. What do you think?