{ lib, config, pkgs, ...}: with lib; let cfg = config.wm.bar.polybar; pcfg = config.services.polybar; colors = { orange = "#ee9a00"; }; in { options.wm.bar.polybar = { enable = mkOption { type = types.bool; default = false; description = "Enable polybar status bar"; }; }; config = mkIf cfg.enable { systemd.user.services.polybar = { # Add additional /usr/bin to run custom scripts Service.Environment = mkForce "PATH=${pcfg.package}/bin:/run/wrappers/bin:/usr/bin"; }; services.polybar = { enable = true; script = "polybar &"; settings = { "bar/main" = { monitor = "DisplayPort-1"; width = "100%"; height = "20px"; font = [ "Fira Code:size=9:antialias=true" "Fira Code:bold:size=0:antialias=true" ]; radius = 0; modules = { left = "xmonad"; center = "date wifi"; right = "volume lang time"; }; }; "module/date" = { type = "internal/date"; interval = 10; date = "%a %d %b %Y"; label = "%date%"; format.padding = 1; }; "module/time" = { type = "internal/date"; time = "%H:%M:%S"; label = { text = "%time%"; font = 2; foreground = colors.orange; }; }; "module/lang" = { type = "internal/xkeyboard"; format = { text = ""; padding = 1; }; label.layout.font = 2; }; "module/volume" = { type = "custom/script"; exec = "~/scripts/get_volume.sh"; interval = 1; format = { prefix = "Vol: "; padding = 1; }; }; "module/wifi" = { type = "internal/network"; interval = 3; interface = { text = "wlxd03745e1e87b"; type = "wireless"; }; label.connected = "%essid% %signal%"; format.connected = { prefix = "| "; suffix = "%"; }; }; "module/xmonad" = mkIf config.wm.xmonad.enable { type = "custom/script"; exec = "${pkgs.xmonad-log}/bin/xmonad-log"; tail = true; }; "global/wm" = { margin = { bottom = 0; top = 0; }; }; }; }; }; }