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

Soramane

@Soramane

Joined June 3rd, 2026

  • 6Devlogs
  • 1Projects
  • 0Ships
  • 0Votes
A 2nd year uni student and creator of the Caelestia desktop shell
Open comments for this post

15h 6m 49s logged

Plugins are live! Or well, a tiny bit live at least.

I got bar entries and popouts wired up, and hot reloading! And speaking of hot reloading… Hot reloading is the worst in Qt QML. Since there is only ever a single QML engine, and that engine isn’t even controlled by us, we have to resort to some very interesting ways to reload only the plugins themselves.

Basically, to hot reload, we could just nuke and recreate the QML engine, but that would reload the entire shell, which is quite heavy and loses transient state. So instead, we need to reload plugins separately. To do this, we create QML modules for each plugin and force plugin authors to explicitly import them instead of relying on implicit imports. This way, we control the modules and can create new ones with higher versions to “reload” them.
One “small” issue with this is that the previously generated modules will be leaked as Qt does not provide an API to unregister modules, but that’s a trade off we have to deal with.

There is also so much more to deal with for plugins than I initially thought. We need to keep track of having a plugin repository, each plugin’s structure, having multiple plugins being in a single repository, hot reloading plugins, plugin dependencies (this is gonna be a major pain), installing plugins from both the plugin repository and arbitrary Git URLs, and so much more.

Let’s just hope my brain doesn’t get (more) shredded by this plugin system of mine…

0
0
6
Open comments for this post

12h 14m 45s logged

Finally, plugins!

I’ve been working on adding plugins to the shell for the past week or so, and things are finally taking shape!

I got the preliminary structure for plugins and their manifests down, so I could start working on the UI for it. It’s only a placeholder for now, the backend is still in the works, but the browse page is looking pretty good.
I also hooked up the bar-entry entry point type and it works well, which is nice.

All that’s left to do now is all the other entry types, actually making an example plugin, docs, the plugin info page, actually loading plugin info from the store repo, installing plugins from the store and other external sources, and plugin settings.
Oh boy, that’s a lot of things… 😂

0
0
2
Open comments for this post

29h 20m 26s logged

On the way to fill out more pages in my settings app…

Finally added ethernet and VPN support to the Nexus for Caelestia!
Networking is such a pain… There are so many cases you need to account for, and since everything is async, nothing is straightforward. Qt QML not having great process support definitely doesn’t help either.

Anyways, I’m pretty happy with the result! It supports 4 built-in VPN providers (wireguard, warp, netbird and tailscale), and any custom provider you may use.

I also added howdy support to the lock screen for facial recognition between this and the last devlog, but that’s less significant imo… I should really make devlogs more often.

Aside from that, I’m currently working on plugin support, so hopefully that’ll be the next devlog!

0
0
2
Open comments for this post

28h 56m 18s logged

I haven’t made a devlog for quite a while huh…
Anyways, after many hours working on Figma, I finally have a decent base design for my website! It’s still a WIP, but I’m pretty proud of this.
Now, to actually implement it…

0
0
1
Open comments for this post

28h 28m 40s logged

Finally decided to revamp the installation process!
Previously installation would be done via a shell script which symlinked everything into place. With this new change, files are copied into place and paths are stored in a state file for updating. Also, now users don’t have to manage the dots repo themselves, they can just install the CLI from the AUR and run caelestia install to install it.

0
0
2
Open comments for this post

9h 46m 17s logged

Bugfixing…

So many bugs, straight after the V2 release 😅. The V2 release was made in kind of a hurry to meet the 1 year anniversary, so it really wasn’t tested all that much.

0
0
3

Followers

Loading…