{ pkgs, theme, ... }: { services.polybar = { enable = true; # TODO: Dynamically start based on monitor configuration # TODO: Kill polybar if it's already running script = '' polybar main & polybar second & ''; settings = { colors = { bg = theme.dark.black; fg = theme.bright.white; }; "section/base" = { width = "100%"; height = 32; modules-left = "workspaces"; background = "\${colors.bg}"; foreground = "\${colors.fg}"; fixed-center = true; module.margin = 1; padding.right = 1; # font = [ "Cozette:size=13;1" ]; font = ["Iosevka:size=9"]; }; "bar/main" = { "inherit" = "section/base"; monitor = "DP-0"; modules-center = "time"; modules-right = "date"; }; "bar/second" = { "inherit" = "section/base"; monitor = "eDP-1-1"; modules-right = "time date"; }; "module/workspaces" = { type = "internal/i3"; format = "<label-state>"; index-sort = true; pin-workspaces = true; ws-icon = builtins.genList (idx: let name = toString (idx + 1); in "${name};${name}") 5 ++ ["6;q" "7;w" "8;e" "9;r" "0;t"]; label = { focused = { text = "%icon%"; padding = 1; foreground = theme.bright.white; }; unfocused = { text = "%icon%"; padding = 1; foreground = theme.bright.black; }; visible = { text = "%icon%"; padding = 1; foreground = theme.bright.cyan; }; urgent = { text = "%icon%"; padding = 1; foreground = theme.bright.red; }; }; }; "module/time" = { type = "internal/date"; label = "%time%"; time = "%H:%M:%S"; }; "module/date" = { type = "internal/date"; label = "%date%"; date.text = "%A, %d %B %Y"; date.alt = "%Y-%m-%d"; }; }; }; }