You are browsing as a guest. Sign up (or log in) to start making projects!

Sonder

  • 3 Devlogs
  • 10 Total hours

Sonder is a simple Wayland compositor.

Open comments for this post

3h 53m 27s logged

Devlog 3: Dependencies and hallucinations

I’m generally an anti-AI person. I don’t like the technology and I’m not a fan of offloading my thinking to a machine that cares so little about me that it can’t even deprive itself of sleep for the sake of my project. However, it became clear that Smithay’s documentation was doing me no favors. Begrudgingly, I turned to Gemini.

It was actually really helpful at first. I’ve been working on moving from a winit window to being able to run the compositor from a TTY or display manager, and it’s been “fun” (emphasis on the air quotes). Anyway, Gemini was able to explain what I had to do and help me understand things better.

Unfortunately, it’s also dumb. It consistently told me to use nonexistent APIs and misuse real ones. It at one point told me to loop over a bunch of connectors gotten from a DrmDevice. Getting them worked, but it then immediately instructed me to compare a value to a nonexistent enum. I had to find the source code for the library itself, which was a pain because I couldn’t find the relevant code anywhere in Smithay’s docs.rs documentation or even source code! Eventually, I realized that I should be looking in a dependency of Smithay instead of Smithay itself, and I found what I was looking for.

I still haven’t achieved what I set out to do, and I wrote this half an hour before midnight. cries in sleep deprivation

0
0
4
Open comments for this post

5h 11m 4s logged

Devlog 2: Hello, world!

I finished copying Smallvil’s logic. That basically means 2 things:

  1. I have a semi-semi-semi-functional compositor already
  2. I’m on my own. Everything else I do I’ll have to research and implement myself.

Right now, I plan to go to sleep and then start working on getting it running without a parent compositor. Currently, it runs in a window inside another WM, and while that’s good for debugging, it needs to be able to stand on its own (2?) feet. After reading through Smallvil’s source, I think the hardest part will be determining when to render and receiving input, as both of those are handled in the winit event loop right now. Luckily, I have the Niri source code to read through.

0
0
2
Open comments for this post

43m 19s logged

Devlog 1: This was a terrible idea

I’ve wanted to make some kind of graphical shell for awhile now, but I finally decided that this would be the time. Unfortunately for me, I didn’t realize that this would be incredibly complicated. I’ve spent most of time researching and reading, so this devlog is only for 43 minutes.

I’ve learned a bit about the Wayland protocol, but also how Smithay works. Smithay is a Rust framework for building compositors that I’ll be using for mine. It was used for Niri (my current favorite window manager), so there has to be something good here!

I haven’t written much yet, but I have a plan: I’m going to copy over all the logic from Smithay’s Smallvil example to learn how it works. I’m then going to make some changes, such as pushing to the screen itself instead of a window and maybe some shell UI.

The screenshot is of some of Smallvil’s rendering code next to my notes about it.

I also designed a simple wallpaper, which I set the project image to.

0
0
1

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…