mirror of
https://gitlab.com/EternalWanderer/voidcruiser.nl
synced 2024-11-29 04:13:51 +01:00
Window manager draft
This commit is contained in:
parent
182c1db205
commit
c852d39730
95
content/rambles/windowmanagers.md
Normal file
95
content/rambles/windowmanagers.md
Normal file
|
@ -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.
|
BIN
static/images/xkcd/borrow_your_laptop.png
Normal file
BIN
static/images/xkcd/borrow_your_laptop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Loading…
Reference in a new issue