{ config, lib, ... }: let inherit (lib) mkIf mkMerge mkDefault mkOption types ; cfg = config.illogical-impulse.terminal; in { options = { illogical-impulse.terminal = { enable = mkOption { type = types.bool; default = true; description = '' Whether to enable the terminal-related configuration for this user. ''; }; # New option to choose the terminal emulator. terminalEmulator = mkOption { type = types.enum ["foot" "kitty"]; default = "foot"; description = '' The default terminal emulator to enable for this user. ''; }; }; }; config = mkIf cfg.enable (mkMerge [ (mkIf (cfg.terminalEmulator == "foot") { programs.foot = { enable = true; }; }) (mkIf (cfg.terminalEmulator == "kitty") { programs.kitty = { enable = true; }; }) ]); }