Gnome Shell (extension) development workflows with Wayland

Hi,

Just wondering whether you get a kick from using GNOME BOXES virtualization in your GNOME Shell or Shell extension development. I think I saw some conversation about it somewhere but couldn’t trace it again. Or maybe it was about something called running a “nested GNOME Shell”.

Otherwise, in case you have some other agile deploy-debug setup recommendation that doesn’t involve both restarting and occasionally crashing your own desktop session that you work from, happy to learn about it.

(In the context of Wayland not X11).

Thanks,
Matan

1 Like

Just hope someone has seen this :innocent: and may have some advice for a fast-turnaround development setup

Or maybe it was about something called running a “nested GNOME Shell”.

The gjs.guide mentions the command line to launch a nested gnome-shell instance.

Thanks for replying. I guess this reinforces that a logout is necessary when working in Wayland. IIUC, working in X11 and nesting Wayland would work as suggested there. That said, thanks for the new documentation and the nifty gnome-extensions create tool!

I guess this reinforces that a logout is necessary when working in Wayland.

Yes. Once an extension has been loaded, it cannot be unloaded or updated.

In the Xorg session, you can work around that by restarting gnome-shell, because the display server lives in a separate process and isn’t affected by the restart, so applications or gnome-session don’t lose their display connection.

On wayland the gnome-shell process is the display server, so restarting the shell means that all clients lose their display connection and terminate.

Would it be somehow possible to nest a Wayland shell desktop inside an X11 desktop session without things getting inconsistent? My target setup would be Wayland, and one logout per dev cycle is a bit taxing for my small brain.

Well, I think using any virtualization platform or deploying to a separate box through a shared drive (give or take a mouse and keyboard A/B switch) may be a more fluent dev setup.

Yes. The dbus-run-session bit is generally enough for the nested session to not interfere with the host session.