{ config
, lib
, pkgs
, ...
}:

with lib;
let
  cfg = config.my.programs.rofi;
in
{
  options.my.programs.rofi.enable = mkEnableOption "rofi";

  config = mkIf cfg.enable {
    environment.systemPackages = with pkgs; [
      (lib.mkIf config.networking.networkmanager.enable networkmanager_dmenu)
      (lib.mkIf config.hardware.bluetooth.enable rofi-bluetooth)
      rofi-power-menu
    ];
    home-manager.users.moritz = {
      programs.rofi = {
        enable = true;
        package =
          pkgs.rofi-wayland.override { plugins = with pkgs; [ rofi-calc rofi-emoji ]; };
        extraConfig = { combi-modi = "drun,window,emoji,run"; };
      };
      xdg = {
        enable = true;
        configFile."networkmanager-dmenu/config.ini".text = ''
          [dmenu]
          dmenu_command = rofi
        '';
      };
    };
  };
}