COSMIC Store Prototype

Michael Murphy (S76)@lemmy.world to Linux@lemmy.ml – 188 points –

cross-posted from: https://lemmy.world/post/13038090

https://fosstodon.org/@soller/112083947500126938

COSMIC Store is coming along quickly, though there is still a lot left to do. It loads nearly instantly, because it uses bitcode to cache appstream data in an optimized format. It uses very little memory compared to the Pop Shop. Searches can be performed live as they are done in parallel. Searching for "e" takes 5.5 ms on my desktop and returns 4601 results.

39

Not sure how long this will last, but here are some videos I took of it, try not to mind the crunch on the last one, I had to use qsv_vp9 for it since I was running out of time and space. Also don't mind the fist video's bad fps, I was compiling in the background and forgot.

Simultaneously installing apps: https://cdn.discordapp.com/attachments/719811866959806514/1217198163149197332/record.mp4?ex=66032720&is=65f0b220&hm=b1e495b579a5313cbaf0f3046ba78479f51dd44fa9f8ecf21929784c27fcbd66&

Phone aspect ratio: https://cdn.discordapp.com/attachments/719811866959806514/1217198532641951856/record.mp4?ex=66032778&is=65f0b278&hm=4c4031dc44a5432570605bfa202720c0613105cd0c8487954d5859e0ec52e3ce&

Plasma mobile on x86 tablet vs gnome software: https://cdn.discordapp.com/attachments/719811866959806514/1217287580916125818/tablet.webm?ex=66037a67&is=65f10567&hm=c4afb4d964b35e04f0a4b12d387a5110403ecf74d267747b5dc2738ff12166bd&

wow that's gorgeously fast. I was beginning to give up on linux app stores, but this gives me hope

Im very happy with how responsive its being in general. Discover and gnome's store are actually really sluggish to use when scrolling through in low end hardware and this app is smooth as silk.

even Fdroid stores on my phone are slower.

First impressions is I'm shocked by just how fast it is, Aside from the first boot which for some reason doesn't propagate apps and needs a reboot, it's extremely fast, Gnome software and Discover aren't even within the same league of responsiveness and speed. I didn't showcase Discover since I don't know where the cache files are to delete them.

Touchscreen for sure I wish was handled better. you can see I accidentally clicked an app in the last video instead of scrolling, but thats something that I assume will be fixed with time.

Would be really useful to steal a few features from the steam store:

  • show ratings based on review in last X period of time (month/year etc)
  • show the highest upvoted reviews from that period (sort by usefulness)
  • filter by how many hours they used the software (opt in of course).

I just realized that I haven't read any infos about the package manager that Cosmic is going to use. Is it going to be build on top of Ubuntu like Pop!OS and use apt? Are the apps going to be served by the package manager or as Flatpaks? If the later, it could be interesting to public them on the Flathub Beta remote when they reach that stage.

Cosmic is a desktop environment, not a distro. So Pop!OS will keep using deb packages and something like a Fedora Cosmic Spin will use rpm packages.

Probably just PackageKit

PackageKit isn't a package manager in the same sense as what I meant. It's more like a one level above "front end" to be able to manage different package managers with the same program. This means that "Software Stores" that use packagekit like Gnome Software or KDE Discover will work on most Linux system with whatever package manager is used in the backend. For example on a Fedora Workstation, packagekit makes it possible to install, update and manage both rpm installed through dnf, Flatpaks and if I wanted, Snaps, while on a Debian based system it would be able to manage your apt stuff, or on Arch packages installed through pacman for example. But from what I heard this also makes it a somewhat clunky and slow piece of software that has become kind of clunky and hard to maintain over the years, so its also an interesting question whether Cosmic is going to use it.

I know that. That's why I said that.

I meant that they are not going to use any specific package manager, just PackageKit

You can use it with dnf and rpm-ostree too already ;D

This is not relevant to this specific post but does anyone know how if the static linking used in Rust is an issue with cosmic?

The last time I tried building a small app with Iced it was pretty bing (20MB) even though it didn't do much. On the other hand a GTK app in rust easily fits within 5MB.

Anyway I'm thrilled to try cosmic out as soon as it reached the Arch repos.

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.

And they can be packaged for any distro without a single problem

It looks like I was right: https://github.com/pop-os/cosmic-applets/pull/282

20MB for every simple application is a lot, and multical binaries won't be an option for third party developers.

This is still worth the much better DX of using Rust though.

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.

I wasn't thinking about applets but more about full-blown libcosmic applications.

Gnome Circle bas a lot of very simple apps that do just 1 thing and weight a couple MB each at worst.

With iced such an ecosystem would be at 20MB per app, so simple " don't 1 thing and do it right" apps would be less scalable. And I doubt you would want to have all of gnome circle as a multicall binary.

You might be surprised how much disk space those GNOME Circle applications actually require, despite being dynamically linked to a lot of GTK/GNOME libraries. Unless they're written in a scripting language, they're much closer to a COSMIC application than you think.

I don't see the issue with an application having a static binary within the realm of 15-25 MB. Even if you had 100 applications installed, that's only 2 GB of disk usage.