For more great content like this see Original article
System76 has revealed it is working a new desktop environment that is not based on GNOME Shell.
The American company already maintains its own Ubuntu-based Linux distro called Pop!_OS. Presently, that distro ships with a modified version of the GNOME desktop called ‘COSMIC‘ (all caps, not me shouting).
But plans are afoot to switch something built from scratch.
Word of its new project comes by way of System76’s Michael Murphy, who shared some the rationale and motivation behind building a new desktop in comments posted to the Pop!_OS Sub-reddit this weekend.
And all told: they make for a pretty exciting read.
A new Rust-based desktop
Early versions of Pop!_OS were modest reskins of Ubuntu. These days the distro is distinctly its own thing.
At the heart of Pop!_OS is the COMIC desktop System76 created. This takes the core GNOME user-experience and refashions it with extensions to better meet the needs of its target audience (creators, developers, makers, etc).
I.e. not ideal.
“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,” Murphy says.
Recent disagreements between System76 engineers and the GNOME developers are said to not have hastened the potential switch to a home-grown shell. That said, you didn’t need to be a fortune-teller to forecast that System76’s ambitions for COSMIC would eventually fall out of sync with a platform moving in a very different direction.
So what can we expect?
We know that the COSMIC desktop ‘shell’ will be built (primarily) in the Rust programming language, though System76’s engineers do plan to reuse existing tooling around this, e.g., Mutter, Kwin, Wlroots. It will also follow FreeDesktop standards where possible and aims to be distro-agnostic.
What about the overall look and layout? Well, Murphy says the goal is to create something similar to the existing COMISC desktop experience.
‘Do we need another DE, though?’
The topic of “fragmentation” will undoubtedly rear its head as/when this new project starts to pick up steam.
And it’s not an unfair criticism.
But it is, as Murphy goes on to explain, perhaps a misplaced one.
“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. You’re likely now using some software that was just recently developed as an alternative to something. Distributions and people will naturally gravitate towards the best solutions over time. And sometimes the best solution for an individual is not the most popular desktop environment,” he writes.
This echoes a lot of my own thinking on the matter (which I’ve shared disparate bites of in the past). I prefer to think of ‘fragmentation’ as ‘experimentation’. Double-checking assumptions, exploring alternatives, challenging the status quo, etc.
Pushing the boundaries and exploring alternative avenues are healthy and should be encouraged. And even if those endeavours ultimately amount to nothing, our collective pool of knowledge is always better for someone having tried and failed to do something, then never tried at all.
‘Great: so when can I try it?’
New desktops aren’t built overnight, so it’s going to be a little while before we see any possible ‘fruits’ of this effort.
While the new Shell will be written from scratch it sounds like some existing GTK components will be retained or used for a while, as Murphy explains:
“We’re already using gtk-rs for all of our stuff. My assumption is that it’s likely to see some components in GTK for the foreseeable future. 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. I’d generally like to use the best tools where possible.”
In all, an exciting development — one I’ll be keeping an eye on as it developers further.
What do you think? Let me know in the comments below.