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
  • 238 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle

  • You can either return cosmic::Element<Message>, impl Into<cosmic::Element<Message>>, or cosmic::widget::Button<Message> with your functions.

    Every widget can .into() or .apply(Element::from) into a cosmic::Element.

    I’d recommend using the Grid widget so that your buttons can scale with the window.

    cosmic::widget::grid()
        .push(widget1())
        .push(widget2())
        .push(widget3())
        .insert_row()
        .push(widget4())
        .push(widget5())
        .push(widget6())
        .row_spacing(12)
        .column_spacing(12)
        .justify_content(JustifyContent::Stretch)
        .width(Length::Fill)
        .height(Length::Fill)
        .into()
    

















  • Pop!_OS 22.04 uses GNOME with a lot of custom extensions and patches. Pop!_OS 24.04 will switch to COSMIC.

    GNOME Shell extensions are JavaScript monkey patches that get injected directly into the gnome-shell process, which is running inside a JavaScript runtime. So they have no effect outside of GNOME Shell.

    COSMIC panels are already configurable, so there’s no need for a third party panel applet to have dock applets embedded in the panel. You can configure the panel and dock to any layout. Be that a GNOME layout, Unity layout, Mac OS layout, Windows layout, etc.

    It would be redundant to rebrand Pop!_OS to COSMIC OS. The cosmos was created by a Pop!


  • It is a desktop environment, which is the entire graphical user interface of the OS, and all of its bundled applications. It is also a platform which developers can build COSMIC applets and applications with. Applications being desktop applications, and applets being the shell components. Shell components are small interface elements such as the panel, dock, panel buttons, on-screen displays, launcher, etc.

    It will take its place alongside the two giants in this space: KDE and GNOME. KDE being a desktop environment whose applets and applications are written in C++/JavaScript using Qt/QML as its GUI library. GNOME being and desktop environment whose applets are written in JavaScript with the GNOME Shell Toolkit; and its applications are written primarily in C with GTK as its GUI library.

    COSMIC is instead built from the ground up entirely in Rust from top to bottom. Every applet and application is written in Rust, and the same libcosmic GUI library is used for developing both of them. Rust is a statically typed programming language which has dethroned C/C++ in recent years, and has been the most loved programming language on StackOverflow for the last eight years. We aim to make COSMIC the preferred platform for developing applications in Rust, with a GUI toolkit that’s easier to develop than the alternatives.