From 3683e3913cb61c6a00b29164be6665133a4d5ad6 Mon Sep 17 00:00:00 2001 From: Marty Sluijtman Date: Fri, 4 Nov 2022 17:57:23 +0100 Subject: [PATCH] More on the windowmanager article --- content/rambles/windowmanagers.md | 64 +++++++++++++++++++++++++----- static/images/config_length.png | Bin 0 -> 30481 bytes 2 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 static/images/config_length.png diff --git a/content/rambles/windowmanagers.md b/content/rambles/windowmanagers.md index 9bcf418..37988ba 100644 --- a/content/rambles/windowmanagers.md +++ b/content/rambles/windowmanagers.md @@ -2,7 +2,7 @@ title: "On window managers and XMonad" date: "2022-11-03T23:17:35+01:00" author: "$HUMANOID" -tags: ["linux", "window managers"] +tags: ["linux", "window managers", "xmonad"] description: "A ramble about a highly configurable window manager" --- @@ -67,8 +67,8 @@ pretty much exactly how I wanted it to. In other words, a fairly basic configuration with most of the default features ripped out and instead my partially-organically-grown-probably-batshit-insane-keybindings (I use `Super` + `Space` to open my run launcher. In fact, on my keyboard I have holding the big -space bar (yes it has two space bars, it is about as insane as my window -management keybindings) bound to `Super` + `Space`). +space bar (yes it has two space bars, its layout is about as insane as my +window management keybindings) bound to `Super` + `Space`). To this day I still use DWM quite frequently on machines where I don't really want to think about what graphical interface to chuck on it (hence I half @@ -79,17 +79,61 @@ planning on frequently using fullscreen applications and how strong the machine in question was; AwesomeWM being noticeably slower than DWM on _really_ old machines (like RejuvinatedBrick). Until at some point, I came across XMonad. -I tried it. +I tried it for an evening. -Hated the fact that it's configured in _sodding Haskell_ and went back to DWM. +I hated the fact that it's configured in _sodding Haskell_ and went back to DWM. -A few months later, I came across it's implementation of chorded keys through +A few months later, I came across an implementation of chorded keys through the `XMonad.Util.EZConfig` module and decided to give it another shot. This time I was hooked. -The biggest problem I had with it was _still_ the fact that it was configured in -Haskell, but the level of configurability made it worth dealing with the -functional pain. It was also the first time I decided to not bother with a +The biggest problem I had with it was _still_ the fact that it was configured +in Haskell, but the absurd level of customisability made it worth dealing with +the functional pain. It was also the first time I decided to not bother with a status bar as getting a basic configuration going had given me enough grief for -one month. +one month. + +For a really long time I could tell you how great XMonad was, but that it had +one major caveat: "it's configured in Haskell". Sure, besides Haskell there were +a few other things that I didn't like much. + +As for gripes I had (and partially still have) with XMonad, they were quite few, +surprisingly. Coming from AwesomeWM and DWM, I would've liked XMonad to use tags +instead of workspaces; fullscreen is a bit of a pain to get working, but has +less fuckups than DWM; the fact that it's configured in Haskell; it not having a +set of workspaces per monitor (at least by default, I kind of stopped caring +after a little while); the fact that it's configured in Haskell; the +`XMonad.Layout.ShowWName` module being kind of unstable and last but not least, +the fact that it's configured in _fucking Haskell_. + +It almost seems like I got sick of being sick of it being configured in Haskell +and I decided to dive into learning the language with the goal of being able to +fully understand by monstrous 384 line config file (without the around 200 lines +of documentation in the comments). + +{{< img class="stickers" src="/images/config_length.png" >}} + +So far I don't fully understand it yet at the time of writing, but I do +understand it a hell of a lot better than when I prodoced most of those 300 +lines. + +The greatest thing about XMonad is simultaneously the thing that kept me away +from it: it's written and configured in bloody Haskell. Thus there is barely a +separation configuration and source code. The only difference there _really_ is, +is the filename. Once you understand a bit of Haskell (no small task if you're +used to imperative languages) adding and integrating your own features is really +easy. + +Weird thing with Haskell I'm noticing so far is that I'm slowly but surely +managing to dig up old concepts that I tried to implement in imperative +languages, but couldn't due to their nature. Things like pattern matching and +maps are quite intuitive to me. It's just that the syntax takes a _lot_ of +getting used to. + +I highly recommend giving it a shot if you're willing to bash your head against +the Haskell wall for a while before understanding how your window manager works. + +Looking back I find it quite funny to see how I went from not being able to get +i3 to do what I wanted it too and giving up; to barely being able to write or +understand Haskell but putting up with it. diff --git a/static/images/config_length.png b/static/images/config_length.png new file mode 100644 index 0000000000000000000000000000000000000000..58b87b6bc47ee9a3bc422d0feffbfefd534c5838 GIT binary patch literal 30481 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 literal 0 HcmV?d00001