{ flake.modules.homeManager.waybar = { config, lib, ... }: let cfg = config.arta.waybar; in { options.arta.waybar = { extraConfig = lib.mkOption { type = lib.types.lazyAttrsOf lib.types.unspecified; default = {}; }; }; config = { programs.waybar = { enable = true; settings = [ (lib.mkMerge [ { layer = "top"; position = "top"; height = 20; "custom/sep" = { format = "|"; interval = "once"; tooltip = false; }; "backlight" = { format = "bl {percent}%"; tooltip = false; }; "battery" = { format = "bat {capacity}%"; format-charging = "bat+ {capacity}%"; format-discharging = "bat- {capacity}%"; tooltip = false; }; "bluetooth" = { format = "bt {status}"; on-click = "foot bluetui"; tooltip = false; }; "clock" = { format = "{:%F %H:%M}"; tooltip = false; }; "disk" = { format = "avail {total}"; tooltip = false; }; "hyprland/language" = { format-en = "us"; format-fi = "fi"; format-no = "no"; }; "hyprland/workspaces" = { all-outputs = true; persistent-workspaces."*" = 9; }; "network" = { format-ethernet = "{ipaddr}/{cidr}"; format-wifi = "{ipaddr} ({essid})"; tooltip = false; }; "niri/language" = { format-en = "us"; format-fi = "fi"; format-no = "no"; }; "wireplumber" = { format = "vol {volume}%"; on-click = "pavucontrol"; tooltip = false; }; } cfg.extraConfig ]) ]; style = '' * { border: none; border-radius: 0; min-height: 0; margin: 0; padding: 0; } #waybar { background: #7298bf; color: #e0c296; font-family: VictorMono Nerd Font Mono; font-weight: 700; font-size: 12px; } #workspaces button { background: #7298bf; color: #888888; } #workspaces button.empty { background: #3f546a; } /* Hyprland */ #workspaces button.visible { background: #7298bf; color: #e0c296; } /* Niri */ #workspaces button.focused { background: #7298bf; color: #e0c296; } #custom-sep { margin: 0 0.25em; } ''; }; }; }; }