diff --git a/modules/home/de/waybar.nix b/modules/home/de/waybar.nix index 75e29d1..afb976a 100644 --- a/modules/home/de/waybar.nix +++ b/modules/home/de/waybar.nix @@ -1,7 +1,7 @@ { config, - pkgs, lib, + myWrappers, ... }: { options.myConfig.de.waybar.enable = lib.mkEnableOption ""; @@ -9,116 +9,10 @@ config = lib.mkIf config.myConfig.de.waybar.enable { programs.waybar = { enable = true; + package = myWrappers.waybar; systemd.enable = true; - - settings = { - mainBar = { - layer = "top"; - position = "bottom"; - spacing = 10; - - modules-left = ["clock"]; - modules-center = ["hyprland/workspaces"]; - modules-right = [ - "tray" - "network" - "wireplumber" - "backlight" - "battery" - ]; - - "hyprland/workspaces" = { - active-only = false; - all-outputs = true; - }; - - clock = { - format = " {:%H.%M}"; - tooltip-format = "{:%d.%m.%Y}"; - }; - - network = { - interval = 10; - format = ""; - - format-wifi = "{icon}"; - format-icons = [ - "󰤟" - "󰤢" - "󰤥" - "󰤨" - ]; - tooltip-format-wifi = "{essid} 󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; - - format-ethernet = "󰌗"; - tooltip-format-ethernet = "󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; - - format-disconnected = "󰪎"; - tooltip-format-disconnected = "Disconnected"; - }; - - wireplumber = { - format = "{icon} {volume}%"; - format-muted = "󰝟"; - format-icons = [ - "󰕿" - "󰖀" - "󰕾" - ]; - scroll-step = "5"; - }; - - tray = { - icon-size = 20; - spacing = 6; - }; - - backlight = { - device = "amdgpu_bl1"; - format = "{icon} {percent}%"; - format-icons = [ - "󰃞" - "󰃟" - "󰃠" - ]; - }; - - battery = { - states = { - warning = 15; - critical = 5; - }; - format = "{icon} {capacity}%"; - format-icons = [ - "󰂎" - "󰁺" - "󰁻" - "󰁼" - "󰁽" - "󰁾" - "󰁿" - "󰂀" - "󰂁" - "󰂂" - "󰁹" - ]; - }; - }; - }; - - style = '' - * { - border: none; - border-radius: 0px; - font-family: "Open Sans, Symbols Nerd Font Mono"; - font-size: 15px; - } - ''; }; systemd.user.services.waybar.Unit.After = ["sound.target"]; - - xdg.configFile."waybar/config".onChange = lib.mkForce "${lib.getExe' pkgs.systemd "systemctl"} restart --user waybar"; - xdg.configFile."waybar/style.css".onChange = lib.mkForce "${lib.getExe' pkgs.systemd "systemctl"} restart --user waybar"; }; } diff --git a/wrappers/waybar.nix b/wrappers/waybar.nix new file mode 100644 index 0000000..af6c322 --- /dev/null +++ b/wrappers/waybar.nix @@ -0,0 +1,116 @@ +{ + assembleWrapper, + pkgs, + ... +}: +assembleWrapper { + basePackage = pkgs.waybar; + + flags = let + waybar-config = (pkgs.formats.json {}).generate "waybar-config" { + layer = "top"; + position = "bottom"; + spacing = 10; + + modules-left = ["clock"]; + modules-center = ["hyprland/workspaces"]; + modules-right = [ + "tray" + "network" + "wireplumber" + "backlight" + "battery" + ]; + + "hyprland/workspaces" = { + active-only = false; + all-outputs = true; + }; + + clock = { + format = " {:%H.%M}"; + tooltip-format = "{:%d.%m.%Y}"; + }; + + network = { + interval = 10; + format = ""; + + format-wifi = "{icon}"; + format-icons = [ + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; + tooltip-format-wifi = "{essid} 󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; + + format-ethernet = "󰌗"; + tooltip-format-ethernet = "󰇚 {bandwidthDownBits} 󰕒 {bandwidthUpBits}"; + + format-disconnected = "󰪎"; + tooltip-format-disconnected = "Disconnected"; + }; + + wireplumber = { + format = "{icon} {volume}%"; + format-muted = "󰝟"; + format-icons = [ + "󰕿" + "󰖀" + "󰕾" + ]; + scroll-step = "5"; + }; + + tray = { + icon-size = 20; + spacing = 6; + }; + + backlight = { + device = "amdgpu_bl1"; + format = "{icon} {percent}%"; + format-icons = [ + "󰃞" + "󰃟" + "󰃠" + ]; + }; + + battery = { + states = { + warning = 15; + critical = 5; + }; + format = "{icon} {capacity}%"; + format-icons = [ + "󰂎" + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + }; + }; + waybar-style = pkgs.writeText "waybar-style" '' + * { + border: none; + border-radius: 0px; + font-family: "Open Sans, Symbols Nerd Font Mono"; + font-size: 15px; + } + ''; + in [ + "--config" + waybar-config + "--style" + waybar-style + ]; +}