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