_: {
  programs.waybar = {
    #enable = true;
    systemd.enable = true;
    style = ''
      * {
          border: none;
          border-radius: 0;
          font-family: Monaspace Krypton, monospace;
          font-size: 13px;
          min-height: 0;
      }

      window#waybar {
        all:unset;
      }


      .modules-left, .modules-right, .modules-center {
        background: alpha(@base00, 0.9);
        box-shadow: 0px 0px 2px rgba(0,0,0,0.6);
        color: @base05;
        padding: 5px;
        margin: 2px 4px;
        border: 1px solid @base04;
      }

      tooltip {
        background: rgba(43, 48, 59, 0.5);
        border: 1px solid rgba(100, 114, 125, 0.5);
      }
      tooltip label {
        color: white;
      }

      #workspaces {
        border-right: 1px solid @base04;
      }


      #workspaces button.persistent {
        background: @base01;
        color: @base05;
      }

      #workspaces button {
          padding: 2px 5px;
          background: @base01;
          color: @base07;
          border-bottom: 3px solid transparent;
      }

      #workspaces button.empty {
        background: @base04;
        color: @base01;
      }

      #workspaces button.visible {
          background: @base02;
          color: @base04;
          border-bottom: 3px solid @base0C;
      }

      #workspaces button.urgent {
        background: @base08;
        color: @base00;
      }

      #workspaces button.active, #workspaces button.focused {
          background: @base0C;
          color: @base00;
          border-bottom: 3px solid @base0C;
      }

      #window {
        padding: 0 10px;
      }

      window#waybar.empty #window {
        padding: 0px;
        margin: 0px;
      }

      #mode, #custom-notification, #custom-nvidia-vram, #clock, #battery, #idle_inhibitor, #tray, #wireplumber, #bluetooth, #backlight, #mpris {
          padding: 0 5px;
          margin: 0 5px;
      }

      #mpris {
        color: @base00;
      }

      #custom-notification {
        font-size: 150%;
      }

      #custom-nvidia-vram {
      }

      #mpris.playing {
        background-color: @base0B;
      }

      #mpris.paused {
        background-color: @base0A;
      }

      #mpris.stopped {
        background-color: @base09;
      }

      #mode {
          background: @base07;
          border-bottom: 3px solid @base0D;
          color: @base02;
      }

      #clock {
      }

      #battery {
      }

      #battery.charging {
          color: @base00;
          background-color: @base0B;
      }

      @keyframes blink {
          to {
              background-color: @base00;
              color: @base07;
          }
      }

      #battery.warning:not(.charging) {
          background: @base0F;
          color: @base00;
          animation-name: blink;
          animation-duration: 0.5s;
          animation-timing-function: steps(12);
          animation-iteration-count: infinite;
          animation-direction: alternate;
      }
    '';
    settings.main = {
      layer = "top";
      position = "top";
      mode = "dock";
      exclusive = true;
      modules-left = [
        "niri/workspaces"
        "niri/window"
      ];

      modules-center = [
        "clock"
        "mpris"
      ];

      modules-right = [
        "privacy"
        "bluetooth"
        "wireplumber"
        "idle_inhibitor"
        "power-profiles-daemon"
        "backlight"
        "battery"
        "tray"
        "custom/notification"
      ];

      idle_inhibitor = {
        format = "idin {icon}";
        format-icons = {
          activated = "active";
          deactivated = "inactive";
        };
      };

      bluetooth = {
        on-click = "blueman-manager";
        format = "bt {status}";
        format-connected-battery = "bt {device_alias} {device_battery_percentage}%";
        format-connected = "bt {num_connections} connected";
        tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
        tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
        tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
        tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
      };
      mpris = {
        ignored-players = ["firefox"];
      };
      wireplumber = {
        format = "vol {volume}%";
        max-volume = 150;
      };
      backlight = {
        format = "bl {percent}%";
      };
      battery = {
        format = "bat {capacity}%";
        format-tooltip = "{power}W, {timeTo}, {health}%";
        interval = 60;

        states = {
          warning = 30;
          critical = 15;
        };
      };

      tray = {
        spacing = 4;
      };
      "custom/notification" = {
        tooltip = false;
        format = "{} {icon}";
        "format-icons" = {
          notification = "󱅫";
          none = "";
          "dnd-notification" = " ";
          "dnd-none" = "󰂛";
          "inhibited-notification" = " ";
          "inhibited-none" = "";
          "dnd-inhibited-notification" = " ";
          "dnd-inhibited-none" = " ";
        };
        "return-type" = "json";
        "exec-if" = "which swaync-client";
        exec = "swaync-client -swb";
        "on-click" = "sleep 0.1 && swaync-client -t -sw";
        "on-click-right" = "sleep 0.1 && swaync-client -d -sw";
        escape = true;
      };
      clock = {
        format = "{:%F %H:%M %Z}";
        interval = 60;
      };
    };
  };
}
