Hacker News new | ask | show | jobs
by oahziur 4081 days ago
I think OS X is really missing a good tiling window managers for developers. I think it is the only pain point that I found when using OS X.
3 comments

Is it only me that seems to not care whatsoever about tiling window managers? I've tried them on Linux, for a good solid two months, still don't understand the fascination.

On OS X, I just use Expose or Cmd-Tab and Cmd-` shortcuts. I used to use Slate, but then ultimately gave that up as well. Maybe I use a retina screen at 1920x1200 so I can have a lot of screen real estate, but I haven't found the need to have a tiling wm at work either.

De gustibus non est disputandum.

That being said: at home, I use a tiling WM exclusively (dwm), and the main attractions for me is that it's (a) uncluttered and (b) fast.

Not just fast because the WM is snappy (though dwm certainly is), but because a whole layer of decisions on moving and positioning windows is taken away.

I use three main layouts, none of which require me to do anything except start applications (and maybe switch workspace and possibly tiling mode):

1) Full screen -- e.g., web browsing.

2) Two windows side by side -- e.g., text editor & REPL.

3) Variation on #2 where there's more than one window stacked on the right -- e.g., a spare terminal for general file management or whatever. Swapping windows from the 'stack' to the 'master' area is a single keyboard operation.

I have nine workspaces to play with (pedantic point: dwm uses 'tags' rather than workspaces, but for the purposes of this discussion they can be considered the same), so I can keep different tasks cleanly separated.

And almost all WM tasks can be done from the keyboard: the only exceptions are moving and resizing floating (non-tiled) windows, which I almost never need to do.

I don't insist on the tiling WM — they certainly don't work for everyone —, but I feel OS X's default WM falls on its face in a lot of cases simply as a "normal" style WM.

You mention Cmd+Tab and Cmd+`, which is a good example. Typically, I'd say I have a working set of windows consisting of gvim, iTerm2, a web browser (docs, research, etc.) and Hipchat. Cmd+Tab switches between applications, which isn't quite appropriate here: first, it doesn't consistently highlight the highest window in the Z-stack for the application being switched to, and it drags all windows of that application to the top of the Z-stack, which very often includes windows I am not interested in. Cmd+` can correct for this, somewhat. What I really need is just straight manipulation of the Z-stack.[1]

I use Expose extensively, but I find I use it because I lack a good method above.

I think one of the big draws to a tiling WM is that it allows efficient layout of windows, especially if you're coming from OS X's WM. Consider that OS X's WM's resize catchment area (the "border") is impossibly small; grabbing it with the pointer in OS X is a consistently jarring experience IMO — small resize catchments work better in a WM that allows you to resize with a keyboard+mouse shortcut. E.g., in MATE, if I hold Alt, I can click and drag anywhere within the entire area of the window to resize; this is much more fluid, and requires considerably less concentration to perform. (I can similarly move windows, which requires grabbing the title bar on OS X, but this is somewhat less difficult.) Note that I can do this the OS X way in MATE too: grabbing the edge works. I'd add that MATE also "snaps" windows to the edges of the screen, and to each other, which IMO also aids quick layouts.

[1]: This is a big reason for why I run MATE at home. Good old Alt+Tab.

Witch by Many Tricks http://manytricks.com/witch/ solves (for me) the app/windows switching problem with OS X. I started using it years ago because cmd+` is a 3 (4 with shift) key combination on my Italian keyboard but it's a very useful piece of software. (I'm only an happy user of it).
With BetterTouchTool[1] you can both move and resize by combining keypresses with mouse movement; for example, I have it set so that holding Option will move a window along with my mouse cursor, and Option+Shift will likewise resize a window. No dragging needed, actually. It has a metric ton of other features, but these are the only ones I use.

Also, Spectacle[2] gives you most of the benefits of a tiling window manager without actually having to run one. I have Command+Option+{Left,Right} set to move and resize a window to the left or right vertical halves of my screen, and I use those combinations constantly.

Further, I second the sibling's recommendation for Witch. If buying a license hadn't removed the "You have used this X times" counter, I'd tell you how many times I've used it, but it's easily in the hundreds of thousands.

[1]: http://www.bettertouchtool.net/ [2]: http://spectacleapp.com/

For me it was the better handling of multiple displays. With a tiling window manager (in my case, i3), windows expand or contract nicely when I dock my laptop and they move to the two displays on my desk. With a regular window manager I was always wasting time moving them from one display to another or resizing them.

I believe that being keyboard centric also made a big difference. I still use the mouse some but I mostly use the keyboard to move around workspaces and windows and the tiling window manager is very amenable to that workflow.

When using OSX, I haven't been very happy with the tiling solutions available. They all frustrate me in one way or another. And, in terms of the way my desktop looks, I'm okay with it being... well, maybe not the most aesthetically pleasing desktop around.

No. I don't get it either. As long as you don't insist on having every window maximized, I don't see any benefit to tiling window managers at all. Simply clicking the window you want to use, along with Exposé is more than enough for me.
How do you keep the window you want to use visible and distinguishable? If you ever drag windows around to find the one you want, a tiling WM could help you.
The only pain point? Really? How about not breaking every "posix compliant" header for every release so I don't have to wait 4-6 months before I can reliable compile open source software without hacking someone else's impossibly baroque build to install routine libraries? How about having an actual package manager instead of relying on third parties (thank you homebrew)? How about one fucking key press to dismiss notifications that pop up over the fucking thing I'm fucking looking at right now? These are just three random things that filled me with rage today. Peace out.
>How about one fucking key press to dismiss notifications that pop up over the fucking thing I'm fucking looking at right now?

You can fix this in the keybord section of system preferences, or just run this:

    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
This one makes the file browser windows expand by default:

    defaults write com.apple.finder FXInfoPanesExpanded -dict General -bool true
lots more of them out there.
spectacle isn't bad, its not full tiling window manager, but it helps you get by in the absence of one.

http://spectacleapp.com/

Yes - I use Spectacle constantly. I looked for years for a good tiling window manager - at least once every three-four months I would go searching the web, and wondering "Why has nobody built a decent tiling window manager."

Spectacle does 60% of what I want, and the keyboard shortcuts for it are in my finger DNA. Works particularly well on a 13" Macbook Air. But I'm still holding out for a proper tiling window manager - one of these days...

I think "slate" is a bit more powerful than spectacleapp. However, the experience is far away from something like Xmonad and i3wm on Linux.

https://github.com/jigish/slate