{ config, lib, ... }: let cfg = config.my.profiles.wm; in { options.my.profiles.wm = with lib; { windowManager = mkOption { type = with types; nullOr (enum [ "sway" ]); default = null; example = "sway"; description = "Which window manager to use"; }; }; config = lib.mkMerge [ (lib.mkIf (cfg.windowManager == "sway") { # Enable sway my.home.wm.windowManager = "sway"; }) ]; }