Strea(w)m
- 4 Devlogs
- 40 Total hours
(Silent w). A floating Wayland compositor. *Now based on dwl.
(Silent w). A floating Wayland compositor. *Now based on dwl.
So a big milestone has been reached, I’m actually using it as my window manager. It definitely useable(though not without bugs), which is really cool. Things like focus switching are really janky and inconsistent though, so I definitely need to fix that. Workspaces also technically exist, but in their current state they’re a bit useless, I’ll work on that soon though (might have to build in a taskbar/dock to fit with the current workspace implentation, haven’t done any research on that yet), once the focus logic is locked down. Also on a slightly related note, why is the 10 hour dev log limit being applied to old dev logs? Was it always a rule?
I spent waaaay too long getting nice looking features using Scenefx, but I got it working (eventually). For some reason it worked for my terminal immediately, then nothing else, Kitty is just better I guess. The majority of my time was spent trying to fix apps losing rounded corners when they got refocused, apparently the patch I was basing my version off was using an older version of Scenefx that used clipping regions instead of inbuilt corner rounding, so it was throwing it off when a window was refocused. Made it through to the other side though, now I’ve just got workspaces, some small tweaks, and a bar to go.
So small changes were made… I switched to dwl as the base of my wm. I ended up finding River harder to use when trying to interface with things like Waybar and Rofi. So far there have been some small hiccups with other peoples’ patches causing small errors, but they weren’t too hard to fix. Got minimise and maximise working, but currently alt tab doesn’t unhide the minimised window, so that’s next. Doesn’t actually look that good right now, but that’ll come after the wrinkles are ironed out.
Recently I’ve been wanting a nice minimal stacking/floating window manager for Wayland, but there aren’t actually very many that keep it super minimal while also looking decent, so I decided to try my hand at making my own. I looked around a bit and came to the conclusion that my option were either do it using dwl or a tinywl fork, or use River, which handles the compositing part for me. I think it’ll be the best option because it abstracts a lot away and implements the stuff that I either couldn’t or wouldn’t want to do myself. This takes a slight hit to system resources (~70Mb bigger than unchanged dwl and ~100Mb bigger than quackwm (a premade fork of tinywl). Maybe I’ll make a super lightweight one in the future), but it’s still light and minimal. I’ll be starting from the tinyrwm example on the River codeberg page, which will give me a proper base to start from. The screenshot is just black because it just starts and not much else.