{ lib , stdenvNoCC , python3 , makeWrapper , swww , libnotify , git # Shipped theme presets, baked into the package as a fallback so # `list`/`apply` work even when $NOMARCHY_PATH has no themes/ dir. , themesDir ? null }: stdenvNoCC.mkDerivation { pname = "nomarchy-theme-sync"; version = "0.4.0"; src = ./.; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ python3 ]; installPhase = '' runHook preInstall install -Dm755 nomarchy-theme-sync.py $out/bin/nomarchy-theme-sync patchShebangs $out/bin/nomarchy-theme-sync ${lib.optionalString (themesDir != null) '' mkdir -p $out/share/nomarchy cp -r ${themesDir} $out/share/nomarchy/themes ''} # Stdlib-only Python. home-manager is deliberately NOT wrapped in — # the rebuild must use the user's own home-manager from their PATH. wrapProgram $out/bin/nomarchy-theme-sync \ --prefix PATH : ${lib.makeBinPath [ swww libnotify git ]} \ ${lib.optionalString (themesDir != null) "--set NOMARCHY_DEFAULT_THEMES $out/share/nomarchy/themes"} runHook postInstall ''; meta = { description = "Nomarchy theming: JSON state writer + Home Manager rebuild dispatcher"; license = lib.licenses.mit; mainProgram = "nomarchy-theme-sync"; platforms = lib.platforms.linux; }; }