This article is more than 1 year old
Linux PC shop System76 is building a new desktop environment in Rust
'There are things we'd like to do that we can't simply achieve through extensions in GNOME'
System76, makers of Linux PCs and laptops running Pop!_OS, has spoken about its plans to create a new desktop written in Rust as an evolution of its current GNOME-based product.
System76 software engineer Michael Murphy, who is a maintainer of Pop!_OS and also a contributor to the Redox OS project, a new Unix-like operating system implemented in Rust, posted in a Reddit discussion about a new desktop in progress for Pop!_OS. The current GNOME-based desktop is called COSMIC.
Murphy said the new desktop is not a GNOME fork but "is its own thing written in Rust." Its general appearance will be in line with the current "COSMIC/pop-shell," according to his posts.
Why a new desktop? Some Reddit users expressed concern about diluted efforts to improve the Linux desktop experience, like this one who said: "Yet another Linux desktop? Yet another Linux divisor! Divide Linux and get conquered. Congratulations!"
Murphy responded: "Choice is the best part about open source. None of us would be here today if people weren't brave enough to take the next step with a new solution to an existing problem… whether a person should contribute to something that already exists or create something new depends on whether their goals align with the goals of something that already exists. There are things we'd like to do that we can't simply achieve through extensions in GNOME. Extensions in general feel like a hack. And what we want to do with our desktop differs from GNOME, so it's not like the option to merge pop-shell and COSMIC into GNOME Shell would be a welcome thing.
"We have a desktop environment that is a collection of GNOME Shell extensions which break every GNOME Shell release. Either we move towards maintaining tens of thousands of lines of monkey patches, or we do it the right way and make the next step a fully fledged desktop environment equal to GNOME Shell."
An obvious question is whether System76 will continue to use GTK (GNOME Toolkit), from which many of the existing POP!_OS applications and utilities are built. "We're already using gtk-rs for all of our stuff," Murphy said, where gtk_rs is a set of Rust language bindings for GTK libraries and components. "My assumption is that it's likely to see some components in GTK for the foreseeable future," Murphy added. "The shell itself though is lower level than a traditional desktop GUI toolkit. It'll use primitives from the window manager it builds upon. If a mature Rust GUI turns up, then it could be used in the future of course."
- Ubuntu-on-a-phone folks UBports emit OTA-19, warn some devices face the chop in future
- 'Apps for GNOME' site aims to improve discovery of the project's best applications
- New GNOME Human Interface Guidelines now official – and obviously some people hate it
- Ubuntu on a phone, anyone? UBports reaches 18th stable update, but it's still based on 16.04
Linux is the dominant operating system for server applications but niche on the desktop, though it is the basis for Google's Chrome OS and Android. Those aside, the two most widely used desktops are GNOME, the default in Ubuntu and Red Hat Enterprise Linux, and KDE, which uses the Qt libraries. Desktops are a matter of much debate in the Linux community, with users finding plenty to criticise in both GNOME and KDE. In the FreeBSD world, developer Simon Peter has made some impact with helloSystem, a new desktop inspired by the original Macintosh Human Interface Guidelines. Another project which has won support is ElementaryOS, based on Ubuntu.
"Qt isn't viable for us because our team is experienced in Rust and doesn't want to switch to C++. Future tech is in the Rust GUI space, and that seems to be where the minds behind Qt are going," Murphy said.
He also said that the new desktop will use existing tooling which will include "at least one" of mutter (Wayland display server and X11 window manager), KWin (Window manager) and/or wlroots (Wayland compositor library), but "implementing the surrounding shell in Rust from scratch."
Wayland is a certainty for the new COSMIC, Murphy said, and probably X11 (based on the older X protocol) as well since "X11 is a hard requirement for the moment due to Nvidia drivers."
Although some worry about dilution of effort, there is also interest in new approaches to the Linux desktop. Further, the continuing improvement in browser-based applications, sometimes running as PWAs (Progressive Web Applications), means that the application gap compared to Windows and macOS is getting less pressing, making it easier for new desktop initiatives to succeed. System76 is also distinctive because it is a hardware vendor and can ensure that the operating system will run smoothly on its own kit.
No date has been given and do not hold your breath. "It's only in early stages of experimenting, and currently not being actively worked on for the duration of getting [Pop!_OS] 21.10 released," Murphy told us. ®