{ config, pkgs, ... }: {
  programs.rofi = {
    enable = true;
    package = pkgs.rofi-wayland;
    location = 0;
    terminal = "foot";
    pass = {
      enable = true;
      package = pkgs.rofi-pass-wayland;
      extraConfig = ''
        USERNAME_field='login'
      '';
    };
    theme = let inherit (config.lib.formats.rasi) mkLiteral;
    in {
      "*" = {
        bg-col = "#1e1e2e";
        bg-col-light = "#1e1e2e";
        border-col = "#1e1e2e";
        selected-col = "#1e1e2e";
        blue = "#89b4fa";
        fg-col = "#cdd6f4";
        fg-col2 = "#f38ba8";
        grey = "#6c7086";

        width = 600;
        font = "Iosevka Nerd Font 18";
      };

      "element-text, element-icon , mode-switcher" = {
        background-color = mkLiteral "inherit";
        text-color = mkLiteral "inherit";
      };

      window = {
        height = "360px";
        border = "3px";
        border-color = "@border-col";
        background-color = "@bg-col";
      };

      mainbox = { background-color = "@bg-col"; };

      inputbar = {
        children = [ "prompt" "entry" ];
        background-color = "@bg-col";
        border-radius = "5px";
        padding = "2px";
      };

      prompt = {
        background-color = "@blue";
        padding = "6px";
        text-color = "@bg-col";
        border-radius = "3px";
        margin = "20px 0px 0px 20px";
      };

      textbox-prompt-colon = {
        expand = false;
        str = " =";
      };

      entry = {
        padding = "6px";
        margin = "20px 0px 0px 10px";
        text-color = "@fg-col";
        background-color = "@bg-col";
      };

      listview = {
        border = "0px 0px 0px";
        padding = "6px 0px 0px";
        margin = "10px 0px 0px 20px";
        columns = 2;
        lines = 5;
        background-color = "@bg-col";
      };

      element = {
        padding = "5px";
        background-color = "@bg-col";
        text-color = "@fg-col";
      };

      element-icon = { size = "25px"; };

      "element selected" = {
        background-color = "@selected-col";
        text-color = "@fg-col2";
      };

      mode-switcher = { spacing = 0; };

      button = {
        padding = "10px";
        background-color = "@bg-col-light";
        text-color = "@grey";
        vertical-align = 0.5;
        horizontal-align = 0.5;
      };

      "button selected" = {
        background-color = "@bg-col";
        text-color = "@blue";
      };

      message = {
        background-color = "@bg-col-light";
        margin = "2px";
        padding = "2px";
        border-radius = "5px";
      };

      textbox = {
        padding = "6px";
        margin = "20px 0px 0px 20px";
        text-color = "@blue";
        background-color = "@bg-col-light";
      };

    };
    extraConfig =
      let power-menu = "power-menu:${pkgs.rofi-power-menu}/bin/rofi-power-menu";
      in {
        modi = "window,run,drun,ssh,${power-menu},combi";
        combi-modi = "window,drun,ssh";
        sidebar-mode = true;
        sort = true;
        sorting-method = "fzf";
        matching = "fuzzy";
        icon-theme = config.gtk.iconTheme.name;
        show-icons = true;
        application-fallback-icon = "󰋙";
        drun-display-format = "{icon} {name} ({categories})";
        disable-history = false;
        hide-scrollbar = true;
        display-window = " 󰧨  Move ";
        display-run = " 󰅴  Run ";
        display-drun = " 󱓞  Apps ";
        display-ssh = " 󰢹  SSH ";
        display-combi = " 󰛡  Combi ";
      };
  };
}