About 2 years ago I dropped windows from my home PC and switched 100% to linux (fedora, then ubuntu) - The missus wasn't too happy but she got used to it and learned a thing or two. Then about 6 months ago I got myself a shiny new Macbook and since moving to OSX have never looked back; Unfortunately I've not been successful in getting my employer to buy me one for work (and I can't be carrying mine back and forth) so I have to "put up" with windows.
I started out with windows over 8 years ago so I have a really good understanding of how it works and have done my fair share of Win32/MFC/.NET development.
My question is; Who else has to use a windows box at work (and have a mac at home) And how do you cope - what windows apps/configurations do they use that let them work in a similar fashion to OSX? - I was just thinking how cool it would be if I could get some sort of keymapping app that re-mapped my windows keys to the OSX variants (Apple+W, Apple+Q, Apple+Left, Apple+Right, etc etc).
I miss expose (TopDesk is nice but not free)... I miss the simplicity of finder... I miss the nice smooth dialogs and windows and shadows (YzShadow can juuuuust cope) I miss the underlying unix framework (I run andLinux at work) I miss OSX :(
Unfortunately 90% of our clients use IE so windows is a must; They also can't justify the expense of a mac for a developer; Especially a Mac Pro :-p
Ah well.
I think the single best thing I've done to maximize productivity is to standardize my text editor across platforms. Personally I use vim as mush as possible. I use viemu to integrate into visual studio on windows, have replaced notepad with gvim, and I use vim on mac and linux alike.
You could remap shortcuts, but the simple ones are the same anyhow. Personally I dont have a problem remembering both. I do go through a mental exercise every few minutes to look for OS specific landmarks to remind me Im on Vista or OS X, which helps me to stay focused.
I'd also look into Powershell if you're a fan of Linux scripting, its the coolest shell going IMNSHO. Failing that there is always Interix