zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
{
  lib,
  pkgs,
  config,
  ...
}:

{

  options.zpha.programs.wpaperd.enable = lib.mkEnableOption "wpaperd";

  config = lib.mkIf config.zpha.programs.wpaperd.enable {
    users.users.zaphyra.maid = {
      packages = [ pkgs.wpaperd ];

      file.xdg_config = {
        "wpaperd/wallpaper.toml".source = pkgs.writers.writeTOML "wpaperd-config.toml" {
          default = {
            duration = "30m";
            mode = "center";
            sorting = "ascending";
            transition.bounce = { };
          };

          any.path = pkgs.symlinkJoin {
            name = "backgrounds";
            paths = with pkgs.nixos-artwork.wallpapers; [
              binary-black
              binary-blue
              binary-red

              nineish
              nineish-solarized-dark
              nineish-dark-gray
              nineish-catppuccin-mocha-alt
              nineish-catppuccin-mocha
              nineish-catppuccin-frappe-alt
              nineish-catppuccin-frappe
              nineish-catppuccin-macchiato-alt
              nineish-catppuccin-macchiato

              simple-red
              simple-dark-gray
              simple-blue

              dracula
              gradient-grey
            ];
            stripPrefix = "/share/backgrounds/nixos";
          };
        };
      };

      systemd.services.wpaperd = {
        wantedBy = [ "niri-session.target" ];
        partOf = [ "niri-session.target" ];
        after = [ "niri-session.target" ];
        environment = lib.mkForce { };
        unitConfig.ConditionEnvironment = "WAYLAND_DISPLAY";
        serviceConfig = {
          ExecStart = lib.getExe pkgs.wpaperd;
          Restart = "on-failure";
        };
      };
    };

    zpha.programs.niri.settings.binds = {
      "Mod+Home".spawn = [
        (lib.getExe' pkgs.wpaperd "wpaperctl")
        "next"
      ];
    };
  };

}