u/at_tension_atoi

▲ 19 r/gpui+1 crossposts

I just wanted to see how far i could get without quickshell...

Basically, I just wanted to stop using Qt/KDE/GTK/QML for my shell.

That’s literally where all of this started in february.

I’m still using Quickshell/Caelestia on the side right now because it serves as my reference while I rebuild the pieces. Except gnos.ux is now in Rust/GPUI, and the part that's been eating up my time for the past few weeks is mostly topology.

Like the Bar in the video. It can be top/right/bottom/left, move between edges, change orientation, keep its controls, its input, its Wayland reservations, etc.

It looks trivial to watch. Fair. You can probably show the video to ChatGPT and ask it to make something that looks like it in a webapp.

Except I spent an insane amount of time getting rid of the little lies that make this kind of demo “work”.

At one point, everything was fine once the Bar was down at the bottom. Everything was fine when it left again. Yet while moving, there were still 29 frames where it clipped into the Dock. Up to 49,192 px² of overlap lol.

The bug wasn't even in the animation. The Dock was calculating its space from the selected edge while the Bar was already physically somewhere else in the exact same frame.

So that ended up with a 24,000-case matrix to verify paint + input during transitions.

That's the point where I have a hard time calling this vibecoding. I use AI everywhere in my workflow, obviously. And i'm never going to apologize for employing legitimate tools. But yeah, claims like : “it opens and it moves” isn't worth much as qualifying proof once you get here.

I also benchmarked the run because I was kind of about to talk out of my ass before hitting "post", but i'm glad i could anticipate the : "ackchyually VRAM accounting…" comments.

>Over 15 sec, gnos-ux-scene averaged 8.17% of a logical CPU. On my 12700F, that comes out to about 0.41% of total CPU capacity. At idle I'm seeing more like 1 to 4.5% of a thread. During transitions it can spike to ~25%.

>RSS ~75 MB. GPU around 272-284 MiB VRAM on this run.

And I found some pretty embarrassing stuff too 😂

There’s still a hyprctl process getting spawned to observe certain states, and a 20ms loop waking up 50 times/sec even when nothing is happening.

At least now I know exactly where the cycles are going. There's so much features i want to work on, that were planned months ago, but can't commit to it until i get my baseline right...

Anyway. I just wanted to get rid of QML man...

u/at_tension_atoi — 12 days ago