From c852d397304111535b1981e123a082fb65a53a0e Mon Sep 17 00:00:00 2001 From: Marty Sluijtman Date: Fri, 4 Nov 2022 00:42:05 +0100 Subject: [PATCH] Window manager draft --- content/rambles/windowmanagers.md | 95 ++++++++++++++++++++++ static/images/xkcd/borrow_your_laptop.png | Bin 0 -> 26311 bytes 2 files changed, 95 insertions(+) create mode 100644 content/rambles/windowmanagers.md create mode 100644 static/images/xkcd/borrow_your_laptop.png diff --git a/content/rambles/windowmanagers.md b/content/rambles/windowmanagers.md new file mode 100644 index 0000000..9bcf418 --- /dev/null +++ b/content/rambles/windowmanagers.md @@ -0,0 +1,95 @@ +--- +title: "On window managers and XMonad" +date: "2022-11-03T23:17:35+01:00" +author: "$HUMANOID" +tags: ["linux", "window managers"] +description: "A ramble about a highly configurable window manager" +--- + +# My journey into Tiling Window Managers + +When I started my Linux journey, I stuck with GNOME 3something for around the +first year. Sure, I tried KDE and Cinnamon and XFCE, but GNOME is the one I +always kept coming back to. I think it's because it's pretty much the only one +that felt completely different from what the rest of the world was doing. It +helped me with thinking about Linux as being different from windows. After this +first your though, I came across a few videos about tiling window managers and +wanted to try one. The first one I installed was i3. + +I hated it. + +I had a hard time configuring it as I didn't really know what I was doing. Other +than that, I found it plain awkward to use. The way it tiles windows -- and how +you _still_ have to babysit pretty much every last one of them -- drives me away +from i3 to this day. I'm sure it has the potential to be a great window manager. +It's just _really_ not for me. Which is a shame, I would really like to properly +live in Wayland with Sway for at least a little while. + +After a few hours of trying to get things to work in i3, I went back to GNOME. +Some time later, I came across AwesomeWM. It was being recommended as a fairly +easy window manager to start with -- it also having window decorations and it's +own menu system. The first thing I did was try-and fail to rip out said menu +system and window decorations. I was putting too much on myself trying to learn +the basics of both using a tiling window manager and Lua. + +Some time after that, I came across BSPWM. This was the first time where I felt +like I _really_ managed to get a tiling window manger to do what I wanted it to +do. For some odd reason, there are people out there who consider BSPWM a more +"advanced" window manger. I really don't get why. To this day, I am of the +opinion that SXHKD's configuration syntax is some of the best out there. I think +it took me around 10 minutes to wrap my head around the basics. Somewhere around +an afternoon later, I had a config that served well me for the next few months +to come. + +A while after BSPWM, I decided to give suckless' DWM a shot. Despite my lack of +knowledge of C, this very quickly became my favorite window manager at the time. +There is just something about the insanity of using diff files to configure your +piece of software when perfectly functional configuration libraries and +languages exist that got it's hooks in me. I also caught the minimalism bug +around this time, so DWM's nearly non-existent memory footprint was also great. +Despite this really being the first really "advanced" window manager, I had an +easier time configuring it than AwesomeWM or i3. It was also the first time +where I could appreciate the master-stack layout properly and not having to +think about keeping track of windows in two dimensions any more. It made me +realise that I want to have to think as little as possible about window +positioning. It was the reason I couldn't deal with i3's paradigm and shifted +away from BSPWM the moment I found DWM. + +I ran DWM as my main window manger for over a year before having issues with +some fullscreen applications and the JetBrains suite, which I had to use for +college activities. + +{{< img class="stickers" link="https://xkcd.com/1806/" src="/images/xkcd/borrow_your_laptop.png" >}} + +I decided to give AwesomeWM another shot after having figured out what I want +from a tiling window manger. This time I managed to get something that worked +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`). + +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 +arsedly maintain an Alpine package of my fork). + +For quite a long time I used DWM and AwesomeWM depending on whether I was +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. + +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 +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 +status bar as getting a basic configuration going had given me enough grief for +one month. diff --git a/static/images/xkcd/borrow_your_laptop.png b/static/images/xkcd/borrow_your_laptop.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2660450b0c333274812f352ac7cf209ac8a032 GIT binary patch literal 26311 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