# Switch between different basic profiles { lib, config, pkgs, ... }: with lib; let profile = config.fudo.profile; profiles = { desktop = ./profiles/desktop.nix { pkgs = pkgs; config = config; }; server = ./profiles/server.nix { pkgs = pkgs; config = config; }; }; in { options.fudo.profile = { type = types.enum (attrNames profiles); example = "desktop"; description = '' The profile to use for this host. This will do some profile-dependent configuration, for example removing X-libs from servers and adding UI packages to desktops. ''; default = "server"; }; config = optionalAttrs (profiles ? profile) profiles.${profile}; }