Hello, hello! We are back again with some more Pop!_OS COSMIC updates from the team at System76. But first, there’s been an exciting update to Pop!_OS 22.04 LTS!
Pop!_OS 22.04 LTS Updates
System76 Scheduler 2.0
System76 Scheduler is software that directs your computer’s resources to the window you have in focus. So if you’re playing a game, for example, you’ll get better performance out of your system from resources that may have previously been used for applications running in the background.
With its second major release, system76-scheduler adds new features that further optimize system responsiveness and expand custom configuration. New Pipewire integration gives audio processes realtime priority to reduce the chance of audio stutters when the application playing audio is in the background.
While the default configuration is designed for most users, the scheduler can also be custom configured to your preferences. We’ve added new support for policies such as SCHED_FIFO and SCHED_IDLE, and assignments based on conditions like cgroups or parent process. If you’re interested in custom configuration, see our documentation on GitHub.
Finally, the system76-scheduler process itself has been optimized to use up to 75% less resources by eliminating most memory allocation and avoiding UTF-8 string checks when not necessary. The full changelog is available on GitHub.
COSMIC DE Progress!!!
COSMIC Panels are desktop features similar to the top bar and dock in Pop!_OS except with much more versatility. The panels contain "applets", or small embedded applications. You can think of "applets" as GNOME extensions to customize an experience, except they're separate individual applications running in their own process. In COSMIC, applets replace GNOME extensions. COSMIC currently includes essential default applets for things like notifications, workspaces, applications, battery, wifi, bluetooth, and media controls. In the future, applets can be added for a clipboard, notes, weather, custom menus or whatever feature you might imagine.
Each panel can be customized to your liking, so you can change its position on-screen, adjust its size or opacity, and add a margin before the edge of the screen.
The designs also include the option to set an individual panel to be in Light or Dark Mode or match the desktop mode, and show on all displays or one specific display.
COSMIC Panels are central to the COSMIC DE ethos. While COSMIC will be the flagship experience on Pop!_OS, it's designed to be useful for people, distros, companies, and organizations to create and offer their own unique user experience.
Now that the widget library is beginning to fill out, we’re starting to put them to use building COSMIC Settings pages. In addition to the aforementioned panel and dock settings, keyboard input, and wallpaper settings pages are being developed this month.
Like COSMIC Panels, COSMIC Settings is modular, with an API to add and remove settings pages. Projects that might want custom pages can easily add them or remove default COSMIC pages.
HDR allows for very bright and very dark displays. The difference in brightness opens the door for great color and highlights, making the content appear much more lifelike. At the moment, HDR is not supported on Linux, but it’s beginning to get some attention.
Victoria, our developer working on Smithay and cosmic-comp, recently attended an excellent Red Hat-organized HDR hackfest. While there wasn't much hacking, there was progress discussing and planning for short-term and long-term requirements to enable a quality HDR and color management experience on Linux.
We plan to support HDR in COSMIC in conjunction with the HDR progress made throughout the community. Due to the current state of kernel API's, HDR can be quite power intensive. The work for full, proper support is expected to take a couple years. In the short term, we may offer the ability to enable and disable HDR in COSMIC. There are more considerations including the handling of ICC color profiles. We'll soon survey System76 customers to help us prioritize our work in this area.
10-Bit Color Support
Around the same time as the hackathon, 10-bit color was added to cosmic-comp, the COSMIC compositor. The better color reproduction it provides is an essential prerequisite for HDR; with a wider range of colors, 10-bit color allows the desktop environment to maintain color accuracy.
Screenreaders and Accessibility
We’re helping to build the iced Rust GUI library. This library is used for creating COSMIC apps and inside cosmic-comp (the COSMIC compositor) for shell functionality. Part of our engineering for iced is to add the toolkit’s first accessibility infrastructure, in order to ensure that COSMIC is accessible to all.
AccessKit, a UI cross-platform accessibility infrastructure project, has been growing in popularity and is also written in Rust. We built an iced and AccessKit proof-of-concept that worked quite well, and our iced Request for Comment (RFC) for AccessKit integration has made the official roadmap!
The Orca screenreader is now working in COSMIC, but we’re still working on adding important functionality like keyboard control. This is a more complex issue than it might sound, due to Wayland limiting keystroke access to each application separately for improved security. We’ll be exploring the libei emulated input library to gain insight into the current state of this potential method to enable additional screenreader functionality in COSMIC.