Hacker News new | ask | show | jobs
by sevensor 4089 days ago
> If you don't have previous Haskell experience, then other window managers like i3 or bspwm might be more comfortable.

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.

2 comments

> Since I'm not a Haskell guy, this means that I'm easily tipped off the cliff into cabal hell

Even Haskell people find themselves easily in the cabal hell. Everyone is aware of the issue, but it's still not solved.

My distribution maintainers deal with the cabal hell so I don't have to. I just use the xmonad package and it just works, including with a configuration file.
I found that this approach worked right up to the point where I tried to make non-trivial changes to the config, following examples from the xmonad website. 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.

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 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.

> 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.

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.