Skip to content

System76’s Pop!_OS COSMIC Desktop To Make Use Of Iced Rust Toolkit Rather Than GTK

DESKTOP --

System76 has been developing their own COSMIC desktop as the next evolution for their Pop!_OS Linux distribution built atop an Ubuntu base. Interestingly with this big COSMIC desktop undertaking, which is being written in the Rust programming language, they have decided to shift away from using the GTK toolkit to instead make use of Iced-Rs as a Rust-native, multi-platform graphical toolkit.

One of the System76 engineers involved commented on Reddit about the Iced toolkit usage by COSMIC:

The UX team has been carefully designing widgets and applications over the last year. We are now at the point where it is critical for the engineering team to decide upon a GUI toolkit for COSMIC. After much deliberation and experimentation over the last year, the engineering team has decided to use Iced instead of GTK.

Iced is a native Rust GUI toolkit that’s made enough progress lately to become viable for use in COSMIC. Various COSMIC applets have already been written in both GTK and Iced for comparison. The latest development versions of Iced have an API that’s very flexible, expressive, and intuitive compared to GTK. It feels very natural in Rust, and anyone familiar with Elm will appreciate its design.

Iced is a cross-platform GUI library written for the Rust programming language and “focused on simplicity and type-safety.” Iced in turn is inspired by the Elm language. The Iced toolkit works not only for Linux, macOS, and Windows, but also web applications.


System76 is beginning to transition their COSMIC desktop software to using the Rust-native Iced toolkit, as shown in this example by Reddit user edfloreshz.

It will be quite interesting to see what System76 ultimately comes up with for their COSMIC desktop on Pop!_OS once finalized.

.