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

Wallpaper Support #45

Open
ElectricalFault opened this issue Aug 9, 2024 · 3 comments
Open

Wallpaper Support #45

ElectricalFault opened this issue Aug 9, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@ElectricalFault
Copy link

The current scope of the project renders it exclusively towards a limited set of applications (e.g. color management).

Given the project's reliance on shaders, it could allow functions similar to the ones provided by Shadow Engine, but with support for Hyprland and multi monitor setups. If possible, it could also include support for mouse positioning, along with speed and quality settings.

Using a specific command (-w, --wallpaper), the user could apply the shader beneath the apps (equivalent to a wallpaper) instead of above.

@ElectricalFault ElectricalFault added the enhancement New feature or request label Aug 9, 2024
@loqusion
Copy link
Owner

I'm a bit concerned about UX issues arising from Hyprshade expanding to include more and more functionality. The wider the scope, the more difficult it is for users to understand "Would this be useful to me?" Shaders are, after all, a means to an end, and the more ends there are the harder it is to sift through each and every one of those ends to determine if they're relevant — the easier it is to overlook this project. Case in point: even after looking at the readme of the project you linked, I'm still not quite sure what it does or why I'd want to use it.

That being said, I'd still be interested in further discussion to see if it's viable to include in Hyprshade. Could you explain a bit more and maybe provide some examples?

@ElectricalFault
Copy link
Author

Your project is already highly reliant on .glsl shaders, and with Hyprland's existing shader compatibility, including this feature could be a game-changer, for reasons I will provide below.

The Shadow Engine offers an alternative for setting wallpapers that goes beyond the traditional use of static images or videos (e.x. jpeg, png, gif, mp4). Instead, it allows for the live rendering of scenes, thus surpassing the limitations of conventional video formats, as there is no defined endpoint. You may have encountered similar features in applications such as Wallpaper Engine. With all due seriosity, I have confidence that this could ignite a new revolution in unix customization, especially considering the growing popularity of Hyprland.

Taking into account the dynamic nature of shaders, more applications are possible, such as keyboard, time(e.x. live clocks), sound(e.g. interactive spectrograms), and even mouse movements(e.g. parallax effects) causing an effect on the wallpaper. Please have a look at the following examples:

@loqusion
Copy link
Owner

Ok, I see where you're coming from now.

This might be non-trivial to implement, since Hyprshade currently relies on Hyprland's decoration:screen_shader (archive) variable which doesn't support this afaict. We'd have to migrate to something more advanced using an OpenGL binding directly. That being said, I'd be willing to give this a try.

If you'd like to have a go at implementing this, please do note that the Python version of Hyprshade is currently in maintenance mode while the project is being rewritten in Rust. The plan is to merge that repository into this one when it reaches 100% feature parity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants