Xmonad – A dynamically tiling X11 window manager
xmonad.org
xmonad.org
While xmonad is nice, and haskell is nice, the haskell eco system is a PITA. And things break a lot(using cabal). And somehow, after a long time of no changes my xmonad will no longer recompile. Trying to update the haskell stuff just turned out to be a HUGE pain. Also the libraries take up way too much space because you have to have then in different ways. I forgot how it went, but having xmonad(a small wm) required something like 1 to 1,5gb of harddrive space.
Any i3 users want to pipe up and enlighten me on how I could go about configuring i3 so that I can switch to any workspace on a particular screen?
If you really do want to compile your window manager from source, newer versions of cabal, the Haskell package manager, have something called sandboxes which basically remedy the problems you're talking about. I don't recommend compiling from source unless you know what you're doing though and if you're not using sandboxes, you probably don't.
If you don't have previous Haskell experience, then other window managers like i3 or bspwm might be more comfortable.
right now awesomewm does everything i need and config being in lua helps a ton with readability and flexibility.
Super+e to open emacs, and then having emacs automatically sent/assigned to the tag/workspace titled "emacs"? Love it.
But my fav is having the "Menu" key bound to "open urxvt". Super convenient.
I can do all of that in i3 with a simple text editor.
There's a bug open for KDE explicitly asking for xmonad-like mutiple monitor support, which is marked WONTFIX as a result. But yes, I absolutely adore xmonad's take on it, and it's well worth the occasional glitches.
My biggest beef with xmonad is that its configuration file is itself Haskell source code. So even if xmonad is the only Haskell project I use, I have to pull in GHC to compile my configuration. Since I'm not a Haskell guy, this means that I'm easily tipped off the cliff into cabal hell, which is not where I want to be when updating my WM config. For all that, xmonad is great when it works, and I stuck with it from 2011 to 2014 before moving on to i3.
Even Haskell people find themselves easily in the cabal hell. Everyone is aware of the issue, but it's still not solved.
It's possible this situation has improved since last year, when I switched to i3, but it can never be fully rectified as long as the config file is itself Haskell source. I find it surprising that, despite the Haskell community's claims that Haskell is great for writing domain-specific languages, xmonad does not expose a DSL for you to configure it with.
I presume it's nice that you can actually customize xmonad with code. So an appropriate DSL would be a programming language so using Haskell makes sense. Any other DSL would be more limiting.
> If you want your config to use a Haskell package that's not provided by your distro, as many of the config examples do, you're out of luck unless you want to take the cabal route.
I can understand that this would cause pain. I suppose it's up to cabal and/or distros to fix this.
You've hit the nail on the head here --- the problem is that xmonad offers an unlimited scope for configuration, including extensions to the behavior of xmonad. I'd rather see a clear separation between mechanisms for configuration and extension, even if that reduces the power of configuration.
It would be different if there was a lot of configuration to do, but simplicity is the whole point here.
But perhaps the greatest thing about Xmonad is that it can lead you to Haskell and to functional programming in general, and I think this is one of the most useful and beautiful discoveries a developer can make. Your Javascript or your PHP will get better just by looking at some Haskell :)
Eventually I found gaming not to be a good enough reason to use windows as my main os, and now only boot into it if I really wanna play something I can't run in linux/under wine. Window management is my biggest technical/functional gripe with windows. AwesomeWM is just... awesome.
qwe
asd
zxc
...to move windows into corners, sides, or the center of the screen. Hitting the same key over and over re-sizes it to take up more or less of the screen. It's sadly no longer being developed, but works fine on Win8 and Win10 (and so probably will continue to work into the foreseeable future).
Written in C# and can be configured via Ruby or Python. Have been using it for more than a year after previously using bug.n.
It works pretty much like xmonad or awesomewm once you edit the keybindings. Unfortunately it doesn't have the same phenomenal multi-monitor support xmonad provides on linux. It works within the usual windows confines[0]. With xmonad/linux, each workspace is independent of the displays. With pwt/windows, each workspace uses the entire logical display surface.
[0]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms6...
I made this fork of an actual project in the hopes that this joke would one day become relevant... unfortunately I'm not that juvenile anymore so now it just sort of feels stupid: https://github.com/ranman/xgonads
Configurable using Lua, though I've actually changed almost nothing.
Lua is not a great scripting language, but its biggest strength is its dog-simplicity. There just aren't a lot of places for bugs to hide in it.
Further, "xmonad --recompile && xmonad --restart" is not that taxing on the rare occasion you change your configuration.
I can't say I regret it at all.
Although it is written in Haskell, I find the configuration pretty easy to use and manipulate. It's incredibly powerful and extremely lightweight when compared to other tiling managers.
TLDR; XMonad is my favorite tiling window manager.
TBH, though, I didn't miss tiling WMs much after switching to OS X, mostly because I spend 95% of my time in Chrome with hella tabs, terminal with screen and Emacs.
In a way its a pity this story popped up today. There's been talk on the mailing list just a week or two ago about a new release "real soon now". I assumed this story was the announcement of the new release, until I clicked thru and studied a bit.
Its not a GUI environment but a window manager along the philosophical lines of do one thing and do it very well. Once it works, which it does, its hard to find something to change unless the API changes for X (unlikely).
>What to Submit
>On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity.
Also from the submission guidelines:
>Please don't submit comments complaining that a submission is inappropriate for the site. If you think a story is spam or off-topic, flag it by clicking on its "flag" link. (Not all users will see this; there is a karma threshold.) If you think a comment is egregious, click on its timestamp to go to its page, then click "flag" at the top.
Also from the guidelines: Please don't submit comments complaining that a submission is inappropriate for the site. If you think a story is spam or off-topic, flag it by clicking on its "flag" link.
Sometimes it's OK in a community focused on a topic like "tech things" to remind everyone that something exists. Also, as HN is growing, and as a large portion of the people on this site are young (e.g. recent grads, new in the programming field, or even still undergrads) this is their first exposure. It's ok that we get beginner level articles - e.g. most of the tutorials linked here describe stuff that has been around for a long time and tutorialed many times before. It's still ok. It gets people exposed in a way that is useful.
Us old hands can add to the discussion by pointing out new features, or better articles or advanced stuff. It's much more productive than complaining that "i already knew this".