{ pkgs, ... }@all: with all; let
  sep = " ";
in {
  programs.waybar = {
    enable = false;
    package = pkgs.waybar;
    settings = {
      bar = {
        # height = 20;
        layer = "top";
        position = "bottom";
        margin-top = 0;
        # margin-left = rice.gap-size;
        # margin-bottom = rice.gap-size;
        # margin-right = rice.gap-size;
        margin-left = 0;
        margin-bottom = 0;
        margin-right = 0;
        spacing = 10;
        fixed-center = true;
        modules-left = [
          # "cpu"
          # "memory"
          "wireplumber"
          "backlight"
          "battery"
          "network"
          "hyprland/window"
        ];
        modules-center = [
          "hyprland/workspaces"
        ];
        modules-right = [
          "custom/mode"
          "custom/caldav_event"
          "custom/cclock"
          "tray"
        ];
        "hyprland/workspaces" = {
          on-click = "activate";
          format = "{name}";
          all-outputs = false;
          active-only = false;
        };
        "hyprland/window" = {
          # format = "${sep}{}";
          format = "{}";
          separate-outputs = true;
        };
        "custom/cclock" = {
          exec = "cclock";
          restart-interval = 60;
        };
        "custom/caldav_event" = {
          format = "󰃰${sep}{}";
          exec = "caldav_event";
          restart-interval = 60;
          max-width = 60;
        };
        "custom/mode" = {
          exec = "cat /tmp/submap-indictor";
          interval = "once";
          signal = 8;
        };

        cpu = {
          interval = 1;
          format = "󰍛${sep}{}%";
          max-length = 10;
        };
        memory = {
          interval = 5;
          format = "${sep}{avail:.0f}G free";
        };
        battery = {
          interval = 60;
          tooltip = false;
          format = "{icon}${sep}{capacity}%";
          states = {
            warning = 15;
            critical = 5;
          };
          format-icons = [ " " " " " " " " " " ];
          format-charging = "{icon}${sep}+{capacity}%";
          format-plugged = "{icon}${sep}P{capacity}%";
          format-full = "{icon}${sep}F{capacity}%";
        };
        backlight = {
          device = "eDP-1";
          format = "{icon}${sep}{percent}%";
          format-icons = [ "" "" "" "" "" "" "" "" "" ];
        };
        network = {
          format-wifi = "${sep}{essid}";
          format-ethernet = "󰈀${sep}Wired";
          format-disconnected = "󰌙${sep}Disconnected";
        };
        wireplumber = {
          format = "󰕾${sep}{volume}%";
          format-muted = "󰝟${sep}--%";
        };
      };
    };
    style = with rice.color; let f = rice.lib.hex-to-rgb-comma-string; in /* css */ ''
      * {
        font-family: ${rice.font.code.name};
        font-size: 1em;
        min-height: 0px;
        margin: 0px;
        padding: 0px;
      }

      window#waybar {
        background: rgba(${f background},${builtins.toString rice.transparency});
      }

      #clock,
      #custom-cclock,
      #custom-mode,
      #custom-caldav-event,
      #battery,
      #cpu,
      #tray,
      #disk,
      #backlight,
      #network,
      #wireplumber,
      #memory,
      #window,
      #workspaces {
        padding: 0px 3px;
        margin-top: 0.3em;
        border-radius: ${builtins.toString rice.rounding}px;
        color: rgb(${f accent.bright});
      }

      #workspaces button {
        color: rgb(${f accent.base});
        padding-left: 15px;
        padding-right: 15px;
        border-radius: ${builtins.toString rice.rounding}px;
      }
      #workspaces button.active { color: rgb(${f background}); background-color: rgb(${f accent.base}); }
      #workspaces button:hover { color: rgb(${f tertiary.bright}); }
      #workspaces button.urgent { background-color: rgba(${f magenta.base},${builtins.toString rice.transparency}); }

      #window, #custom-caldav_event {
        font-family: ${rice.font.base.name}, ${rice.font.code.name};
        color: rgb(${f tertiary.bright});
      }

      #wireplumber.muted { color: rgb(${f tertiary.bright}); }
      #wireplumber { padding-left: 10px; }

      #battery.warning:not(.charging) { color: rgb(${f green.base});; }
      #battery.charging { color: rgb(${f green.base}); }
      #battery.critical {
        background: rgb(${f negative.base});
        color: rgb(${f foreground});
      }
     
      #custom-mode { color: rgb(${f red.base}); }
    '';
  };
}
