blue-build / modules

BlueBuild standard modules used for building your Atomic Images
Apache License 2.0
22 stars 26 forks source link

module idea: icon-theme #163

Open fiftydinar opened 4 months ago

fiftydinar commented 4 months ago

It would be similar to proposed [sound-theme]() module, but would be easier to implement, as it's more centralized.

Icon pack is copied to /usr/share/icons/ folder, icon cache & app-menu is updated & that should be it in a nutshell.

We could potentially have a external provider similar to fonts module, which would automatically download & install icon-theme you input. Issue with this is that not all icon-themes are the same in structure, so some of them would require different installation steps. So we would maybe provide some popular icon-themes as a choice & maintain that.

Morewaita icon theme is popular as far as I see: https://github.com/somepaulo/MoreWaita

We would only support this in Desktop Environments which encourage icon-theme support though, as Gnome strictly prohibits that as something official. We want to be official-compliant.

mecattaf commented 4 months ago

Specifically in the case of the icon theme you mentioned it's already packaged in COPR, so in your recipe add:

- type: rpm-ostree
    repos:
       - https://copr.fedorainfracloud.org/coprs/dusansimic/themes/repo/fedora-%OS_VERSION%/dusansimic-themes/-fedora-%OS_VERSION%.repo
    install:
       - morewaita-icon-theme

More generally for installing icon themes on Ublue I would suggest leveraging Fedora COPR instead of doing it through a blue-build module. For inspiration here is the .spec file I use for my gtk theme and icon pack: https://github.com/mecattaf/rpmbuild/blob/main/SPECS/catppuccin-theme.spec I leverage a fedora distrobox called "rpmbuilder" (short instructions here: https://github.com/mecattaf/rpmbuild/tree/main) The .spec file mentioned above assumes you save your theme.tar.gz folder containing all the icons you want in the rpmbuild/SOURCES/ directory. Note that when using a COPR repo the icons will be placed in /usr/share/themes and /usr/shares/icons instead of /var/home/{user}/.themes and .icons

I guess the last step would be to create a github repo where contributors list the COPR repos they create for specific icon packs ("awesome-copr-icons"?)

Hope that helps

fiftydinar commented 4 months ago

@mecattaf Yeah, I'm aware of RPM being present.

The reason why we would want this as a module instead is better discoverability by users. We can simply utilize rpm-ostree to install those packages, that's not a worry.

Making a special GitHub repo for those could be nice. We would setup auto-updating & auto-building with Pull GitHub app & GitHub webhooks, but webhook never worked for me, even when I set it up properly, so I have to merge Pull PR & update the build manually.

xynydev commented 4 months ago

RPMs from Copr would definitely be easier, but I don't see how that's something that needs a new module (the features required are already supported in the rpm-ostree module). I'm also hesitant to create a new Copr repo like this that does not fall under the main BlueBuild scope, except for making a specific customization slightly easier.

Another concern I have is making another Fedora-only module. Supporting other base images is the long-term goal after all.

fiftydinar commented 4 months ago

RPMs from Copr would definitely be easier, but I don't see how that's something that needs a new module (the features required are already supported in the rpm-ostree module). I'm also hesitant to create a new Copr repo like this that does not fall under the main BlueBuild scope, except for making a specific customization slightly easier.

Another concern I have is making another Fedora-only module. Supporting other base images is the long-term goal after all.

Yeah, it's tough to make this cross-compatible across all OSes & all DEs.

I just made an issue to open discussion, as I would feel someone would request it soon or later.