diff --git a/home-manager/progs/niri.nix b/home-manager/progs/niri.nix index 9bd01e5..38d3651 100644 --- a/home-manager/progs/niri.nix +++ b/home-manager/progs/niri.nix @@ -5,6 +5,9 @@ inputs, ... }: +let + invert_image_avg = pkgs.callPackage ../util/inverse_color.nix; +in { imports = [ inputs.niri.homeModules.config @@ -51,7 +54,9 @@ focus-ring = { enable = true; active = { - color = "#bf7778"; + color = builtins.readFile (invert_image_avg { + src = ../wallpaper.png; + }); }; }; }; diff --git a/home-manager/util/inverse_color.nix b/home-manager/util/inverse_color.nix new file mode 100644 index 0000000..709bf9b --- /dev/null +++ b/home-manager/util/inverse_color.nix @@ -0,0 +1,26 @@ +{ + stdenv, + imagemagick, + gawk, + src, +}: +stdenv.mkDerivation { + pname = "invert-image-avg"; + version = "1.0"; + + inherit src; + + buildInputs = [ + imagemagick + gawk + ]; + + # input is a file, not a directory, skip unpackPhase + unpackPhase = "true"; + + # command taken from: https://old.reddit.com/r/swaywm/comments/oz3t7v/setting_a_blurred_background_with_swaylock_and/ + buildPhase = '' + rm -fr $out + magick ${src} -channel RGB -negate -resize 1x1 txt: | awk 'FNR == 2 {print $3}' > $out + ''; +}