{ 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"; }; }; xdg = { enable = true; configFile."networkmanager-dmenu/config.ini".text = '' [dmenu] dmenu_command = rofi ''; }; }; }; }