{ symlinkJoin, waybar, makeWrapper, runCommand, sass, }: let styleCss = runCommand "style.css" { nativeBuildInputs = [sass]; } '' sass ${./configs/waybar/style.scss} > $out ''; in symlinkJoin { name = "waybar"; paths = [ waybar ]; nativeBuildInputs = [ makeWrapper ]; postBuild = '' wrapProgram $out/bin/waybar \ --add-flags "--config" \ --add-flags "${./configs/waybar/config.jsonc}" \ --add-flags "--style" \ --add-flags "${styleCss}" mv $out/lib/systemd/user/waybar.service $out/lib/systemd/user/.waybar-wrapped.service substitute $out/lib/systemd/user/.waybar-wrapped.service $out/lib/systemd/user/waybar.service \ --replace-fail ${waybar}/bin/waybar $out/bin/waybar ''; meta = { inherit (waybar.meta) mainProgram; }; }