niri: make focus ring the inverse of the average of the background color
This commit is contained in:
@@ -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;
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
26
home-manager/util/inverse_color.nix
Normal file
26
home-manager/util/inverse_color.nix
Normal file
@@ -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
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user