switching to river

i love dwl and all but recently the random segfaults have gotten pretty annoying cos when dwl crashes it takes all my open programs with it

YES I KNOW THIS IS MY FAULT AND I SHOULD BE FIXING SWALLOW PATCH

but it doesnt happen often enough for me to be sufficiently bothered

gestures at title of blogpost

okay you got me there, im lazy to fix code :') ok technically it's not my code it's originally by palanix and i just happen to maintain it ok fine yes ik im still responsible for it

but yea id say dwl is less polished overall

ive tried river when i was going thru that art phase and needed stylus support but (ironically enough) couldn't live without swallow patch

so instead i hacked in stylus support for dwl :P

wait... dwl didn't have stylus support??

still doesn't, not OOTB at least (my fix is just a patch you can apply on top of dwl)

there's some missing functionality here and there, managed to tolerate the papercuts for a while but ig ive moved on to wanting a more stable desktop over pure hackability

installing river

just an apk add away

last time i tried it wlroots didn't support multi-version installs so i had to temporarily switch wlroots versions which broke dwl

but now they can coexist peacefully :D

already have a half-assed river config from last time so hopefully this won't be too painful

making it feel just like home

took just an hour to rewrite my wm tags and title script for river, now my bar setup looks and works exactly the same

benefits of splitting the bar out of the window manager! suck it, sewn >:>

bit more tinkering with window borders and colours and

... oh right i haven't ported my screenshot and media keybinds

screenshot of riverwm setup which looks exactly the same as my dwl setup alright there we go

(there is literally 0 difference from dwl)

feeling homesick anyways

still doesn't feel right :<

two things i miss: swallow and dragresize (both coincidentally inspired by plan 9's rio window manager)

swallow

Terminals swallow windows that they are the parent of.

this is pretty unique to plan9 because of the way rio works. windows are tied to draw buffer devices, so you can pass your draw buffer to another program and it'll take over your window area

this is useful because i like to start programs in new tags then move to other tags while waiting for them to start

swallow makes them spawn in the same tags as the spawning terminal so i don't get random surprises

unfortunately with wayland we dont have the luxury of per-window draw buffer devices so we make do with scrounging for parent pids

currently dwl just copies the swallower window state and applies it to the swallowed window which is not exactly in the spirit of swallow but eh it works

palanix mentioned to just swap the xdg-surfaces, not sure how doable that would be in zig

dragresize

select window to resize, then drag out an area for it to occupy

this one is just another way to resize windows, i like it because it combines move and resize

but river's resizing system is also much more advanced than dwl's so i'll try getting used to it

looking forward

river is certainly more stable and mature which im beginning to appreciate the extensive protocols are basically dwl ipc patch brought to its logical conclusion

yup definitely hoping to stick with river


made with <3 and /.gen.sh