{
  config,
  lib,
  pkgs,
  ...
}:
with lib; let
  cfg = config.local.gui;
in {
  config = mkIf cfg.enable {
    programs.waybar = {
      enable = true;
      settings = {
        mainBar = {
          layer = "top";
          position = "top";
          height = 20;
          spacing = 0;

          modules-left = [
            "sway/workspaces"
            "sway/mode"
          ];
          modules-center = [
            "clock"
          ];

          modules-right = [
            "privacy"
            "cpu"
            "memory"
            "disk"
            "temperature"
            "keyboard-state"
            "tray"
          ];
          "keyboard-state" = {
            numlock = true;
            capslock = true;
          };
          "tray" = {
            icon-size = 13;
            spacing = 8;
          };
          "clock" = {
            interval = 60;
            format = "{:%A %B %d %Y %H:%M}";
            tooltip = false;
          };
          "cpu" = {
            format = " {usage}%";
            tooltip = false;
          };
          "memory" = {
            format = " {percentage}%";
            tooltip = true;
            tooltip-format = "{used}/{total}";
          };
          "disk" = {
            format = " {specific_used:0.0f}/{specific_total:0.0f}";
            unit = "GiB";
            tooltip = false;
          };
          "privacy" = {
            icon-size = 12;
          };
        };
      };
      style = ''
        * {
          font-family: "JetBrainsMono Nerd Font", monospace;
          font-size: 12px;
          font-weight: 500;
          border: none;
          box-shadow: none;
        }

        /* Entire bar: fully transparent, no border */
        window#waybar {
          background: transparent;
          color: #eaeaea;
          margin: 0;
          padding: 0;
        }

        /* Optional: small edge breathing room (comment out if you want edge-to-edge) */
        /* window#waybar { margin: 3px 6px 0 6px; } */

        /* Module containers */
        .modules-left, .modules-center, .modules-right {
          padding: 0;
          margin: 0 6px;
        }

        /* Subtle separators between modules (no boxes) */
        .modules-left > widget:not(:first-child),
        .modules-center > widget:not(:first-child),
        .modules-right > widget:not(:first-child) {
          margin-left: 12px;
          padding-left: 12px;
          border-left: 1px solid rgba(255, 255, 255, 0.08);
        }

        /* Tightest possible workspaces */
        #workspaces { padding: 0; margin: 0; }
        #workspaces button {
          margin: 0;
          padding: 0 3px;
          min-width: 0;
          border-radius: 0;
          background: transparent;
          color: #cfcfcf;
        }
        #workspaces button:hover {
          background: rgba(255, 255, 255, 0.06);
        }
        #workspaces button.active,
        #workspaces button.focused {
          background: rgba(255, 255, 255, 0.10);
          color: #ffffff;
          box-shadow: inset 0 -2px #ffffff;
        }
        #workspaces button.urgent {
          background: rgba(255, 80, 80, 0.25);
          box-shadow: inset 0 -2px #ff5050;
        }

        /* Focused window title: single line, no glow */
        #window {
          padding: 0 6px;
          margin: 0;
          color: #dedede;
        }

        /* Sway mode indicator: visible only when active, no bloat */
        #mode {
          padding: 0 6px;
          margin: 0;
          background: rgba(255, 255, 255, 0.10);
          color: #ffffff;
          box-shadow: inset 0 -2px #ffffff;
        }

        /* Status modules — keep them flat and compact */
        #clock, #battery, #network, #pulseaudio, #backlight, #cpu, #memory, #temperature, #tray {
          padding: 0 6px;
          margin: 0;
          background: transparent;
          color: #eaeaea;
        }

        /* States (battery, network, audio) */
        #battery.charging { color: #c9ffbf; }
        #battery.warning:not(.charging) { color: #ffd29a; }
        #battery.critical:not(.charging) { color: #ff9a9a; }

        #network.disconnected { color: #ffb4b4; }
        #pulseaudio.muted    { color: #9aa0a6; }

        /* Tray: compress icons */
        #tray > .passive { opacity: 0.6; }
        #tray > .needs-attention { opacity: 1; }

        /* Tooltips: clean and readable */
        tooltip {
          background: rgba(30, 30, 30, 0.95);
          border: 1px solid rgba(255, 255, 255, 0.08);
          color: #eaeaea;
          padding: 6px 8px;
        }

        /* Remove any leftover borders around everything */
        #custom-*, #idle_inhibitor, #privacy, #bluetooth {
          border: none;
          background: transparent;
          margin: 0;
          padding: 0 6px;
        }
      '';
    };
  };
}
