danth/stylix

Ability to stop Stylix from starting Hyprpaper service automatically

Opened this issue · 8 comments

I feel like there should be a way of disabling the Hyprpaper part of the Hyprland module, as I want my Hyprland to be properly themed to my scheme but I have a script that sets wallpapers from a repository manually for me.

I want to be able to launch Hyprpaper and run the script as an exec-once call in Hyprland, but Stylix starts the SystemD Hyprpaper service so this becomes impossible, meaning that my wallpaper is set half of the time as I run into socket issues

I feel like there should be a way of disabling the Hyprpaper part of the Hyprland module

This was enabled by default according to:

This is wrong, hyprpaper works perfectly well as a standalone service for all wlroots-based compositors. It should be a separate target.

Depends whether we're only setting it up when it's already been enabled, or if we're also installing it by default. If we removed the services.hyprpaper.enable = true line then I would support it being separate.

On the other hand, enabling the service automatically is helpful for Hyprland users who expect the wallpaper to "just work".

-- #377 (comment)

I want my Hyprland to be properly themed to my scheme but I have a script that sets wallpapers from a repository manually for me.

I want to be able to launch Hyprpaper and run the script as an exec-once call in Hyprland, but Stylix starts the SystemD Hyprpaper service so this becomes impossible, meaning that my wallpaper is set half of the time as I run into socket issues

Does stylix.targets.hyprland.hyprpaper.enable = false; in #501 resolve this issue?

Yup, just tested on your branch and everything hyprpaper was removed upon rebuilding once it was set to false. And once adding hyprpaper manually, my wallpaper script is working perfect so far. So seems to be working to me. Thank you!

One thing though is that when hyprpaper is enabled externally, it still attempts to apply the wallpaper as far as I can see. So it may still cause socket problems.

One thing though is that when hyprpaper is enabled externally, it still attempts to apply the wallpaper as far as I can see. So it may still cause socket problems.

The actual Hyprpaper service applies the following settings by default:

config =
lib.mkIf
(config.stylix.enable && config.stylix.targets.hyprpaper.enable)
{
services.hyprpaper.settings = {
preload = [ "${config.stylix.image}" ];
wallpaper = [ ",${config.stylix.image}" ];
};
};

Ahh, makes sense. Thank you.

I'm using stylix on NixOS (i.e. not home-manager) and I still get a build error saying I haven't defined a "hyprpaper service" (I don't use hyprland or hyprpaper). From what I understand, hyprland and hyprpaper are targets for home-manager and not NixOS. Will these targets be reflected on NixOS soon too?

@diego-est Please could you send the specific error message you're getting?

@diego-est Please could you send the specific error message you're getting?

Sorry, in between the time I uploaded this question and now I updated my flake inputs and now it works! (I think my nixpkgs input was just very out of date)