{ config, lib, ... }:

{
  home-manager.users.${config.user} = {
    programs.waybar = {

      enable = true;

      settings = [{
        height = 24;
        layer = "top";
        position = "top";
        spacing = 4;

        modules-left = [
          "hyprland/workspaces"
          "hyprland/window"
        ];
        modules-center = [
        ];
        modules-right = [
          "battery"
          "wireplumber"
          "network"
          "clock"
          "tray"
        ];

        "hyprland/workspaces" = {
          disable-scroll = true;
          all-outputs = true;
          format = "{name}";
        };

        battery = {
          interval = 1;
          states = {
            warning = 30;
            critical = 15;
          };
          format = " {capacity}%";
          format-charging = " {capacity}%";
          format-plugged = " {capacity}%";
          format-full = " {capacity}%";
          format-warning = " {capacity}%";
          format-critical = " {capacity}%";
        };

        wireplumber = {
          format = " {volume}%";
          format-bluetooth = " {volume}%";
          format-muted = " muted";
          scroll-step = 1;
          on-click = "pavucontrol";
          ignored-sinks = ["Easy Effects Sink"];
        };

        network = {
          format = "  disconnected";
          format-wifi = " {essid}";
          format-ethernet = "  {ipaddr}/{cidr}";
          format-disconnected = "  disconnected";
          max-length = 50;
          on-click = "nm-connection-editor";
        };

        clock = {
          interval = 1;
          format = "{:%Y-%m-%d %a %H:%M:%S}";
        };

        tray = {
          spacing = config.theme.outerGap;
        };
      }];


      style = import ./style.nix { theme = config.theme; };
    };
  };
}