I tried this out for fun a few releases ago. It was a mess. I’ve kind of lost track on why this is even a thing anymore, but anyone involved want to weigh in?
My experiences with pop haven’t been amazing (just always ran into small quirks and issues that shouldnt be a thing, but I haven’t messed with it all that much), but I’m pretty happy for there to be another big polished desktop environment with resources behind it, I think it makes the linux ecosystem better :)
Its written in Rust, is a completely new code base so not held back by tech debt, and is a clean DE while still being fairly customizable even now.
I personally don’t care why system76 felt the need to code a new DE from scratch, Im just glad they did it. It has given us a whole new ecosystem of GUI toolkits, apps, etc. for linux written in Rust.
It’s predominantly a thing because System76 wants full control over the software that they ship on their systems.
Something I understand completely tbh - it’s risky having the success of your business being dependent on another entity’s software. Probably even moreso when Gnome is pretty notorious for having a desktop workflow that’s very different to what you’d traditionally see, and that’s controversial, potentially even alienating to some customers. So I’d probably want that control too.
When they used Gnome, they had to compromise, and in many cases, neither of them wanted to.
Over time, things became hostile between them. And to be honest, System76 were the more hostile of the two, IMO.
One of the more bizarre things to happen was System76 identifying and resolving bugs, applying them in PopOS, choosing not to upstream them to Gnome (twattish, IMO, but that’s their right), but where it really crossed a line IMO was System76 staff going onto bugtrackers and forum threads, advertising that XYZ was fixed in PopOS, but not in Gnome, because they actually cared about users. Quite a cynical marketing strategy.
Another frustrating point was a Gnome developer liking PopOS’s tiling implementation, then contacting PopOS to see if they’d be interested in collaborating on a similar - but dumbed down - implementation to use upstream. S76 refused to work with them, and fair enough, Gnome certainly isn’t entitled to help from S76, but afterwards S76 on multiple occasions said Gnome simply didn’t want more advanced tiling or were hostile to the idea- something clearly not true since Gnome expressed an interest.
When there was design changes to Gnome 40, Jeremy Stroller of S76 became angry and said he “didn’t consent” to these changes, as if Gnome should be ran by System76, not the Gnome developers themselves.
To be honest, almost all of it comes down to Jeremy Stroller specifically. And even System76 seems to have quietly accepted that, as he has moved away from OS work to firmware work.
But I’m getting quite off topic…
When I’ve tried the PopOS alphas, it was still janky, but I’m sure it’ll be far better in future, it’s an alpha after all, and they’re undertaking a huge job. Some of it seems really cool, and I always love fresh projects that are free of legacy cruft. I’m not sure it’s for me, though.
That’s honestly a very revisionist version of history. Unfortunately I’m too tired to do a proper rebuttal to it. We have made many upstream contributions to GNOME. There has never been an instance of refusal to upstream anything. There has been instances of upstream not being interested in our contributions though. But that’s how things go when you have creative differences with an upstream, or have technical contributions which aren’t of interest to upstream’s use cases. Keep in mind that just because a downstream makes something cool and interesting, it doesn’t automatically mean that creation fits in with upstream’s vision for their project. Hence why there’s hundreds of gnome-shell extensions that aren’t built into GNOME.
We’ve updated the youtube-dl package to a newer version. This package, maintained by Debian and Canonical, is used for downloading videos from YouTube. Changes made by Google to the YouTube API had recently broken this package in the Ubuntu repositories, hence the update.
Sounds good, right? Yeah, it is. Except:
– they didn’t report the bug in launchpad
– they didn’t send their patch/fix to launchpad
– they didn’t get in touch with Ubuntu/Canonical about fixing the issue
These things would’ve benefited everyone, but S76 chose not to.
But it gets worse. They did an upload in their overlay PPA with the description:
‘ * Backport to Pop!_OS because Ubuntu is too slow.’
Why needlessly shit on another project like that when you could just submit the patch to upstream, or at least file a bug report? Stabbing the back of upstream like that isn’t friendly.
There are multiple cases of conduct like this.
There has been instances of upstream not being interested in our contributions though.
Of course, but I never really brought that into doubt. I alluded to it when I said Gnome were sometimes unwilling to compromise.
But don’t take my criticism of some of System76’s actions as hate. Especially not when the bulk of it comes from one person. I used PopOS for a long while and enjoyed it, and I hope PopOS, Cosmic, and S76 in general succeeds.
I don’t even think S76 is big enough to make complaints, honestly.
I’m curious about how this all came about, because if they wanted control of their software, the desktop is certainly not the first place to start. Misguided is the word I’d use if that was their goal.
I do want to understand the “why” of this, but also the “who”. Do they have a team of developers working on this, or just like…one guy?
They initially made a GNOME extension that contained their theming and an (optional) tiling for windows. Also some GTK apps, such as their app store frontend.
I still use it daily on my gaming pc (Pop!_OS 22.04) and it sucks. Slow, unresponsive, janky. And this is an extension that they had been maintaining for years. Apparently GNOME devs don’t really consider extension developers and it was like building on quicksand for the Pop team.
For better or worse, they made a decision to build their own fast, responsive COSMIC DE due to these frustrations with GNOME.
I am still on the old 22.04 with GNOME, but already started using the new COSMIC Store app GUI last year.
It is a HUGE leap from the old Pop!_Store and feels great.
The rest of the DE is probably not ready yet, otherwise they wouldn’t call it Alpha.
Oh and apparently they’ve made it really easy to brand the whole desktop env and are hoping for more orgs and companies to adopt it.
This is the actual truth of the matter. COSMIC is the result of many years of planning and developments in response to customer requests in Pop!_OS. Over time, the COSMIC extensions for GNOME diverged in UX to the point where it was untenable to maintain long-term, and impossible to make further progress without forking. We were going to create a modern desktop environment in Rust from the ground up regardless of whether disputes happened with GNOME Foundation / Core members, even if disagreements helped to accelerate that goal.
Today we have built a highly modular desktop environment in Rust from the ground up that anyone can use as a platform for building an operating system with thanks to the flexibility of the Wayland layer-shell protocol. You may mix and match any arrangement of layer-shell applets in any order. You can even swap out the cosmic session for a different desktop environment’s session, and vice versa load another desktop environment’s session inside of cosmic-comp.
Distribution and user theming is also significantly improved over GTK with programmatic generation of themes—automatically adapting colors at runtime to the most ideal contrasting color values via OKLCH and other related algorithms—which distributions can use to customize to their preferred branding, and app developers can freely adopt without needing to worry about user themes breaking their apps. Users also get the convenience of generating their own custom themes with COSMIC Settings, even if that means creating an abomination of conflicting colors.
We really wanted to improve upon the developer UX for Rust GUIs by creating libcosmic, and have succeeding in doing so with a toolkit based on Iced that uses Elm’s Model-View-Update paradigm. It is so much easier to build apps and applets with libcosmic compared to gtk4-rs. I have a lot of testimonials from developers who have built apps and applets with it. Some of which have also contributed a lot to cosmic and libcosmic, even if they had little or no Rust/programming experience previously.
Also, while it may be alpha, it is very usable. It is only in alpha so long as all features aren’t implemented yet. You may have to supplement a GNOME app here or there. Some bugs are also expected, but it works great otherwise. In many ways better than the 22.04 environment currently offered.
Distribution and user theming is also significantly improved over GTK with programmatic generation of themes—automatically adapting colors at runtime to the most ideal contrasting color values via OKLCH and other related algorithms—which distributions can use to customize to their preferred branding, and app developers can freely adopt without needing to worry about user themes breaking their apps. Users also get the convenience of generating their own custom themes with COSMIC Settings, even if that means creating an abomination of conflicting colors.
I’ve themed my 22.04 install to death – literally – as one would expect from a first Linux install. I’ve been clicking through multiple GUIs where only the checkboxes, dropdowns and radio buttons showed, zero labels or descriptions. Most recently the Raspberry Pi Imager.
I tried this out for fun a few releases ago. It was a mess. I’ve kind of lost track on why this is even a thing anymore, but anyone involved want to weigh in?
Its in alpha, of course its a mess 😅
My experiences with pop haven’t been amazing (just always ran into small quirks and issues that shouldnt be a thing, but I haven’t messed with it all that much), but I’m pretty happy for there to be another big polished desktop environment with resources behind it, I think it makes the linux ecosystem better :)
Its written in Rust, is a completely new code base so not held back by tech debt, and is a clean DE while still being fairly customizable even now.
I personally don’t care why system76 felt the need to code a new DE from scratch, Im just glad they did it. It has given us a whole new ecosystem of GUI toolkits, apps, etc. for linux written in Rust.
Give it a try. We are close to being finished. I don’t even know why anyone would think this isn’t a thing.
i think COSMIC is shaping up amazing and that you and your team are doing an amazing job, for what it’s worth
It’s predominantly a thing because System76 wants full control over the software that they ship on their systems.
Something I understand completely tbh - it’s risky having the success of your business being dependent on another entity’s software. Probably even moreso when Gnome is pretty notorious for having a desktop workflow that’s very different to what you’d traditionally see, and that’s controversial, potentially even alienating to some customers. So I’d probably want that control too.
When they used Gnome, they had to compromise, and in many cases, neither of them wanted to.
Over time, things became hostile between them. And to be honest, System76 were the more hostile of the two, IMO.
One of the more bizarre things to happen was System76 identifying and resolving bugs, applying them in PopOS, choosing not to upstream them to Gnome (twattish, IMO, but that’s their right), but where it really crossed a line IMO was System76 staff going onto bugtrackers and forum threads, advertising that XYZ was fixed in PopOS, but not in Gnome, because they actually cared about users. Quite a cynical marketing strategy.
Another frustrating point was a Gnome developer liking PopOS’s tiling implementation, then contacting PopOS to see if they’d be interested in collaborating on a similar - but dumbed down - implementation to use upstream. S76 refused to work with them, and fair enough, Gnome certainly isn’t entitled to help from S76, but afterwards S76 on multiple occasions said Gnome simply didn’t want more advanced tiling or were hostile to the idea- something clearly not true since Gnome expressed an interest.
When there was design changes to Gnome 40, Jeremy Stroller of S76 became angry and said he “didn’t consent” to these changes, as if Gnome should be ran by System76, not the Gnome developers themselves.
To be honest, almost all of it comes down to Jeremy Stroller specifically. And even System76 seems to have quietly accepted that, as he has moved away from OS work to firmware work.
But I’m getting quite off topic…
When I’ve tried the PopOS alphas, it was still janky, but I’m sure it’ll be far better in future, it’s an alpha after all, and they’re undertaking a huge job. Some of it seems really cool, and I always love fresh projects that are free of legacy cruft. I’m not sure it’s for me, though.
That’s honestly a very revisionist version of history. Unfortunately I’m too tired to do a proper rebuttal to it. We have made many upstream contributions to GNOME. There has never been an instance of refusal to upstream anything. There has been instances of upstream not being interested in our contributions though. But that’s how things go when you have creative differences with an upstream, or have technical contributions which aren’t of interest to upstream’s use cases. Keep in mind that just because a downstream makes something cool and interesting, it doesn’t automatically mean that creation fits in with upstream’s vision for their project. Hence why there’s hundreds of gnome-shell extensions that aren’t built into GNOME.
It’s not revisionist at all? There’s proof of all of this.
I never said S76 hadn’t made any. I’m sure plenty have been made.
Yes there has.
https://www.tumblr.com/system76/185276928258/system76-news-a-may-with-zing
Sounds good, right? Yeah, it is. Except:
– they didn’t report the bug in launchpad
– they didn’t send their patch/fix to launchpad
– they didn’t get in touch with Ubuntu/Canonical about fixing the issue
These things would’ve benefited everyone, but S76 chose not to.
But it gets worse. They did an upload in their overlay PPA with the description:
‘ * Backport to Pop!_OS because Ubuntu is too slow.’
Why needlessly shit on another project like that when you could just submit the patch to upstream, or at least file a bug report? Stabbing the back of upstream like that isn’t friendly.
There are multiple cases of conduct like this.
Of course, but I never really brought that into doubt. I alluded to it when I said Gnome were sometimes unwilling to compromise.
But don’t take my criticism of some of System76’s actions as hate. Especially not when the bulk of it comes from one person. I used PopOS for a long while and enjoyed it, and I hope PopOS, Cosmic, and S76 in general succeeds.
I don’t even think S76 is big enough to make complaints, honestly.
I’m curious about how this all came about, because if they wanted control of their software, the desktop is certainly not the first place to start. Misguided is the word I’d use if that was their goal.
I do want to understand the “why” of this, but also the “who”. Do they have a team of developers working on this, or just like…one guy?
There is a whole team working on COSMIC. Paid, full-time developers, UX designers, and a QA team.
They initially made a GNOME extension that contained their theming and an (optional) tiling for windows. Also some GTK apps, such as their app store frontend.
I still use it daily on my gaming pc (Pop!_OS 22.04) and it sucks. Slow, unresponsive, janky. And this is an extension that they had been maintaining for years. Apparently GNOME devs don’t really consider extension developers and it was like building on quicksand for the Pop team.
For better or worse, they made a decision to build their own fast, responsive COSMIC DE due to these frustrations with GNOME.
I am still on the old 22.04 with GNOME, but already started using the new COSMIC Store app GUI last year.
It is a HUGE leap from the old Pop!_Store and feels great.
The rest of the DE is probably not ready yet, otherwise they wouldn’t call it Alpha.
Oh and apparently they’ve made it really easy to brand the whole desktop env and are hoping for more orgs and companies to adopt it.
This is the actual truth of the matter. COSMIC is the result of many years of planning and developments in response to customer requests in Pop!_OS. Over time, the COSMIC extensions for GNOME diverged in UX to the point where it was untenable to maintain long-term, and impossible to make further progress without forking. We were going to create a modern desktop environment in Rust from the ground up regardless of whether disputes happened with GNOME Foundation / Core members, even if disagreements helped to accelerate that goal.
Today we have built a highly modular desktop environment in Rust from the ground up that anyone can use as a platform for building an operating system with thanks to the flexibility of the Wayland layer-shell protocol. You may mix and match any arrangement of layer-shell applets in any order. You can even swap out the cosmic session for a different desktop environment’s session, and vice versa load another desktop environment’s session inside of cosmic-comp.
Distribution and user theming is also significantly improved over GTK with programmatic generation of themes—automatically adapting colors at runtime to the most ideal contrasting color values via OKLCH and other related algorithms—which distributions can use to customize to their preferred branding, and app developers can freely adopt without needing to worry about user themes breaking their apps. Users also get the convenience of generating their own custom themes with COSMIC Settings, even if that means creating an abomination of conflicting colors.
We really wanted to improve upon the developer UX for Rust GUIs by creating libcosmic, and have succeeding in doing so with a toolkit based on Iced that uses Elm’s Model-View-Update paradigm. It is so much easier to build apps and applets with libcosmic compared to gtk4-rs. I have a lot of testimonials from developers who have built apps and applets with it. Some of which have also contributed a lot to cosmic and libcosmic, even if they had little or no Rust/programming experience previously.
Also, while it may be alpha, it is very usable. It is only in alpha so long as all features aren’t implemented yet. You may have to supplement a GNOME app here or there. Some bugs are also expected, but it works great otherwise. In many ways better than the 22.04 environment currently offered.
Thanks for the detailed explanation!
I’ve themed my 22.04 install to death – literally – as one would expect from a first Linux install. I’ve been clicking through multiple GUIs where only the checkboxes, dropdowns and radio buttons showed, zero labels or descriptions. Most recently the Raspberry Pi Imager.