Greetings! In this post I share highlights from the Desktop team’s roadmap for Ubuntu 24.04 LTS. It’s important to remember that plans change and misses do and will happen. If you would like some insight into our guiding values when constructing the roadmap check out the Desktop’s core values. Okay, let’s jump in!
Figure 1. Photo by Markus Spiske on Upsplash
Provisioning
I’ve written previously about a vision for desktop provisioning in Naught to productivity. This cycle we’re working on this vision’s foundations. The highlights from this effort are six defined provisioning phases, consolidating and reordering steps so that we can better support stakeholders, whitelabel support and finally specific Home and Work first boot initialisation flows. Given the scope of these changes I will defer covering provisioning in detail here and write a dedicated post in due course.
Web services
Behind the scenes, Ubuntu desktop is supported by web services. For example, there is a backend to Ubuntu report that receives optional installation telemetry and a new App Center rating service. Additional services you might be familiar with support the connectivity check, geo location and app stream. These services run directly on VMs but that approach has limitations especially at scale. So, we are starting to migrate these services to Juju running on a kubernetes cluster and instrumented with cos-lite. This has numerous benefits such as improved elasticity, reduced maintenance burdens, better observability, aggregate logging, insightful dashboards and alerting. This migration will take more than one cycle, and so we are focused on the infrastructure and “charming” the optional installation telemetry and the App Center ratings services.
Enablement and housekeeping
When a Linux-Flutter app starts, a GTK3 window is created and its context is passed to Flutter to do its magic This cycle we’re upgrading the Linux-Flutter engine to use GTK4 so that all apps benefit from GTK4’s improved performance Additionally, we are updating dependencies and reworking our repositories to be consistent. We see these as necessary steps to make it easier for anyone to get involved.
During the Ubuntu 23.10 release offensive translations were injected into the Ubuntu Desktop installer. Launchpad has a longstanding process for translations but Flutter’s localisation stack is not supported. To work around that limitation we turned to weblate. Weblate is a SaaS translation platform for projects, it has support for Flutter and it is well used in open source projects. To mitigate the risk of more offensive translation going forward we are (1) looking to self-host weblate and (2) ensure that every language is gatekept by a trusted translator. This should bring our Flutter translations up to the quality seen on launchpad.
Flutter apps
In App Center we are implementing “Top Charts” to help users discover the best applications. Initially Top Chart will be across all categories, but if we have capacity, we would also like to support it by category. Additionally, we have dozens of papercuts, quality of life tweaks and community-reported issues we want to address. If you want to help test as these changes land you can do so on the edge track by running $ snap refresh --channel edge snap-store
Figure 2. Figma designs for a top rated section in the Explore tab.
In the Firmware Updater we implemented a --simulate
flag. This means that engineers and designers can easily see what the app looks and feels for any device. Additionally, we’re making small quality of life changes that should elevate the whole app experience. This work is mostly complete and can be seen now by running $ snap refresh --channel=candidate firmware-updater
.
Figure 3. The candidate build of Firmware Updater
Security Center
We have several new security features targeting Ubuntu 24.04 LTS and there are many existing-but-hard-to-access-unless-linux-ninja security features that we want to surface. As our analysis matured, we felt a dedicated Security app was needed, and so we started building out a holistic security management concept. Bringing ourselves back down to earth, we settled on four specific areas to bring into this new app. Before I dive into those, it’s worth noting that the successful delivery of these features relies on many other teams and that exposing a toggle or checkbox is a more straightforward endeavour to the tasks these teams have working on!
First, we aim to expose re-encryption for our hardware backed full disk encryption solution. To be clear I’m referring to the on-disk master encryption key and not the passphrase used to access the master encryption key. This matters because it means in theory you could receive a laptop from the factory, with encryption enabled with one key, and then re-encrypt so that another key is used. Additionally, we’ll provide a straightforward way for users to show recovery keys as currently this can only be done via the cli.
Second, we are working on a prompting mechanism for resource access requests from confined applications. This is similar to xdg-portals-*
but it is useful where applications do not or cannot use portals (e.g. a cli app, a container). Today, Settings provides permissions grouped by application and we don’t intend on changing that. Where the Security Center adds value is in listing these prompt decisions by resource. If that sounds familiar that’s probably because it is similar to Android and iOS. We have ambitions here, but for this cycle we are focused on the basics and so limiting ourselves to File access prompts and management.
Thirdly, we are planning on migrating Pro settings from “Software & Updates” and into a dedicated Pro section within the Security Center. For users on interim releases you might not be familiar with this tab because it’s disabled on interims.
Finally, we would like to land a Network section so users can easily toggle their firewall on and off, enable ‘stealth mode’ (aka ignore pings) and configure ports.
Figure 4. Focus areas for improved security feature discoverability and configuration
Desktop Environment
We are working hard upstream contributing to GNOME 46 and then bringing it to you in Ubuntu 24.04 LTS. In due course there will be a pile of improvements to discuss so I’ll leave it there for now.
There are ongoing discussions about sun setting X11. In Ubuntu 24.04 LTS we’re not ready to make that leap. For this cycle, we’ve decided to audit the state of NVIDIA + Wayland to define the signals we want to see in order to make that call.
Figure 5. The current refresh awareness prompt.
Next, we plan on refining snap refresh awareness. Today, when a snapped application has a pending update you get a notification and 13 days notice. That seems a bit … eager, don’t you think? So we want to make a few tweaks. Firstly we’d like to reduce the notice period to something more meaningful in a desktop context. Next, we want to improve the notification itself by providing users with actions like “Update Now” and make the copy fit. If there’s time we’d even like an update-is-available badge on the dock icon.
Figure 6. An early concept for a new refresh awareness prompt.
Finally, we’re creating a series of productivity snaps targeting gsuite and Office 365. When this is done it will be as simple as running $ snap install gsuite
and bam! electron wrapped versions of your productivity must haves will be at your fingertips. You can emulate this experience today with Google Chrome, but having those apps strictly confined has a nice feel to it. The first release will be simple, but we have aspirations for more seamless integration into desktop.
Figure 7. ‘Installing’ gsuite (cheating with Google Chrome to illustrate the concept)
And a few more …
For our enterprise stakeholders we are implementing MFA support in SSH, building SSO-support into the desktop (e.g. login with your favourite identity provider) as well as a new Work provisioning flow for enterprises, exposing the awesomeness of autoinstall. On the WSL front we are implementing support for cloud-init image customisation and working on documentation to bring it all together. Finally, the gaming squad is focusing on the backlog of issues we haven’t had time to address. Additionally, the team is planning on reworking the Apps Center gaming section, but those plans are still young.
Closing
That concludes the roadmap highlights. Remember, these plans are subject to change. We welcome your thoughts and suggestions as we progress through the development cycle.