{
  config,
  lib,
  ...
}: let
  cfg = config.hive.wofi;
in {
  options.hive.wofi = {
    enable = lib.mkEnableOption "Enable Wofi";
  };
  config = lib.mkIf cfg.enable {
    programs.wofi.enable = true;
    programs.wofi.settings = {
      location = "center";
      allow_images = true;
      allow_markup = true;
      key_expand = "Tab";
      key_up = "Ctrl-k";
      key_down = "Ctrl-j";
      key_left = "Ctrl-h";
      key_right = "Ctrl-l";
      insensitive = true;
    };

    programs.wofi.style = ''
      #window {
          border-radius: 15px;
          border-color: #33ccff;
          border-width: 2px;
          border-style: solid;
          background-color: rgba(0, 0, 0, 0.6);
      }

      #input {
          margin: 5px;
          border-radius: 15px;
          border-color: #33ccff;
          border-width: 2px;
          border-style: solid;
          background: transparent;
          color: white;
      }

      #input {
          margin: 5px;
          border-radius: 15px;
          border-color: #33ccff;
          border-width: 2px;
          border-style: solid;
          background: transparent;
          color: white;
      }

      #img {
          background-color: transparent;
      }

      #inner-box {
          background-color: transparent;
      }

      #outer-box {
          margin: 2px;
          padding: 10px;
          background: transparent;
      }

      #scroll {
          margin: 5px;
      }

      #text {
          padding: 4px;
          color: white;
          background: transparent;
          border: none;
      }

      #entry {
        background: transparent;
        border: none;
      }

      #entry:selected {
          border-radius: 15px;
          border-color: #33ccff;
          border-width: 2px;
          border-style: solid;
          background: transparent;
      }

      #expander {
          border-radius: 15px;
          border-color: #33ccff;
          border-width: 2px;
          border-style: solid;
          background: transparent;
      }
    '';
  };
}
