Skip to content

[WIP] GNOME 50#59394

Draft
oreo639 wants to merge 30 commits intovoid-linux:masterfrom
oreo639:gnome50
Draft

[WIP] GNOME 50#59394
oreo639 wants to merge 30 commits intovoid-linux:masterfrom
oreo639:gnome50

Conversation

@oreo639
Copy link
Member

@oreo639 oreo639 commented Mar 16, 2026

Testing the changes

  • I tested the changes in this PR: briefly

This PR is a work in progress, test at your own risk.

Note that this currently has some issues that make using it less than ideal.

Due to gnome-session being held back, shutdown and suspend don't appear at all (the return value for CanShutdown(), CanSuspend(), etc. changed from a boolean to an integer in newer versions of gnome-session, and I haven't fixed it yet).
There is also an issue where "GNOME Shell" is always reported as "Not Responding" by GNOME Session whenever you try to log out.

There is work by swagtoy for Gentoo on implementing a custom leader that can be installed on top of gnome-session to allow it to work on non-systemd distros (only for openrc atm), although that is also WIP: https://github.com/swagtoy/gnome-session-openrc/tree/independence should be possible to adapt or extend it to support other user service systems as well.

I haven't gotten around to updating GDM yet, it should be possible (at least to 49.x, since that is what Artix is using). Either way, GDM Wayland does work, along with logging in and locking the screen inside GNOME.

TODO: gnome-initial-setup needs to be fixed for the gnome-session change as well, just didn't do it yet.

@oreo639 oreo639 marked this pull request as draft March 16, 2026 04:40
pkg-config sassc gettext libxslt docbook-xsl python3-docutils
$(vopt_if wayland 'wayland-devel wayland-protocols') shaderc"
makedepends="at-spi2-atk-devel gdk-pixbuf-devel libepoxy-devel pango-devel
iso-codes graphene-devel gst-plugins-bad1-devel cairo-devel librsvg-devel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

librsvg-devel is not required anymore. gtk4 now renders svg natively.

vmove usr/share/icons/hicolor/symbolic/apps/org.gtk.gtk4.NodeEditor-symbolic.svg
vmove usr/share/man/man1/gtk4-node-editor.1
vmove usr/share/metainfo/org.gtk.gtk4.NodeEditor.appdata.xml
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also add to gtk4-demo

vmove usr/bin/gtk4-icon-editor
vmove usr/share/applications/org.gtk.Shaper.desktop
vmove usr/share/icons/hicolor/scalable/apps/org.gtk.Shaper.Devel.svg
vmove usr/share/icons/hicolor/scalable/apps/org.gtk.Shaper.svg
vmove usr/share/icons/hicolor/symbolic/apps/org.gtk.Shaper-symbolic.svg
vmove usr/share/mime/packages/gtk-mime.xml

@swagtoy
Copy link

swagtoy commented Mar 19, 2026

WIP: https://github.com/swagtoy/gnome-session-openrc/tree/independence should be possible to adapt or extend it to support other user service systems as well.

Doesn't void use runit still? Do you guys thing that's going to be reliable for this, because I don't recall that having user services. Without those, most efforts are going to be a pain, unless you have a trick up your sleeve I'm unaware of

@oreo639
Copy link
Member Author

oreo639 commented Mar 19, 2026

Do you guys thing that's going to be reliable for this, because I don't recall that having user services.

You can pretty easily do user services in runit by creating a runsvdir for the user when they login. (That's what the runit backend for turnstile does.)

The part that makes runit problematic in this case is that it doesn't support dependencies. (e.g. in the runit turnstile backend, some features, such as signaling to dinit systemwide user services when a user session has been created, can't really be implemented through runit. Even for system services, we basically use the fact that runit is single threaded and will retry starting a service multiple times to work around ordering issues. For example, the gdm service "depends" on dbus by simply erroring out if dbus hasn't been started yet. Runit doesn't know that gdm depends on dbus, just that it failed to start and can be tried again later.)

That being said, we don't technically need to use runit to manage the gnome session services (it is already not using runit for that), and some systems like dinit and shepherd support being run as usermode process supervision daemons alongside another init system.

@swagtoy
Copy link

swagtoy commented Mar 19, 2026

I've never been a runit fan for this reason :)

I'd personally encourage some other init system but I doubt i can wade my way on that. I just remember messing with void many many moons ago and finding runit's simplicity to be a pain point than a killer.

But I'm no boss. Just my 2c. I couldn't personally see how runit wouldve worked for this, which is why i asked the question. Good luck though!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants