I recently switched my primary OS to Windows 7, after nearly two years of exclusively using OS X. I really, really like OS X! It’s a great dick-around-and-browse-the-web operating system, but it’s even better when it comes to “real” work. We developed all of our Blurst games on a Mac. So why switch back?
It’s just painfully inconvenient to use OS X if you’re a game developer. Our workflow and tool chain were fine. Unity, Photoshop, Maya all run well on a Mac. Rather, the inconvenience stems from interacting with the larger game development ecosystem. Everything adds up: Fellow developers would send us Windows-only builds for feedback, I’d want to quick reference an effect in another game, or I’d have to spot-check some problem with an IGF entry. As a gamer, Steam by itself is a big reason to use Windows. It’s just more convenient for me to be in Windows by default.
This article will outline the services and software I used to make my transition to Windows 7 less painful and a little more Mac-like.
Over the last few years almost all of my work-related stuff–email, documents, project planning–have moved into cloud services. This has been fantastic! Getting ready for a conference used to suck, because I had to ensure my laptop had every little piece of information I needed. Today everything is fully accessible from any machine, anytime.
This makes operating system choice extremely portable, too. It doesn’t really matter if I’m booted into Windows or OS X, because everything is always available. Here’s a quick list of what we use:
- Google Apps – Google-hosted Gmail, Google Docs, Google Calendar. Calendar is two-way sync’ed to my iPhone for appointment reminders.
- Dropbox – Amazing file synchronization service. Files in a designated folder are automatically uploaded and downloaded from the web. I keep all of my mindmaps and presentations in here, along with misc work files.
- Xmarks – Syncs my browser bookmarks. I tried Delicious multiple times, but never had the discipline to make it work. This lets me use Firefox’s “click the star” convenience bookmarking. Also syncs my saved browser passwords.
- Pivotal Tracker – Web-based project management. Super simplistic drag-and-drop interface makes prioritization and scheduling stupid obvious, instead of buried in a multiple screens.
Ninite for Initial Install
Windows 7 works surprisingly well out of the box. I skipped all of Vista, so my last experience with Windows as a development environment was XP, which required a lot of tweaking. Nearly everything that I did need was taken care of by Ninite, which is completely amazing. Simply check the programs you want installed, and Ninite will generate a custom installer that does the work for you (opting out of toolbars and crap):
Ninite supports dozens of different pieces of software, which covered my bases nicely.
Adium -> Digsby
Adium is a great multi-network IM client for OS X. Fortunately, Digsby has come around in recent times for Windows, and gets the job done just as well (and thankfully replaces Trillium as the IM front-runner). My only complaint with Digsby is that it won’t show “OtherPersonName disconnected” in a chat window if they log off. It lets you go on typing to them, oblivious of their new offline status. Bonus points to Digsby for requiring a global Digsby account. Yes, slightly annoying at first, but really saves a lot of configuration time on multiple machines (your various account information is stored on their servers).
Exposé -> Switcher
I useOS X’s Exposé feature frequently. I have a Logitech mouse with two buttons immediately below the scroll bar, which I use to show all windows or the active application’s windows. Fortunately, Switcher for For Windows mimics the exact same functionality. I had to turn off window animation at work, since it was kind of jerky, but it’s buttery smooth on my Mac Pro at home.
Switcher is a mixed bag. It actually adds features, compared to Exposé. You can middle-click on windows to close them, which is great for cleaning up errant Explorer windows, and you can add the process name and memory consumption to each window preview.
It falls down a bit on complexity. You can filter windows by active application, but only after you trigger it (there isn’t any way to have a second hotkey trigger with the initial filter set to the current application). That’s needlessly completely, but overall this is a great replacement for OS X’s Exposé.
Growl -> Growl for Windows
We make heavy use of Growl, the universal notification system. All of our source control and scheduling systems trigger notifications via Growl over the network. Fortunately for us, Growl for Windows has matured to the point where it works just as well. Growl for Windows supports the same network protocol as Growl for OS X, which means things just keep working like they’re supposed to.
iStat Menus -> Moo0 SystemMonitor
This is one replacement that I’m not too happy with. iStat Menus is a fantastic Swiss army knife of system monitoring for OS X. Tiny graphs show just enough information to tell if your system is thrashing on something, and can be clicked on to show more details if needed.
The Windows world seems to hate that kind of elegance, instead opting to show as many thing as possible persistently. Moo0 SystemMonitor is the best solution I could find. Its monitors are highly configurable, and I was able to tuck it away on one of my monitors fairly innocuously. I dislike constantly-changing numbers, but fortunately you can drop its transparency to the point where it blends in with your wallpaper.
Minutes -> Orzeszek Timer
I will occasionally timebox my attention by working on something uninterrupted for 48 minutes. Minutes is a simple Dashboard widget for OS X that will act as a countdown timer. The best simplistic replacement I could find on Windows was Orzeszek Timer:
Volume Popup -> 3RVX
I only want two things out of my Microsoft multimedia keyboard: Working volume/mute buttons, with on-screen display, and a working play/pause button. Microsoft 64-bit IntelliType drivers are supposed to provide this, but they fail–volume works, with OSD, but the play/pause button just brings iTunes to focus. It doesn’t actually work (and some Googling seems to confirm this).
The drivers themselves aren’t required for the media keys to work–you only need drivers if you’re using the other buttons–so I just uninstalled them. Now my keys work, but I don’t get volume OSD, since Windows 7 doesn’t provide this itself. If you’re on a laptop, or using an Apple keyboard, Apple’s Boot Camp drivers should provide this.
Fortunately, I discovered 3RVX, which is a skinnable volume OSD, initially designed to mimic Mac OS X. If you want the volume bars to line up, one per button press, make sure you set up your volume up/down keys as hotkeys in 3RVX itself, and check “custom volume change amount” with the default of 6.25%. Voila, Mac-like volume OSD!
Butler iTunes Popup -> Custom AHK/iTunes Plugin/Growl Setup
I used Butler on OS X for two things: text snippets and its “now playing” iTunes popup. Growl for Windows has an iTunes plugin that will growl on track changes, but it’s too noisy for me. I don’t want to know each and every track that I play (or that the Shoutcast station I’m listening to is playing). Rather, I hear a catchy part of a song and want to quickly know what’s playing without switching out my active window. My ideal setup is a global hotkey triggering an on-demand now playing popup.
Growl for Windows is an open-source project, so I quickly looked at modifying their Growl for iTunes plugin to optionally trigger from a global hotkey. That’s a bit out of my depth, so I went with one of my strengths instead: Cobbling together a bunch of systems!
First, I use the AMIP iTunes plugin. This plugin can do a few things, but all I have it do is maintain an iTunes.txt file in My Documents. This file is either blank, if nothing is playing, or it contains the name of the currently-playing track. Note that the Now Playing iTunes plugin does the same thing, but doesn’t handle Shoutcast (it will just tell you the station name, not the song name from the Shoutcast metadata).
Next, I simply use an AutoHotkey script to pipe this file to Growl for Window’s provided growlnotify.exe utility when I press a global hotkey.
FileRead, Song, %A_MyDocuments%\itunes.txt
Run “C:\Program Files (x86)\Growl for Windows\growlnotify.exe” /i:”.\icons\itunes.png” /t:”%Song%” /r:”Now Playing” /n:”Now Playing” /a:”Now Playing” “iTunes”
This is a bit of a hack, but at the same time it’s a useful setup–it’s nice to have a quick AHK->Growl pipeline working, which I can use for all kinds of quick stat checking.
Windows 7 is too dumb to handle multi-monitor wallpapers out of the box. I used DisplayFusion to do this. It has its own hooks/hotkeys, too, but you don’t have to run it persistently to keep your multi-monitor wallpaper working.
I run a 37″ Westinghouse in 1080p, with a 24″ Dell in portrait mode next to it. Great for coding/IM plus media/games! My wallpaper images are from the excellent Blatte’s Backgrounds.
- Windows-1, Windows-2, Windows-3, etc will launch programs pinned to that position in your dock. This is pretty nice.
- Shift-Windows-X will launch another instance (ie another Explorer window, another Firefox window), as opposite to bringing it back into focus.
- Ctrl-Shift-Windows-X will launch a pinned dock application with administrative privileges.
- Ctrl-clicking on a dock icon will cycle through that application’s open windows. This solved a big annoyance for me with Digsby; I know I have a new IM waiting, but to get to it I would have to click twice (once to bring up the thumbnails to all Digsby windows, and once to click on my IM window). Control-clicking on the Digsby icon will bring you to the last Digsby window!
- Windows-Left, Windows-Right will align the current window left/right, maximum height. Handy to throw two windows side by side.
- Windows-Up, Windows-Down will maximize or minimize the current window.
- Shift-Windows-Left, Shift-Windows-Right will move the current window between monitors (in a multi-monitor setup). Works on maximized windows, too, which is great.
- Shift-Windows-Up will maximize the height of the current window (but not its width).
- Shift-Right-Click a folder or file will show additional context menu items. For a folder this includes “open command window here”, and for a file “copy as path”. Both are great if you do any command-line work.
- Windows-Space will show your desktop. I guess this is to peek at any Gadgets you have installed, but so far I haven’t found any compelling gadgets.
- Windows-+ and Windows– (minus) will zoom in and out at the operating system level.
- Screenshots can be taken with the “Snipping” tool. Just use the start menu search to whip it open.
Things I’ll Miss – Spotlight Menu Search
Spotlight menu search is a massive time saver on a Mac. OS X enforces a system-wide paradigm for menu items. There is only one active menu bar, and it’s for the active application. Because of this homogeneous setup, Apple can do things like search this menu. This is amazing for big applications–want to do a hue shift in Photoshop, but can’t remember where it’s hiding? Hit cmd-shift-?, type ‘hue’, and voila–it’ll even show you where in the menu it’s located if you arrow down to it:
I would surprised if something this universal is even possible on Windows 7.
Things I’ll Miss – Quick Look
Quick Look is a feature of the Mac Finder–press space, and whatever file you have highlighted will preview. Look at PSDs, PDFs, listen to audio files, watch videos, and generally get an idea of what it is you’re dealing with. Super-fast, super useful. Windows 7 thumbnails and previews are getting better, but Quick Look’s reliability and speed is something I’ll miss.
Is there a universal preview application for Windows that can compete with this?
Gripes – File System
The only thing that really bugs me about Windows itself is how slow file operations can be. I guess NTFS is in dire need of an overhaul–that “new technology” moniker is pretty old now–because Mac OS X can do much, much faster file/folder manipulation than Windows (and I’m running my Windows 7 install on a Intel X-25 SSD). Duplicating a 500MB, several-thousand-file Unity project is quite fast on OS X, but super slow on Windows. Even worse, Windows actually sanitizes folder names, which breaks the project. We space-prefix some folders, which makes perfect sense inside of Unity, and Windows will actually scrub those for you.
Gripes – Unity
This is pretty specific to game developers using the excellent Unity engine (and for the record, we absolutely love Unity). But Unity’s Windows version is noticeably slower than its Mac counterpart. This makes sense, since Unity was Mac-only for much of its life. Going from clicking play to interacting with your content is probably 50% or more slower, on the exact same hardware, and pressing stop will actually lock your entire system while it thinks (no more clicking stop and tabbing over to your code editor while Unity cleans itself up). In general things are slower, quirkier, and crashier. Hopefully Unity 3.0 will see more speed/stability parity between the two operating systems, since Windows is now in on the ground floor.
The tipping point for me on the OS transition, by the way, was the ease in which we added XInput support to Unity for Off-Road Velociraptor Safari development. I really wanted rumble for our publisher demo version, and it was actually easier to move my desktop to Windows than to bother with a custom Mac plugin that somehow supported vibration.
That sums up my discoveries a few days into my Mac-to-Windows switch. There are some missing elements still, but so far I’m happy with the functionality I’ve been able to put together. What must-have Windows 7 applications have I missed (particularly anything from any one-time Mac users)?
Thanks for posting this. I’m an XP user and will be moving to System 7 soon. There’s a couple of handy tools listed here that I’ll check out.
Power to the PC! 🙂
I’ve been using OSX for almost 2 years, and I can definitely see where you’re coming from with the inconvenience of not using Windows when it comes to interacting with other developers. I keep a Windows running laptop handy at all times, which tends to cover me for all the situations you mention.
I’m thankful for this entry though, because I really wanted a Windows equivalent of Expose. 🙂
I hope the transition back is going smoothly for you. Every time I have to boot into Windows (for MotionBuilder or whatever) I instantly feel dumber, slower, and less creative.
Thanks for the iStat link by the way—this program is great!
Interesting list, always nice to see perspective from a fellow switcher-backer (I’m currently in the process of trying to sell my MacBook, having gone back to an all-Windows environment since it suits me better as a .NET developer).
I do take minor issue with one thing though — I personally prefer Pidgin over Digsby. Digsby works well enough, but I just think its interface is way too cluttered. That said, I’m definitely biased because I’ve been using Pidgin for at least six or seven years now and kind of compare everything else to it.
Just wanted to give it a quick mention, though. Hope the switch continues going well for you. 🙂
I too have had a need run in Windows 7 for some Windows game development during the day (although I still prefer running it on Apple hardware, and the laptop gets switched back to OS X on my own time).
Thanks for the links that look like they’ll make the time spent in Windows a little easier to tolerate. I also appreciate the link to iStat Menus for OS X. I’ve been using MenuMeters for some time, but like the addition of temperature monitoring and the ability to see which processes are eating CPU time (even if the uninvited cases are almost always a case of something using Flash in a browser)
Is there a similar software like 3RVX but mimic screen brightness control in OSX? I am a Mac user switching back to win because of work… really miss that function
Try Launchy as a spotlight replacement. Its not as comprehensive but is extensible and works pretty well when you get used to it. I rarely use the start menu these days because of it.
I know this is super old, but you don’t even really need spotlight or launchy on Windows 7. Just press the windows key then type in whatever you want to search or run and press enter. It works great. It doesn’t have that sweet in-application menu searching that OSX has, but it does everything else really well.
Want to run Photoshop? Press windows key, type “pho” and press enter.
Want to change sound settings? Press windows key, type “sound settings”, press enter.
Want to go to program files? Press windows key, type “\program files”, press enter.
You get the idea. It’s pretty awesome, and it makes me not miss quicksilver at all.
A bit late to leave a comment, but…. I too recently switched from OS X to Win7.
I was going to write a long diatribe, but in essence, I had been using Mac hardware + OS for decades. I just realised I was worshiping a false god, walked out of the temple and into the sunlight 🙂
PS. My new mini laptop was one sixth the price of a new MacBook Air of almost identical specs. ONE SIXTH !!
I actually moved back to OS X a few months after writing this 😉
Another late reply – Thanks for writing this article. I hadn’t read it in full when you initially published, but after constant disappointment with WinXP64+Unity on my macbook, and a complete and utter failure for Win7+Anything on the same hardware, I finally gave up and just decided to move to OSX for good (I still have my Win64 desktop for PC apps). Then I remembered this post and thought I’d look it up to see what you’d left behind. It seems like most of your complaints could be solved with a second Win-only box, and I’ve got that covered. Happily this article just confirmed that, and also provided me with a ton of magic toys for an OS that is essentially alien to me (but so far superior). Thanks a ton for writing this, and I wish you updated more! (all your sites, for that matter). 🙂
I love my Mac, I really really do. But it several years old. My primary reason for owning a Mac disappeared with Final Cut Pro X. The price of a professional machine can no longer be justified. Linux does not have the software I need, or if it does it cost a fortune (I can afford After Effects, I can’t afford NUKE.). So I am considering very carefully if I should switch back to windows.