From 170461002890d55718618bec64feaa8856c3a6d4 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Fri, 28 Nov 2025 00:01:27 +0530 Subject: Organised the configuration to allow for different options for different users. --- modules/desktop/polybar/bar/default.nix | 5 ++++ modules/desktop/polybar/bar/main.nix | 44 ++++++++++++++++++++++++++++ modules/desktop/polybar/default.nix | 20 +++++++++++++ modules/desktop/polybar/module/battery.nix | 36 +++++++++++++++++++++++ modules/desktop/polybar/module/bspwm.nix | 21 +++++++++++++ modules/desktop/polybar/module/cpu.nix | 9 ++++++ modules/desktop/polybar/module/date.nix | 10 +++++++ modules/desktop/polybar/module/default.nix | 13 ++++++++ modules/desktop/polybar/module/memory.nix | 9 ++++++ modules/desktop/polybar/module/separator.nix | 7 +++++ modules/desktop/polybar/module/time.nix | 10 +++++++ modules/desktop/polybar/module/volume.nix | 13 ++++++++ modules/desktop/polybar/module/xwindow.nix | 7 +++++ 13 files changed, 204 insertions(+) create mode 100644 modules/desktop/polybar/bar/default.nix create mode 100644 modules/desktop/polybar/bar/main.nix create mode 100644 modules/desktop/polybar/default.nix create mode 100644 modules/desktop/polybar/module/battery.nix create mode 100644 modules/desktop/polybar/module/bspwm.nix create mode 100644 modules/desktop/polybar/module/cpu.nix create mode 100644 modules/desktop/polybar/module/date.nix create mode 100644 modules/desktop/polybar/module/default.nix create mode 100644 modules/desktop/polybar/module/memory.nix create mode 100644 modules/desktop/polybar/module/separator.nix create mode 100644 modules/desktop/polybar/module/time.nix create mode 100644 modules/desktop/polybar/module/volume.nix create mode 100644 modules/desktop/polybar/module/xwindow.nix (limited to 'modules/desktop/polybar') diff --git a/modules/desktop/polybar/bar/default.nix b/modules/desktop/polybar/bar/default.nix new file mode 100644 index 0000000..23a43c4 --- /dev/null +++ b/modules/desktop/polybar/bar/default.nix @@ -0,0 +1,5 @@ +{ config, lib }: + +{ + "bar/main" = import ./main.nix { inherit config lib; }; +} diff --git a/modules/desktop/polybar/bar/main.nix b/modules/desktop/polybar/bar/main.nix new file mode 100644 index 0000000..326b768 --- /dev/null +++ b/modules/desktop/polybar/bar/main.nix @@ -0,0 +1,44 @@ +{ config, lib }: + +with config.scheme.withHashtag; +let + largerFontSize = toString (builtins.ceil (config.fonts.size * 9.0 / 8.0)); +in { + width = "100%:-20"; + fixed-center = false; + height = 35; + override-redirect = false; + wm-restack = "bspwm"; + enable-ipc = true; + + border-top-size = 1; + border-bottom-size = 1; + border-left-size = 1; + border-right-size = 1; + border-color = base03; + + background = base00; + foreground = base05; + + line-size = 3; + line-color = base08; + + padding-left = 1; + padding-right = 1; + + module-margin-left = 1; + module-margin-right = 1; + + separator = "%{F${base03}}%{T3}│%{T-}%{F-}"; + + offset-x = "10"; + offset-y = "10"; + + font-0 = "${config.fonts.normal}:pixelsize=${toString config.fonts.size};3"; + font-1 = "${config.fonts.normal}:weight=Bold:pixelsize=${largerFontSize};3"; + font-2 = "${config.fonts.normal}:style=Light:pixelsize=${largerFontSize};2"; + + modules-left = "bspwm separator"; + modules-center = "xwindow"; + modules-right = "separator volume battery time memory cpu date"; +} diff --git a/modules/desktop/polybar/default.nix b/modules/desktop/polybar/default.nix new file mode 100644 index 0000000..de95a49 --- /dev/null +++ b/modules/desktop/polybar/default.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +{ + config = lib.mkIf config.desktop.enable { + services.polybar.enable = true; + services.polybar.package = (pkgs.polybar.override { + pulseSupport = true; + }); + services.polybar.script = "${config.services.polybar.package}/bin/polybar main &"; + services.polybar.config = lib.mkMerge [ + (import ./bar { inherit config lib; }) + (import ./module { inherit config lib; }) + { + settings = { + screenchange-reload = true; + }; + } + ]; + }; +} diff --git a/modules/desktop/polybar/module/battery.nix b/modules/desktop/polybar/module/battery.nix new file mode 100644 index 0000000..5787f24 --- /dev/null +++ b/modules/desktop/polybar/module/battery.nix @@ -0,0 +1,36 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/battery"; + battery = "BAT1"; + adapter = "ADP1"; + + format-charging = "%{T2}%{F${base03}}%{F-}%{T-} "; + format-discharging = "%{T2}%{F${base03}}%{F-}%{T-} "; + format-full-prefix = "󰁹 "; + + ramp-capacity-0 = "󰁺"; + ramp-capacity-1 = "󰁻"; + ramp-capacity-2 = "󰁼"; + ramp-capacity-3 = "󰁽"; + ramp-capacity-4 = "󰁾"; + ramp-capacity-5 = "󰁿"; + ramp-capacity-6 = "󰂀"; + ramp-capacity-7 = "󰂁"; + ramp-capacity-8 = "󰂂"; + ramp-capacity-9 = "󰁹"; + + animation-charging-0 = "󰁺"; + animation-charging-1 = "󰁻"; + animation-charging-2 = "󰁼"; + animation-charging-3 = "󰁽"; + animation-charging-4 = "󰁾"; + animation-charging-5 = "󰁿"; + animation-charging-6 = "󰂀"; + animation-charging-7 = "󰂁"; + animation-charging-8 = "󰂂"; + animation-charging-9 = "󰁹"; + + animation-charging-framerate = 750; +} diff --git a/modules/desktop/polybar/module/bspwm.nix b/modules/desktop/polybar/module/bspwm.nix new file mode 100644 index 0000000..ed82946 --- /dev/null +++ b/modules/desktop/polybar/module/bspwm.nix @@ -0,0 +1,21 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/bspwm"; + + label-focused = "%index%"; + label-focused-underline = "${base0D}"; + label-focused-padding = 2; + + label-occupied = "%index%"; + label-occupied-padding = 2; + + label-urgent = "%index%"; + label-urgent-underline = "${base08}"; + label-urgent-padding = 2; + + label-empty = "%index%"; + label-empty-foreground = "${base03}"; + label-empty-padding = 2; +} diff --git a/modules/desktop/polybar/module/cpu.nix b/modules/desktop/polybar/module/cpu.nix new file mode 100644 index 0000000..8134df1 --- /dev/null +++ b/modules/desktop/polybar/module/cpu.nix @@ -0,0 +1,9 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/cpu"; + interval = 2; + format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; + label = "%percentage%%"; +} diff --git a/modules/desktop/polybar/module/date.nix b/modules/desktop/polybar/module/date.nix new file mode 100644 index 0000000..9c56121 --- /dev/null +++ b/modules/desktop/polybar/module/date.nix @@ -0,0 +1,10 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/date"; + interval = 60; + date = "%d/%m/%Y"; + label = "%date%"; + format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; +} diff --git a/modules/desktop/polybar/module/default.nix b/modules/desktop/polybar/module/default.nix new file mode 100644 index 0000000..fe5b8a1 --- /dev/null +++ b/modules/desktop/polybar/module/default.nix @@ -0,0 +1,13 @@ +{ config, lib }: + +{ + "module/separator" = import ./separator.nix { inherit config; }; + "module/xwindow" = import ./xwindow.nix { inherit config; }; + "module/bspwm" = import ./bspwm.nix { inherit config; }; + "module/cpu" = import ./cpu.nix { inherit config; }; + "module/memory" = import ./memory.nix { inherit config; }; + "module/date" = import ./date.nix { inherit config; }; + "module/time" = import ./time.nix { inherit config; }; + "module/volume" = import ./volume.nix { inherit config; }; + "module/battery" = import ./battery.nix { inherit config; }; +} diff --git a/modules/desktop/polybar/module/memory.nix b/modules/desktop/polybar/module/memory.nix new file mode 100644 index 0000000..a4aa410 --- /dev/null +++ b/modules/desktop/polybar/module/memory.nix @@ -0,0 +1,9 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/memory"; + interval = 2; + format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; + label = "%gb_used%"; +} diff --git a/modules/desktop/polybar/module/separator.nix b/modules/desktop/polybar/module/separator.nix new file mode 100644 index 0000000..3cd1430 --- /dev/null +++ b/modules/desktop/polybar/module/separator.nix @@ -0,0 +1,7 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "custom/text"; + label = " "; +} diff --git a/modules/desktop/polybar/module/time.nix b/modules/desktop/polybar/module/time.nix new file mode 100644 index 0000000..71df1a5 --- /dev/null +++ b/modules/desktop/polybar/module/time.nix @@ -0,0 +1,10 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/date"; + interval = 30; + time = "%H:%M"; + label = "%time%"; + format-prefix = "%{T2}%{F${base03}} %{F-}%{T-}"; +} diff --git a/modules/desktop/polybar/module/volume.nix b/modules/desktop/polybar/module/volume.nix new file mode 100644 index 0000000..ee18dc0 --- /dev/null +++ b/modules/desktop/polybar/module/volume.nix @@ -0,0 +1,13 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/pulseaudio"; + interval = 5; + format-volume = "%{T2}%{F${base03}}%{F-}%{T-} "; + label-volume = "%percentage%%"; + label-muted = "%{T2}%{F${base03}} "; + ramp-volume-0 = " "; + ramp-volume-1 = " "; + ramp-volume-2 = " "; +} diff --git a/modules/desktop/polybar/module/xwindow.nix b/modules/desktop/polybar/module/xwindow.nix new file mode 100644 index 0000000..833899e --- /dev/null +++ b/modules/desktop/polybar/module/xwindow.nix @@ -0,0 +1,7 @@ +{ config }: + +with config.scheme.withHashtag; +{ + type = "internal/xwindow"; + label = "%title:0:30:...%"; +} -- cgit v1.2.3