Skip to content

feat(wallpaper selector): add wallpaper selector menu#1820

Merged
end-4 merged 36 commits intoend-4:mainfrom
sinnafuls:main
Aug 27, 2025
Merged

feat(wallpaper selector): add wallpaper selector menu#1820
end-4 merged 36 commits intoend-4:mainfrom
sinnafuls:main

Conversation

@sinnafuls
Copy link
Copy Markdown
Contributor

@sinnafuls sinnafuls commented Aug 15, 2025

Describe your changes

Implemented a Wallpaper Changer using the same style and theming as the Overview Module. It utilizes native Qs functions to generate thumbnails for display to the user, eliminating the need for additional scripts to generate thumbnails.

Incorporates lazy-loading to handle cases where a thumbnail hasn't been generated yet (which can occur with some 4K images during reading and resizing). Thumbnails fade in gradually. All my wallpapers are 1080p or 1440p, so they load instantly.

Users can select a new wallpaper using either arrow keys or the mouse. The feature integrates seamlessly with the current system by using switchwall.sh to apply the new wallpaper.

Added a keybind (Super + Comma) to toggle the Wallpaper Selection Menu.

Wallpapers are pulled from ~/Pictures/wallpapers.

Is it ready? Questions/feedback needed?

Tested on a fresh install, works as intended.

image
2025-08-15.17-41-48.mp4

@yahya9090
Copy link
Copy Markdown

i used it but for some reason its blank

@sinnafuls
Copy link
Copy Markdown
Contributor Author

i used it but for some reason its blank

Weird, and ~/Pictures/wallpapers is populated with images?

@yahya9090
Copy link
Copy Markdown

i used it but for some reason its blank

Weird, and ~/Pictures/wallpapers is populated with images?

Yeah

@sinnafuls
Copy link
Copy Markdown
Contributor Author

sinnafuls commented Aug 16, 2025

i used it but for some reason its blank

Weird, and ~/Pictures/wallpapers is populated with images?

Yeah

Weird, I just tried on a fresh install again and it works, and another user in the Discord tried it as well and it works?

What is "blank" anyway? The wallpaper when you set it? Or like the actual menu, like it's not populated?

Or are the images there, but just not loaded in correctly? There is a lazy loading function when Qml is still processing the thumbnails, if you open the selection menu and wait a couple seconds does it populate or no?

Copy link
Copy Markdown
Owner

@end-4 end-4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So in general two things

  1. Rename "wallpaper overview" to "wallpaper selector"
  2. Make it sufficiently flexible:
  • Must have directory navigation and address bar
  • Can have common xdg dirs on the left side (Downloads, Pictures, etc). This is very easy, can be done in this PR or later

Comment thread .config/hypr/hyprland/keybinds.conf Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/modules/wallpaperOverview/WallpaperOverview.qml Outdated
Comment thread .config/quickshell/ii/services/Wallpapers.qml Outdated
Comment thread .config/quickshell/ii/services/Wallpapers.qml
@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 18, 2025

@rudraaaaa-05
Copy link
Copy Markdown

Hey, How can i make this work with video wallpapers? When i apply the video wallpaper it just gets removed instantly.
Also a lot of image (jpg) thumbnails are missing, the image resolution is 1920x1080, but i'm sure that doesn't matter

Thumbnail Issue:
image
(there's also like a weird overlap of the pictures in the bottom while scrolling)

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 20, 2025

Thumbnail generation is to be added and video files are not yet supported
It's a PR for a reason

@0blivi0nis
Copy link
Copy Markdown
Contributor

damn this has turned into something so much better than sleex design, the custom file picker is 🔥

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 24, 2025

The last problem to solve is thumbnail maintenance: If image changes, the thumbnail should be regenerated
The picker currently looks like this
image

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 24, 2025

I realized just generating the image is still not fully spec-compliant... anyone got an idea of what tool we could use?

@0blivi0nis
Copy link
Copy Markdown
Contributor

Would you have to do something similar to what i was doing with the other wallpaper selector?

Also, currently, if you switch folders, and close the selector then open it again it opens to the previous folder instead of opening the Wallpapers folder. I think it should function this way

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 25, 2025

Would you have to do something similar to what i was doing with the other wallpaper selector?

The solution in your PR is even further away from being spec-compliant than what we have right now, but if you can make line 57 of ThumbnailImage.qml a script that properly sets metadata (and using it to properly regenerate the thumbnail when necessary) according to the spec (see the link above) that would be awesome

Ricing is normally "It's my machine I can do weird shit" but this is rice is not going to run on only one single person's machine

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 25, 2025

This one is interesting: https://github.com/difference-engine/thumbnail-generator-ubuntu

It works, but only generates "normal" size thumbnails and there doesn't seem to be a flag

Edit: I managed to add sizes in difference-engine/thumbnail-generator-ubuntu#11 ... I hope they still accept PRs after 5 years

@end-4
Copy link
Copy Markdown
Owner

end-4 commented Aug 27, 2025

Since the script is small and the maintainers seem inactive to accept my PR I decided to just copy it over.
When it gets merged and the python package gets updated we can use it, but for now this copying works and is not a big problem

So we're ready 🎉

It would be nice to have indeterminate progressbar while thumbnails are being generated, but for now this works

@end-4 end-4 merged commit 5b301ad into end-4:main Aug 27, 2025
@lash0000
Copy link
Copy Markdown

It got merged? yay

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants