diff options
| -rw-r--r-- | modules/home-manager/personal/environment.nix | 2 | ||||
| -rw-r--r-- | modules/nixos/personal/gui.nix | 2 | ||||
| -rw-r--r-- | pkgs/static/wallpapers/default.nix | 54 |
3 files changed, 36 insertions, 22 deletions
diff --git a/modules/home-manager/personal/environment.nix b/modules/home-manager/personal/environment.nix index 3c674de..867757e 100644 --- a/modules/home-manager/personal/environment.nix +++ b/modules/home-manager/personal/environment.nix @@ -6,7 +6,7 @@ } @ inputs: { home.packages = with pkgs; [coreutils moreutils]; personal.home.wallpaper = - lib.mkDefault (inputs.osConfig.stylix.image or pkgs.personal.static.wallpapers.nga-1973-68-1); + lib.mkDefault (inputs.osConfig.stylix.image or (pkgs.personal.static.wallpapers.nga-1973-68-1.override {gravity = "north";})); programs.bash = {enable = lib.mkDefault true;}; diff --git a/modules/nixos/personal/gui.nix b/modules/nixos/personal/gui.nix index 6e2a5d7..88f8fa2 100644 --- a/modules/nixos/personal/gui.nix +++ b/modules/nixos/personal/gui.nix @@ -5,7 +5,7 @@ ... } @ extraArgs: let cfg = config.personal.gui; - wallpaper = pkgs.personal.static.wallpapers.nga-1973-68-1; + wallpaper = pkgs.personal.static.wallpapers.nga-1973-68-1.override {gravity = "north";}; importedStylix = extraArgs ? stylix; in { imports = lib.optional importedStylix extraArgs.stylix.nixosModules.stylix; diff --git a/pkgs/static/wallpapers/default.nix b/pkgs/static/wallpapers/default.nix index f0b8d46..a0efda3 100644 --- a/pkgs/static/wallpapers/default.nix +++ b/pkgs/static/wallpapers/default.nix @@ -1,22 +1,36 @@ -{ stdenv, fetchurl, imagemagick, lib }: - -let +{ + stdenv, + fetchurl, + imagemagick, + lib, +}: let fetchWallpaper = lib.makeOverridable ( - { name, url, sha256, resolution ? "1920x1080", offset ? "0x0" }: - stdenv.mkDerivation { - inherit name; - src = fetchurl { - inherit url sha256; - }; - buildInputs = [ imagemagick ]; - phases = [ "unpackPhase" ]; - unpackPhase = '' - convert "$src" -resize "${resolution}^" \ - -crop "${resolution}+${offset}" \ - "$out" - ''; - }); + { + name, + url, + sha256, + resolution ? "1920x1080", + ratio ? "16:9", + gravity ? "center", + }: + stdenv.mkDerivation { + inherit name; + src = fetchurl { + inherit url sha256; + }; + buildInputs = [imagemagick]; + phases = ["unpackPhase"]; + unpackPhase = '' + convert "$src" -gravity '${gravity}' \ + -extent '${ratio}' \ + -resize '${resolution}!' \ + "$out" + ''; + } + ); sources = lib.importJSON ./sources.json; -in { - fetcher = fetchWallpaper; -} // builtins.mapAttrs (_: fetchWallpaper) sources +in + { + fetcher = fetchWallpaper; + } + // builtins.mapAttrs (_: fetchWallpaper) sources |
