diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4a847d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/result diff --git a/home/lib/colorScheme/buildColorScheme.nix b/home/lib/colorScheme/buildColorScheme.nix index 4da44ef..892bc2c 100644 --- a/home/lib/colorScheme/buildColorScheme.nix +++ b/home/lib/colorScheme/buildColorScheme.nix @@ -17,20 +17,7 @@ let else colorScheme; - wallpapers = config.wallpapers; - - getImage = - image: - if builtins.typeOf image == "path" then - image - else - pkgs.fetchurl { - inherit (builtins.filter (wallpaper: wallpaper.name == image) wallpapers |> builtins.head) - name - url - sha256 - ; - }; + getImage = image: if builtins.typeOf image == "path" then image else "${pkgs.wallpapers}/${image}"; matugenToBase16 = colorScheme: diff --git a/home/lib/wallpaper/buildWallpaper.nix b/home/lib/wallpaper/buildWallpaper.nix index e931dad..8afb2a9 100644 --- a/home/lib/wallpaper/buildWallpaper.nix +++ b/home/lib/wallpaper/buildWallpaper.nix @@ -11,12 +11,19 @@ let getWallpaper = wallpaper: let - wallpaperPkg = pkgs.fetchurl { inherit (wallpaper) name url sha256; }; + inherit (wallpaper) name path convertMethod; in { - inherit (wallpaper) name convertMethod; - path = "${wallpaperPkg}"; - }; + inherit name convertMethod; + } + // ( + if path == null then + { + path = "${pkgs.wallpapers}/${name}"; + } + else + { inherit path; } + ); getName = path: @@ -26,7 +33,8 @@ let wallpaper: let inherit (wallpaper) path convertMethod; - name = getName path; + # name = getName path; + name = match "(.*)\\..*" wallpaper.name |> head; live = (toString path |> match ".*gif$") != null; thisWallpaper = { inherit name path live; }; in diff --git a/home/tweaks/wallpaper.nix b/home/tweaks/wallpaper.nix index d2c04dc..93427ed 100644 --- a/home/tweaks/wallpaper.nix +++ b/home/tweaks/wallpaper.nix @@ -2,68 +2,46 @@ wallpapers = [ { name = "mygo-watch-tv.png"; - url = "https://i.imgur.com/FSneBN2.jpg"; - sha256 = "1pznrjx6rb8qm947q63dzkrmv188h3nrcp8cdmd7hs5gs30azfww"; convertMethod = "gonord"; } { name = "frieren-butterflies.jpg"; - url = "https://i.imgur.com/H1noDhu.jpg"; - sha256 = "0vypn9sxarv2gw42hs2haasyvzqyp02s6vaqygp9xbg59m0x2l73"; convertMethod = "lutgen"; } { name = "frieren-fire.jpg"; - url = "https://i.imgur.com/c3CWmia.jpg"; - sha256 = "0lgqwjl6jd1y84cz368s4sq0krzg67znqxirzapqxqvfdpn9rwbw"; convertMethod = "lutgen"; } { name = "anon-soyo.jpg"; - url = "https://i.imgur.com/koPV5sz.png"; - sha256 = "031s3v8fp5q2dm95wra898jq9l4i49wlwf97iah6bjqi5ihaxs2x"; convertMethod = "gonord"; } { name = "mygo-train.jpg"; - url = "https://i.imgur.com/OzR8c12.jpg"; - sha256 = "0fnwasnr19wfyhxa5yq7g3315d1641602x7fg8sv1qv95dlj55w2"; convertMethod = "gonord"; } { name = "green-blue-flowers.jpg"; - url = "https://i.imgur.com/Kvjqksw.jpg"; - sha256 = "1la4g50sxc940j9vcf7440l73ycx05z63dmpfq8xn0b746hzmnkq"; convertMethod = "gonord"; } { name = "bangqiaoyan-girl-sky.jpg"; - url = "https://i.imgur.com/qJ3ta1b.jpg"; - sha256 = "1chzklk6j893fdxhp0jhjwgwyhg3p6hjrgrrr5fw8gkllx91sx5w"; convertMethod = "gonord"; } { name = "morncolour-pink-landscape.png"; - url = "https://i.imgur.com/BBzCYYQ.png"; - sha256 = "14kjc7zipbwvswjbkzqk4781as6pn31naq26nxknzhmr4z5rhzci"; convertMethod = "gonord"; } { name = "jiaocha-girl-sea.jpg"; - url = "https://i.imgur.com/LBowln5.jpeg"; - sha256 = "0agpr2z7v6q77ypgfsl6b57gac7ncrgf1fh0b5g7g0a53mzib5hm"; convertMethod = "gonord"; } { name = "muji-monochrome.jpg"; - url = "https://i.imgur.com/F2h7rsD.jpg"; - sha256 = "02q0wd2xpyjfiifmrsf6sg1ja3zlb9514g98w156f7jdpw2c9ppb"; convertMethod = "gonord"; } { name = "zzzzoka-gbc.jpg"; - url = "https://i.imgur.com/qE6Pr45.jpg"; - sha256 = "1li5ypdvlvdpihiplf5mjj0lvf9gbcwyjslpxgla6wz0fzrwnvgi"; convertMethod = "gonord"; } ]; diff --git a/modules/home-manager/wallpaper.nix b/modules/home-manager/wallpaper.nix index e7d6b67..26e656f 100644 --- a/modules/home-manager/wallpaper.nix +++ b/modules/home-manager/wallpaper.nix @@ -9,13 +9,10 @@ let type = str; description = "Name of the wallpaper"; }; - url = mkOption { - type = str; - description = "URL of the wallpaper"; - }; - sha256 = mkOption { - type = str; - description = "SHA256 of the wallpaper"; + path = mkOption { + type = nullOr path; + description = "Path to the wallpaper, ${pkgs.wallpapers}/name by default"; + default = null; }; convertMethod = mkOption { type = str; diff --git a/pkgs/default.nix b/pkgs/default.nix index c410c32..265c32e 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -8,4 +8,5 @@ custom-colorschemes = pkgs.callPackage ./customColorSchemes { }; fiz = pkgs.callPackage ./fiz.nix { }; hellwm = pkgs.callPackage ./hellwm.nix { }; + wallpapers = pkgs.callPackage ./wallpapers.nix { }; } diff --git a/pkgs/wallpapers.nix b/pkgs/wallpapers.nix new file mode 100644 index 0000000..44feec5 --- /dev/null +++ b/pkgs/wallpapers.nix @@ -0,0 +1,74 @@ +{ stdenvNoCC, fetchurl }: +let + wallpapers = [ + { + name = "mygo-watch-tv.png"; + url = "https://i.imgur.com/FSneBN2.jpg"; + sha256 = "1pznrjx6rb8qm947q63dzkrmv188h3nrcp8cdmd7hs5gs30azfww"; + } + { + name = "frieren-butterflies.jpg"; + url = "https://i.imgur.com/H1noDhu.jpg"; + sha256 = "0vypn9sxarv2gw42hs2haasyvzqyp02s6vaqygp9xbg59m0x2l73"; + } + { + name = "frieren-fire.jpg"; + url = "https://i.imgur.com/c3CWmia.jpg"; + sha256 = "0lgqwjl6jd1y84cz368s4sq0krzg67znqxirzapqxqvfdpn9rwbw"; + } + { + name = "anon-soyo.jpg"; + url = "https://i.imgur.com/koPV5sz.png"; + sha256 = "031s3v8fp5q2dm95wra898jq9l4i49wlwf97iah6bjqi5ihaxs2x"; + } + { + name = "mygo-train.jpg"; + url = "https://i.imgur.com/OzR8c12.jpg"; + sha256 = "0fnwasnr19wfyhxa5yq7g3315d1641602x7fg8sv1qv95dlj55w2"; + } + { + name = "green-blue-flowers.jpg"; + url = "https://i.imgur.com/Kvjqksw.jpg"; + sha256 = "1la4g50sxc940j9vcf7440l73ycx05z63dmpfq8xn0b746hzmnkq"; + } + { + name = "bangqiaoyan-girl-sky.jpg"; + url = "https://i.imgur.com/qJ3ta1b.jpg"; + sha256 = "1chzklk6j893fdxhp0jhjwgwyhg3p6hjrgrrr5fw8gkllx91sx5w"; + } + { + name = "morncolour-pink-landscape.png"; + url = "https://i.imgur.com/BBzCYYQ.png"; + sha256 = "14kjc7zipbwvswjbkzqk4781as6pn31naq26nxknzhmr4z5rhzci"; + } + { + name = "jiaocha-girl-sea.jpg"; + url = "https://i.imgur.com/LBowln5.jpeg"; + sha256 = "0agpr2z7v6q77ypgfsl6b57gac7ncrgf1fh0b5g7g0a53mzib5hm"; + } + { + name = "muji-monochrome.jpg"; + url = "https://i.imgur.com/F2h7rsD.jpg"; + sha256 = "02q0wd2xpyjfiifmrsf6sg1ja3zlb9514g98w156f7jdpw2c9ppb"; + } + { + name = "zzzzoka-gbc.jpg"; + url = "https://i.imgur.com/qE6Pr45.jpg"; + sha256 = "1li5ypdvlvdpihiplf5mjj0lvf9gbcwyjslpxgla6wz0fzrwnvgi"; + } + ]; + + wallpaperSrcs = map fetchurl wallpapers; +in +stdenvNoCC.mkDerivation { + name = "wallpapers"; + phases = [ "installPhase" ]; + installPhase = + '' + mkdir -p $out + '' + + ( + map (wallpaper: "ln -s ${wallpaper} $out/${wallpaper.name}") wallpaperSrcs + |> builtins.concatStringsSep "\n" + ); +}