I got bored and made a WM
It's been almost a month since I've been working on my own WM called skunkWM, and to be fair, the experience has been more interesting than anything.Beforehand, I hadn't really had any interesting projects under my belt, besides some contributions in terms of game hacking. Which gave me some basic knowledge in C++ and C. And the day I decided to daily drive Linux (more specifically Void Linux),
it came to my mindthe very annoying question of which DE or WM I would use !!!!!
Not to sound pessimistic, but the current state of new WMs or original projects has kinda come to an end.
Nowadays, we see rices that look similar on a daily basis... same WM, same type of wallpaper, just like Ouroboros.
I don't wanna claim that everyone needs to be different, but everyone needs to be themselves and actually like what they like, not like the trending stuff they saw on Reddit. Even if your shitty desktop looks generic, who GIVES A FUCK? It's yours.
Now that I'm done ranting, let's talk about SkunkWM.
I personally wanted something that gave me more freedom when I work/browse/procrastinate. I kinda found it by using niri.
I found the concept of a scrolling WM very interesting, and I had fun with it for around 2-3 months.
But sadly, I kinda grew bored of it. But I had to deal with it, until one random night while scrolling on TikTok...
I found this fork of DWM called vxwm, and I loved the idea instantly. The idea that the user's desktop becomes an infinite canvas was amazing to me.
In the past, I've already used DWM for its minimalism, but the fact that for more customisation you need to apply patches kinda rubbed me the wrong way. Especially for people who are new to Linux. We're in 2026, and every day more and more people are becoming interested in Linux. Why not make things more beginner-friendly? (In terms of customisation)
And BOOM, skunkWM was born: a fork of vxwm, but more beginner-friendly.
What I mean by more beginner-friendly is that I successfully implemented a config system, which lets the user not recompile every time they wanna change something. You compile once and BOOM, you only have to edit your config in .config/skunkwm/skunk.conf.
Luckily for me, vxwm was already well organised and some patches were already implemented, like: autostart, gaps and fullscreen. But on top of that, I added: systray, swallow and dragspawn. We'll talk more about dragspawn in a bit.
I wanted to make my config system similar to i3/sway: just a blank text file where you remove and add whatever you need, reload it, and wow, you've customised it without killing your session. Which would really be time-consuming if you have a "complicated" config. But after multiple cigarettes and coffees, I successfully implemented it.
Small example:
Let's go back to dragspawn. This is a feature I've seen on a Wayland compositor called Hevel the and os Plan 9.
"Shoutout to wayland.fyi for making wayland minimalist and giving some fresh air to this community."
Dragspawn is a "simple" way to create a new terminal. Pressing your usual keybinds is too boring!! Am I right?
How about you decide the size and position yourself by using your mouse?
Small example v2:
SkunkWM was more of a challenge to me at the end of the day. I'm not the best coder, I'm not the best at what I'm doing, but...
I love improving every day.
If you're interested in testing skunkWM, here are the repos.
divine.gift
- Adok ʕ•ʷ•ʔ