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.

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

help-circle











  • I wouldn’t rule out the possibility of a cosmic-applets-community package which bundles third party applets, or the gradual inclusion of popular applets into cosmic-applets. Given that an applet would only become popular if there’s a lot of need for those use cases, then it would make sense to open a path to getting them mainlined.







  • Michael Murphy (S76)@lemmy.worldOPtoLinux@lemmy.mlCOSMIC Store Prototype
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    1 year ago

    Static linking is not an issue. Binaries may require more space on disk, but the benefit is that they are self-contained, portable, with excellent performance, and low memory usage. Binaries are compiled with LTO, so unused functions are stripped from the binary. What remains is highly optimized to that application’s use cases.




  • Michael Murphy (S76)@lemmy.worldOPtoLinux@lemmy.mlCOSMIC: The Road to Alpha
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    2 years ago

    That’s already not possible on GNOME because some GNOME applications hardcode their theme, others use libadwaita, some use GTK4 without libadwaita, some use GTK3, and there may still be a GTK2 app lingering around here and there in the repos (ie: GIMP).

    Few people are going to care that there’s a GTK application installed on their COSMIC desktop. COSMIC will automatically generate GTK3/4 themes to match the system theme. We may even automatically generate a libadwaita theme, so it will look “same enough”.


  • Michael Murphy (S76)@lemmy.worldOPtoLinux@lemmy.mlCOSMIC: The Road to Alpha
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    2 years ago

    None of what you stated makes sense. Most people are not using exclusively GNOME applications on GNOME, or exclusively KDE applications on KDE. Like with elementary OS, most people are running applications like Steam, Spotify, Discord, Zoom, Slack, etc. Plenty of people are using Qt and KDE applications on GNOME, or GTK and GNOME applications on KDE. You think no one uses Krita or Scribus on GNOME, or GIMP on KDE?

    Thanks to Flatpak, you might even be running elementary applications on your system. Even Windows back in the late 90s and 2000s was full of desktop applications with custom proprietary interfaces. Nowadays everything’s becoming a web view bundled with a Chromium runtime, and you’re more worried about a COSMIC app ecosystem having a different UI from GTK?

    COSMIC is a good thing because it’s a standardized and open source cross-platform native desktop toolkit. People can create themes for it, and those themes can be bundled alongside GTK and Qt/KDE themes. Due to the nature of how Rust libraries are developed and linked, COSMIC applications are mostly statically-linked, which even makes it trivial to put them on a USB drive and bring them to any PC.









  • GNOME was focusing on building Rust bindings for GTK for many years before Qt development picked up. The GTK bindings were usable within a year or two after Rust’s 1.0 release. Yet even today, those looking to build applications in Rust will find that GTK is the only mature toolkit right now. And if you’re doing that today, I’d recommend starting with Relm4 for the best GTK Rust experience.

    Rust does not support the C++ ABI, and Qt does not provide a C interface, so much work has to be done on building the tooling for binding C++ libraries to Rust. That work is still ongoing, so some have opted to use QML instead of interfacing with Qt C++ libraries. Yet if you’re looking to use Qt or QML, you may as well use Slint instead. It’s developed by former Qt/Trolltech developers and has a similar approach as QML.