I set my window layout up once at the start of a multi-hour working session. Most of the time, that's either 1) a large MacVim window and a terminal or 2) that plus a browser. It takes ~10 seconds to get it how I like it. After that, cmd+tab works just fine.
Even on my 27" display, I usually prefer to have a little overlap where all three windows rest in such a way as to permit the most relevant bits to be visible simultaneously, while allowing for overall larger space when an individual app is focused. Tiling window managers tend to distort windows to less than ideal proportions, as they strictly eliminate overlap. That said, I utilize splits (ie tiling) within vim to great extent.
(1) Browser: pinned and now open (1 tab only). (2) Windows Explorer: pinned, open, several windows. (3) Windows media player, pinned, closed. (4) Notepad: not pinned, but open.
Win+1 will bring the browser to the front, unless it's already there, in which case it will minimize it.
Win+2 will bring a Windows Explorer window to the front, and if you keep pressing it will cycle between them.
Win+3 will obviously open Windows Media Player,
Win+4 will bring Notepad to the front.
Win + shift + number will start a new instance of the application in that taskbar position (multiple explorer windows, for example).
Win + shift + left/right will move the current focused window between monitors.
On OS X, that's SizeUp (or Divvy, ...) with a custom grid to suit my screen and then I never have to use the mouse to move/resize windows.
On the other hand, Spectacle (also open source) is supported and it doesn't require XQuartz. That said, I don't like Spectacle default shortcuts (hard to remember for me and there's a conflict with Chrome switch-tab command). I now use http://spectacleapp.com, but with ShiftIt-inspired configuration:
https://raw.githubusercontent.com/fikovnik/ShiftIt/develop/d...
Haven't tried the new version of Hyrda yet.
I like tiling in general but doing it well requires a big monitor.
If I'm coding in Clojure, I have a vim window on the left, and a repl and a plain terminal (mostly for leiningen and git commands) stacked on the right. I could set this up in a traditional WM: but [a] it would take (a bit) more initial effort and [b] more importantly, with dwm I can temporarily bring in extra windows (e.g. a web browser) and then get rid of them again without having to restore my layout from scratch.
I agree with you about focus follow mouse (though it can be more trouble than it's worth if you have an overly sensitive trackpad).
This "manual tiling" approach is also probably the only viable option for tiling-like window management on OS X. While not nearly as powerful or productivity-promoting as the above-mentioned WMs or conventional tiling ones, the OS X program Spectacle (http://spectacleapp.com) makes life a lot easier on OS X for those of us who are used to the screen real estate and keyboard control afforded by tiling WMs.
Edit: Another commenter mentioned the non-free Optimal Layout (http://most-advantageous.com/optimal-layout) for OS X. I haven't downloaded the trial yet, but the website makes it look very promising.
Often when I'm done working, I end up closing perhaps a dozen scratch terminal windows.
When I have some time to experiment, I'd like to look at replacing Optimal Layout with mjolnir[4] or one of the similar tools listed in mjolnir's README, under Mjolnir vs. other apps.[5] Amethyst[6] looks like another option worthy of consideration.
[1] http://most-advantageous.com/optimal-layout/
[2] http://robots.thoughtbot.com/a-tmux-crash-course
[4] https://github.com/sdegutis/mjolnir
[5] https://github.com/sdegutis/mjolnir#mjolnir-vs-other-apps
Another one you might want to look at is Witch[1]. I've tried it before but it never really "stuck" for me. Maybe I should give it another shot. Witch isn't a window manager though, it's only concerned with making it easy to switch between windows rather than laying them out.
Why do you use iTerm2? I've looked at it in the past, but it just feels non-native enough to bug me. I know they advertise tmux integration, but the one time I tried to find out what that actually entailed, it didn't seem to work for me (though I've been told it basically just uses iTerm2 native splits in place of tmux splits).
If you want to enable option-as-meta in Terminal.app, you select the Profile you want in preferences, go to the Keyboard tab, and there's a checkbox at the bottom. This is also where you can customize the bindings for various key sequences, if you think they're wrong.
For instance, my primary development workspace has four columns: three emacs and one terminal with tab support. I don't open/close new emacs windows or new terminal windows, in the same way that I don't open/close new browser windows: I just use tabs within a single window. Likewise, I use multiple open buffers within my emacs windows, and multiple tabs within my terminal windows. If I need a transient terminal, I switch to a different tab or add a new tab.
Opening/closing transient terminals is pure UX overhead, IMO.
(I accidentally killed my X session this morning; everything in tmux survived :) )
Also, scratch terminal windows are solved by TMUX and a single terminal.
wtftw is very interesting. I can't wait to give it a shot.
The problem is if I create a tab, I want it to be at least somewhat related to the other tabs in the window. And even then, I usually use new windows for scratch terminals because I want to see multiple different terminals side-by-side. I could use a vertical tmux split except that shrinks the original terminal, and I want both the original and new terminal to be at their natural size.
Sounds like your use case could be mapped by TMUX windows acting like Terminal tabs, and TMUX sessions acting like multiple Terminal windows. Except the benefit is that now you can use this workflow on any system with a posix compliant shell and a tmux binary (which I'm pretty certain is practically all the things at this point). Sessions and windows can be given labels which is a nice touch too.
If you are an Emacs user, it's also worth noting that TMUX totally works well with ansi-term. :) I normally have a TMUX session dedicated to an ansi-term buffer in Emacs. Even if I have iTerm or Konsole using another session.
"..but transient windows don't need splits"; well, in my universe transient windows are splits. :)
Anyway, I don't want you to think I'm trying to persuade you into adopting what I consider awesome and useful. Just clarifying my statement. It sounds like you already have a workflow, are happy with it, and don't see any need for alteration.
http://manytricks.com/moom/ http://mizage.com/divvy/ http://ianyh.com/amethyst/ http://spectacleapp.com/ https://github.com/fjolnir/xnomad https://itunes.apple.com/us/app/bettersnaptool/id417375580?m... https://github.com/sdegutis/mjolnir