Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

module idea: wallpapers (or backgrounds) #130

Open
fiftydinar opened this issue Feb 12, 2024 · 3 comments
Open

module idea: wallpapers (or backgrounds) #130

fiftydinar opened this issue Feb 12, 2024 · 3 comments
Labels
state: in-progress Work has started type: discussion Questions, proposals and info that requires discussion. type: feature Brand new functionality, features, pages, workflows, endpoints, etc.

Comments

@fiftydinar
Copy link
Collaborator

fiftydinar commented Feb 12, 2024

It would make it easier for the user to copy wallpapers into desktop environment.

  • 1st option would be to just copy supplied wallpapers into /usr/share/backgrounds location.

  • 2nd option would be to select which wallpaper to set by default, with option for light & dark variants combined (this is supported in Gnome with .xml's in /usr/share/gnome-background-properties).
    We would need to use gschema-override for this too, which we can name with zz2-bluebuild-wallpapers.gschema.override name (compared to zz1- prefix used in gschema-overrides module).

    Here's how gschema.override setting looks, which achieves this:

    [org.gnome.desktop.background]
    picture-options='zoom'
    picture-uri='file:///usr/share/backgrounds/bluebuild/mybackground-light.jxl'
    picture-uri-dark='file:///usr/share/backgrounds/bluebuild/mybackground-dark.jxl'
    primary-color='000000'
    secondary-color='FFFFFF'
    

    KDE is not known for good implementation for system-settings override, so we would probably have to exclude default wallpaper support for it.
    If someone knows more about how KDE handles backgrounds, please write comment.

  • Notice that wallpaper should be as small in file-size as possible with acceptable quality, to make wallpaper load instantly on low-end machines & to make light/dark mode transition seamless & stutter-free.
    Around 500-600kb of file-size would be my recommendation.
    For lossless compression, you can try to convert wallpaper into JXL Lossless or WEBP Lossless (JXL is the best. Do this only when you are converting from lossless formats like PNG).
    For lossy compression, you can try to convert wallpaper into JXL, AVIF or WEBP format (sorted from best to worse).

    Perhaps, I can make this automatic too with lossless compression at least.

    I know that Gnome supports JXL image format for wallpapers.
    I only see that KDE supports that format for image viewing, but I'm not sure if it supports setting JXLs as wallpapers too.

@xynydev
Copy link
Member

xynydev commented Feb 12, 2024

Nice idea! Including a lot of wallpapers will fill the build space pretty quickly, though, that's why the old bling wallpapers used RPMs. Including wallpapers from an external source could be cool too, but might get complicated. Setting up the correct XML and whatever so that the wallpapers are in DE wallpaper pickers would be the main feature of the module IMO, though.

@fiftydinar
Copy link
Collaborator Author

fiftydinar commented Feb 12, 2024

Nice idea! Including a lot of wallpapers will fill the build space pretty quickly, though, that's why the old bling wallpapers used RPMs.

Yeah, that's true. I can maybe put some arbitrary file-size limit or/and simply warn in README about this.

Including wallpapers from an external source could be cool too, but might get complicated.

I agree, that's cool. Something similar to what fonts module does with google-fonts & nerd-fonts. We would need to find some reliable & popular wallpaper source for this. Open-source preferred. Maybe devianart wallpaper category or something.

Setting up the correct XML and whatever so that the wallpapers are in DE wallpaper pickers would be the main feature of the module IMO, though.

Yeah, that's what I realized when I looked into what needs to be manually done to do those things.
Users wouldn't need to know about those XML's & gschema stuff, they would just put wallpaper & be happy that it works.

External wallpaper source would be a great feature too!

@xynydev xynydev added state: approved Approved to proceed. type: feature Brand new functionality, features, pages, workflows, endpoints, etc. state: in-progress Work has started type: discussion Questions, proposals and info that requires discussion. and removed state: approved Approved to proceed. labels Mar 8, 2024
@fiftydinar
Copy link
Collaborator Author

@xynydev Now that I think about, I think that your proposed recipe format is pretty good, with some exception:

type: wallpapers
default-scaling: zoom
wallpapers:
   - file: filename-scale.jpg
     scaling: scaled
   - file: filename-tile.jpg
     scaling: wallpaper
default-wallpaper:
     light: filename-center-light.jpg
     dark: filename-center-dark.jpg
     scaling: centered

How to handle specifying folders here in wallpapers-file?
What if user wants to copy everything from /files/wallpapers/* by specifying type: wallpapers only?

Will have to think how to handle that here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: in-progress Work has started type: discussion Questions, proposals and info that requires discussion. type: feature Brand new functionality, features, pages, workflows, endpoints, etc.
Projects
None yet
Development

No branches or pull requests

2 participants