{ pkgs, lib, ... }: { services.polybar = { enable = true; script = ""; # required but we start polybar via bspwm, so dont start it here. config = let theme = import ../theme.nix "light"; colors = theme.colors; in rec { common-bar = { width = "100%"; height = "${theme.sizing.str.xxl}pt"; radius = 0; override-redirect = true; #;dpi = 96 background-0 = "#efefef"; background-1 = colors.background; background-2 = colors.background; background-3 = colors.background; background-4 = colors.background; background-5 = "#2e2e2e"; foreground = colors.foreground; line-size = "3pt"; border-size = "${theme.sizing.str.xs}pt"; border-color = colors.primary; padding-left = 0; padding-right = 1; module-margin = 1; separator = "|"; separator-foreground = colors.disabled; font-0 = "Charcoal;2"; # wm-restack = "bspwm"; cursor-click = "pointer"; cursor-scroll = "ns-resize"; enable-ipc = true; }; "global/wm" = { margin-bottom = 0; }; "bar/primary" = lib.recursiveUpdate common-bar { monitor = "DP-2"; modules-left = "xworkspaces xwindow"; modules-right = "filesystem memory cpu wlan date"; }; "bar/secondary" = lib.recursiveUpdate common-bar { monitor = "HDMI-1"; modules-left = "xworkspaces"; modules-center = "date"; modules-right = "systray"; }; "module/xworkspaces" = { type = "internal/xworkspaces"; group-by-monitor = true; pin-workspaces = true; label-active = "%name%"; label-active-background = colors.background-alt; label-active-underline = colors.primary; label-active-padding = 1; label-occupied = "%name%"; label-occupied-padding = 1; label-urgent = "%name%"; label-urgent-background = colors.alert; label-urgent-padding = 1; label-empty = "%name%"; label-empty-foreground = colors.disabled; label-empty-padding = 1; }; "module/systray" = { type = "internal/tray"; format-margin = "8pt"; tray-spacing = "16pt"; }; "module/xwindow" = { type = "internal/xwindow"; label = "%title:0:60:...%"; }; "module/filesystem" = { type = "internal/fs"; interval = 25; mount-0 = "/"; label-mounted = "%{F${colors.primary}}%mountpoint%%{F-} %percentage_used%%"; label-unmounted = "%mountpoint% not mounted"; label-unmounted-foreground = colors.disabled; }; "module/pulseaudio" = { type = "internal/pulseaudio"; format-volume-prefix = "VOL "; format-volume-prefix-foreground = colors.primary; format-volume = ""; label-volume = "%percentage%%"; label-muted = "muted"; label-muted-foreground = colors.disabled; }; "module/xkeyboard" = { type = "internal/xkeyboard"; blacklist-0 = "num lock"; label-layout = "%layout%"; label-layout-foreground = colors.primary; label-indicator-padding = 2; label-indicator-margin = 1; label-indicator-foreground = colors.background; label-indicator-background = colors.secondary; }; "module/memory" = { type = "internal/memory"; interval = 2; format-prefix = "RAM "; format-prefix-foreground = colors.primary; label = "%percentage_used:2%%"; }; "module/cpu" = { type = "internal/cpu"; interval = 2; format-prefix = "CPU "; format-prefix-foreground = colors.primary; label = "%percentage:2%%"; }; "network-base" = { type = "internal/network"; interval = 5; format-connected = ""; format-disconnected = ""; label-disconnected = "%{F${colors.primary}}%ifname%%{F${colors.disabled}} disconnected"; }; "module/wlan" = { "inherit" = "network-base"; interface-type = "wireless"; label-connected = "%{F${colors.primary}}%ifname%%{F-} %essid% %local_ip%"; }; "module/eth" = { "inherit" = "network-base"; interface-type = "wired"; label-connected = "%{F${colors.primary}}%ifname%%{F-} %local_ip%"; }; "module/date" = { type = "internal/date"; interval = 1; date = "%l:%M%P"; date-alt = "%Y-%m-%d %H:%M:%S"; label = "%date%"; label-foreground = colors.primary; }; "settings" = { screenchange-reload = true; pseudo-transparency = false; #; vim:ft=dosini }; }; }; }