Does anyone know how it handles multiple monitors? I recently switched from xmonad to awesome and while I'm happy with it, having a separate set of screens for each monitor is pretty annoying.
It's been said before but everyone writing a tiling window manager should make it work just like xmonad does for multiple screens, they really got it perfect.
Wingo[1] (a window manager I wrote in Go) will do it right like Xmonad. Like you, I hate how most WMs handle multiple monitors, and Xmonad got that right.
(Wingo is a true hybrid WM. I like to describe it as "Openbox meets Xmonad.")
Cool, I'll give it a go and hope that it's as helpful in getting into Go as xmonad was haskell, nothing like having your basic interaction mechanisms bug you to motivate you to dig into the code.
Hmm, so what is it about Xmonad that you like exactly? Reading the FAQ I see this:
> When xmonad starts, workspace 1 is on screen 1, workspace 2 is on screen 2, etc. When switching workspaces to one that is already visible, the current and visible workspaces are swapped.
I actually like how Awesome does things but I can see how it might be nice to have one set of screens. Though I feel like you could probably script the keybindings to achieve more or less that functionality yourself, it's really easy to mess around with that kind of thing in Lua. Personally I feel like usually since my monitors are of vastly different size (laptop vs external monitor) I actually prefer to have specific layouts on specific monitors.
Actually this one is not an easily scriptable thing. I dove deep on this one.
The main use case I miss is this one. I work with two monitors, either a 30" and a sideways 24" or a 30" and my laptop screen.
Gvim, terminal windows, etc on the primary and web browser on the secondary. Works fine in xmonad and awesome.
But then I have something unusual, maybe I have a screen with a mitm proxy and a detached chromium devtools or console and a repl all layed out nicely to debug something. Aha, I think I found it, let me look at the code ... shit, I layed these out on my primary.
With xmonad I can throw that whole screen over to the secondary, might have to adjust a bit because of the resolution difference but that's way easier than having to move each app over individually which just completely breaks flow.
I tried to script it but it just ends up a mess because you do have to move each application individually and they always require a lot of fiddling.
Lua is very easy to mess around with, my first day with awesome I couldn't find a battery monitor that I liked and that worked with my laptop so I just wrote one that's perfect. Took about 2 hours since I had never written Lua before. The docs were quite good.
Xmonad should take note, have some actual documentation. Auto-generated garbage consisting solely of type signatures doesn't count.
Qtile has a set of virtual desktops ("groups" in qtile lingo), and you can display any group on any monitor, rather than having one group that maps to your pair of monitors. I find this behavior very handy.
EDIT: to clarify, it functions in essentially the same fundamental way xmonad's does.
The way awesome uses multiple monitors (stack of virtualbox desktops per monitor) really Worms for me and is why i'm sticking with awesome.
I really do'nt understand why people have huilt so Manu different tiling WM's and have not improved/extended existing ones. The fragmentation hurts the a adoption.
That I will definitely miss if I moved away. Maybe it's just my years with XMonad but I don't use it that often, I mostly only want to move one window around, rarely groups.
The only time I move entire groups is to push it to the other monitor which is the one thing it can't do.
I'm not sure how Xmonad and AwesomeWM handle multiple monitors, but in Qtile you have a single set of groups (analagous to tags or workspaces) shared between your monitors, and each monitor displays one group.
There's core support for multiple screens it in the basic window management model, along with hooks for xrandr refreshes. Pretty much everything you need.
Ease of configuration tweaks and number of plugin contributors. And I can write Haskell code well enough, I've even had some in production, but it was still a pain to try and navigate the types in the configuration, especially trying to get two separate plugins/libs to work together.
Mostly it was the plugin community, which is much larger for awesome and the shared philosophy of the community is very unix-y/small tools focused which is great and makes up for the copy/paste script-kiddy side of it.
Damn do I miss proper monitor support though, luckily I did kinda keep a separation between my main monitor and secondary naturally so it's not as painful for me as it would be for some.
It's been said before but everyone writing a tiling window manager should make it work just like xmonad does for multiple screens, they really got it perfect.