diff --git a/nix/wm/bar/polybar/config.nix b/nix/wm/bar/polybar/config.nix new file mode 100644 index 0000000..de742c3 --- /dev/null +++ b/nix/wm/bar/polybar/config.nix @@ -0,0 +1,86 @@ +{ lib, config, pkgs, colors }: + +with lib; + +{ + "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; + }; + }; +} + diff --git a/nix/wm/bar/polybar/default.nix b/nix/wm/bar/polybar/default.nix index 35b88db..c7001ce 100644 --- a/nix/wm/bar/polybar/default.nix +++ b/nix/wm/bar/polybar/default.nix @@ -6,9 +6,12 @@ let cfg = config.wm.bar.polybar; pcfg = config.services.polybar; + # TODO: create a theme colors = { orange = "#ee9a00"; }; + + polybarConfig = import ./config.nix { inherit lib config pkgs colors; }; in { options.wm.bar.polybar = { @@ -28,87 +31,7 @@ in 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; - }; - }; - }; + settings = polybarConfig; }; }; }