I used FreeBSD on desktop for a number of years and switched over to OSX and I've been through some of the window management pain. I generally do as much as I can with keyboard hotkeys but I do have a trackpad connected to my desktop now as well.
As far as window management, I use contexts for my switcher, rectangle for hotkey-based window management, and stay for automated per-app & per-display window management