rix101/modules/nix-darwin/yabai/setbg/default.nix
reo101 c57ddea18b
feat(nix-darwin): add setbg script
Sets the background of all spaces on all displays/desktops to an image (passed as a command-line argument) preserving the focused spaces and window after running
Depends on `yabai` (>`System Integrity Protection must be partially disabled.`) and `jq`
Written in `applescript`
2024-01-21 22:14:04 +02:00

27 lines
528 B
Nix

{ lib
, writeShellScriptBin
, symlinkJoin
, makeWrapper
, jq
, yabai
}:
let
# NOTE: passing `${1}` because `${0}` resolves to the `.setbg-wrapped` path
setWallpaperUnwrapped =
writeShellScriptBin "setbg" ''
osascript ${./setbg.scpt} "''${1}"
'';
in
symlinkJoin {
name = "setbg";
paths = [ setWallpaperUnwrapped ];
buildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/setbg \
--prefix PATH : ${lib.makeBinPath [
jq
yabai
]}
'';
}