{ pkgs, ... }: { services.polybar = { enable = true; script = ""; # required but we start polybar via bspwm, so dont start it here. config = rec { theme = import ../theme.nix; common-bar = { width = "100%"; height = "${theme.sizing.str.xl}pt"; radius = theme.border-radius; #;dpi = 96 background = theme.colors.background; foreground = theme.colors.foreground; line-size = "3pt"; border-size = "${theme.sizing.str.m}pt"; border-color = "#00000000"; padding-left = 0; padding-right = 1; module-margin = 1; separator = "|"; separator-foreground = theme.colors.disabled; font-0 = "monospace;2"; wm-restack = "bspwm"; cursor-click = "pointer"; cursor-scroll = "ns-resize"; enable-ipc = true; }; "bar/primary" = common-bar // { monitor = "DP-2"; modules-left = "xworkspaces xwindow"; modules-right = "filesystem memory cpu wlan date"; }; "bar/secondary" = 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 = theme.colors.background-alt; label-active-underline = theme.colors.primary; label-active-padding = 1; label-occupied = "%name%"; label-occupied-padding = 1; label-urgent = "%name%"; label-urgent-background = theme.colors.alert; label-urgent-padding = 1; label-empty = "%name%"; label-empty-foreground = theme.colors.disabled; label-empty-padding = 1; }; }; extraConfig = '' [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#F0C674}%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#F0C674}%ifname%%{F#707880} disconnected [module/wlan] inherit = network-base interface-type = wireless label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip% [module/eth] inherit = network-base interface-type = wired label-connected = %{F#F0C674}%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 = true ; vim:ft=dosini ''; }; }