Pulse 11 - Ubuntu Desktop Engineering Update


We had our pulse review Friday and it was fantastic to celebrate work from across the desktop team’s eight squads (fyi we’re 25 engineers in total). I have ideas around how we can be more open, but in the meantime I’ll continue to celebrate progress here.

Let’s talk plumbing

Most cycles we want to make fundamental “plumbing” changes to desktop infrastructure. For example, this cycle we’d like to:

  • Replace the reference dbus implementation, dbus-daemon, with dbus-broker; and
  • Upgrade to the latest polkit (lobster is on 0.105-33 which is ancient).
  • Move to libcamera
  • And likely some others that I’ll recall after I’ve posted this :slightly_smiling_face:

The challenge comes from needing to get these packages, and their dependencies, into the main archive. And to do that, we must follow the Main Inclusion Request process because:

Packages in Ubuntu main (and restricted) are officially maintained, supported and recommended by the Ubuntu project. Security updates are provided for them as necessary by Canonical, and Canonical’s standard support services apply to these packages.

The consequence of this rigour, is that it’s difficult to land packages early in the cycle and therefore we risk missing months of integration testing. To mitigate this, @seb128 published enable-desktop-experimental.sh. This script configures your mantic install to be as close to the planned release configuration as possible. As of this post it will:

  • Replaces dbus-daemon with dbus-broker (two points here: (1) it keeps dbus-daemon because GDM relies on some of its libraries and (2) the MIR process prefers to have one package providing one functionality so we need to resolve that issue)
  • Upgrades polkit to the latest version (the latest polkit requires duktape being in main – yes MIRs again)
  • Installs the new flutter-based firmware application.
  • Installs the new flutter-based application store (more on this in a moment)

So if you want to test mantic, and you’re happy to risk living on the edge, then we’d love to hear your feedback. This is a first iteration of the script so do expect changes in the days to come (or open a PR :pray:) and also if you’re currently running matic as your daily you’re very brave.

New from the flutter front

The desktop team is fortunate to have support from Canonical’s designers who for this pulse focused on improving search in the flutter-based software store. This is what @anasereijo1 had to say:

The Design squad’s focus was on how to improve the search experience for the new Snap Store. We started by looking at the current flows, the outcomes from the recent audit and feedback from user interviews, to identify pain points and usability issues. We then started working on a new proposal, creating low-resolution wireframes, as the main objective at this point was to focus on the functionality and flows rather than the visuals.

Since much of this work is ongoing, I’m only including a low-res teaser below (but don’t worry @anasereijo1 will share more soon):

While on the flutter front, @jpnurmi has been improving the architecture of the Ubuntu flutter installer specifically to lower coupling. This work will support a more coherent user experience from installing through to first boot. Why is it needed? Well, in the live environment the installer uses the subiquity backend, but if for some reason you needed to create a user on first boot, cough core desktop *cough, you would want to re-use functionally from the installer with a freedesktop backend.

Feedback for humans

Another area we’re experimenting with this cycle is soliciting user feedback. Today, we get technical feedback through many channels but there isn’t a reasonable way for humans to provide user experience feedback … until this form arrived :exploding_head:. There, you’ll find @local-optimum @gerwitz and @tim-hm eager to hear your thoughts. I have plans to get this into a desktop launcher, but in the meantime feel free to create an issue and help us build an awesomer desktop.

Snapping all the things

@hellsworth has been working hard to improve automatic snap publishing through github actions. @hellsworth will be writing about this in due course, but if you need a sneak peek checkout the desktop-snaps repository for the nitty gritty or appreciate the simplicity of automated publishing in the gnome-calculator snap. Finally, if you’re itching to try the latest automatically published gnome calculator snap run sudo snap install --candidate gnome-calculator :nerd_face:.

Gaming because … gaming

From the desktop gaming squad (@ashtonn @zoopgoop), we got to see mangohud in action with the steam snap. To get started simply checkout the steam-snap wiki and you’ll be up and running in no time. This works best with native OpenGL games and support is early but it’s nice to see progress.

Lunar landing notes

We’re nearly ready to land GNOME Shell 44.1 in lunar – it’s in lunar-proposed! If all goes well, you can expect to see it land in the next few days :crossed_fingers:.


That’s it. Feel free to ask questions in this thread or use the feedback form, and finally thanks for reading.

Tim (on behalf of many)
Director of Engineering | Ubuntu Desktop