Michael Murphy (S76)

I’m a System76 engineer / Pop!_OS maintainer. I’ve been a Linux user since 2007; and Rust since 2015. I’m currently working on COSMIC-related projects.

  • 49 Posts
  • 188 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle
rss









  • See the Ubuntu Summit 2024 talk: https://www.youtube.com/watch?v=bwrBKccfYws

    It’s not resources, in fact, this Alpha performs pretty poorly on its own vs Gnome

    I haven’t seen any benchmark where GNOME was more performant than COSMIC. Despite alpha status, it is already much more responsive than GNOME.

    GNOME uses a single thread to render all displays in a multi-display configuration. This is often so slow that they need to rely on double or even triple buffering when the frame rate lags behind the display’s refresh rate. Meanwhile in COSMIC, thanks to the thread safety features of Rust, it was easy to implement thread-per-display multi-threaded rendering. This means that each display is rendered and composited independently on their own respective threads.

    GNOME’s compositor also has an entire JavaScript runtime bundled inside of it, which it uses for drawing interfaces and handling application logic for those interfaces. All within the same process as the compositor, slowing down its event loop. COSMIC instead keeps the compositor process very lean, with all desktop interfaces running in their own isolated processes outside of the compositor via wayland’s layer-shell protocol.







  • You can’t release a desktop operating system without a file manager or text editor. The xdg desktop portal interface for the file chooser portal dialogs requires a file manager to be implemented for the portal to be able to create a file chooser dialog for the operating system on behalf of applications requested file choosers through the portal.

    The text editor is also required to have a GUI toolkit featuring properly rendered and editable text. It is thanks to the text editor project that the Rust ecosystem now has cosmic-text as the de facto crate for handling text layout, shaping, and rendering with support for international language glyps, ligatured language scripts, and bidirectional text layouts.