{ config, lib, pkgs, ... }: let isEnabled = config.my.home.wm.windowManager == "sway"; waybarSystemd = pkgs.runCommandLocal "waybar-systemd" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' makeWrapper ${./waybar-systemd.sh} $out/bin/waybar-systemd ''; in { config = lib.mkIf isEnabled { programs.waybar = { enable = true; systemd = { enable = true; }; settings = [{ layer = "bottom"; height = 25; position = "top"; margin-top = 0; margin-left = 0; margin-right = 0; margin-bottom = 0; modules-left = [ "sway/workspaces" "sway/mode" ]; modules-right = [ "custom/systemd" "pulseaudio" "network" "battery" "clock" "tray" ]; "sway/workspaces" = { format = "{name}"; disable-scroll = true; }; "sway/mode" = { format = "{}"; }; tray = { spacing = 10; }; clock = { format = "{: %a %b %d %R}"; }; battery = { states = { warning = 30; critical = 15; }; format = "ac:{capacity}%"; tooltip = true; tooltip-format = "{timeTo} ({capacity}%)"; }; "custom/systemd" = { exec = "${waybarSystemd}/bin/waybar-systemd"; return-type = "json"; interval = 10; }; pulseaudio = { format = "vol:{volume}%"; format-bluetooth = "bt:{volume}%"; format-bluetooth-muted = "bt:{volume}%"; format-muted = "vol:{volume}%"; on-click = "pavucontrol"; }; "network" = { format-wifi = "{essid}:{signalStrength}%"; format-ethernet = "{ipaddr}/{cidr}"; format-linked = "{ifname} (No IP)"; format-disconnected = "network unavailable"; format-alt = "{ifname}: {ipaddr}/{cidr}"; tooltip = false; }; }]; style = (builtins.readFile ./style.css); }; }; }