Using Xmonad on OS X
wiki.haskell.org
wiki.haskell.org
[0]: https://www.spectacleapp.com/ [1]: https://apple.stackexchange.com/questions/9659/what-window-m...
> The reasonable solution is to use one of the many native tiling applications for OSX.
As an i3 user (and former wmii user, and former xmonad user), I find it really frustrating to use tiling window management that doesn't support focus-follows-mouse. This rules out things like Spectacle, Divvy, etc. At a second level, I find that all of OS X's tiling applications have inferior support for workspaces on dual-monitor setups compared to i3/wmii[0] and xmonad.
Unfortunately, on Aqua (OS X), there's basically no way to do proper focus-follows-mouse support. There is one app that fakes it (I think Amethyst), but the latency is annoyingly high.
[0] heck, wmii has better support for workspaces on dual-monitor setups, which is saying something, because it literally doesn't have support for dual monitors at all - you can only run dual-head X11, which is a terrible hack.
For me i3 strikes the sweetspot of dead simple config, incredible feature set, and performance. This after coming from Awesome WM where I found myself spending way too much time tweaking Lua script to get things pixel perfect, which you basically get out of the box for free with i3.
Since xmonad is a Haskell library, you need the compiler. There's a reason why ghc is so big compared to other compilers, but just because it is a big dependency, it doesn't make xmonad any less lightweight
This is why I use dwm, because I don't know C and thus I can't configure it, and thus I use what I have and use the time I'd spend to configure it to do other things. Another reason is that I can just check it in to my dotfiles.
This is a killer feature for me, and I've never found any other WM capable of doing that.
The two things I liked to most were Mod+e or Mod+w to change focus to the previous and next monitor, and the ability to actually move an entire workspace to another monitor with the press of a button.
This is obviously just my opinion. In the end, it's a mere matter of personal choice.
Even i3? I've only ever used i3 on two monitors[0], but it's been great for that. I'd also be a little surprised, just because multi-monitor support was quite literally the reason that i3 was created (wmii does not support dual monitors).
[0] I'd love to hook up my third monitor, but I much prefer having 2 4K screens at 60Hz to having 3 4K screens at 30Hz
How on earth do you throw windows from the leftmost monitor to the rightmost easily?!
Aqua is the default window manager[0] for OS X, so any default OS X applications will be using Aqua-based windows. When I say "focus follows mouse doesn't work in Aqua", I'm saying that you can't get (proper) focus follows mouse behavior on "regular" OS X application windows, no matter what other user-level program you install to handle window management.
You can decide to use something that only manages X11 windows (which is what XMonad does), but then you're stuck using only X11 applications. (Back when I tried it, even getting an up-to-date X11 build of Firefox on OS X was a pain).
[0] I don't think the term "window manager" is quite correct here, but since OS X divides things up differently from how Linux/X11 work, it's the most analogous concept.
https://en.wikipedia.org/wiki/Quartz_Compositor
(Hence the name "XQuartz" for the X11 display server.)
I used xmonad a lot when I was using linux but haven't tried it out on OS X. I'll give this a try.
It's the successor to Mjolnir listed on that Stackexchange post. A group of people forked it because Mjolnir was a bit fiddly since you need to use a Lua package manager to install extensions for Mjolnir. Plus, Hammerspoon is pretty actively developed while I don't think Mjolnir has had an update in a very long time.
Nuf said.
https://github.com/koekeishiya/kwm
It's quite pretty: http://imgur.com/a/tWBSg
The settings is Preferences -> Profiles -> Window and then select "No Title Bar" in the drop-down for style.
The only little glitch is that you need ghc to use it and that's a rather big dependency.
[1] https://github.com/kasper/phoenix
[&] https://github.com/kasper/phoenix/wiki#examples
[2] https://gist.github.com/michaelsbradleyjr/e641907e3b1576fe34...