{ config, lib, pkgs, ... }: let mkRelatedOption = description: relatedWMs: let isActivatedWm = wm: config.my.home.wm.windowManager == wm; in (lib.mkEnableOption description) // { default = builtins.any isActivatedWm relatedWMs; }; in { imports = [ ./sway ./waybar ./mako ./swaylock ./wofi ./gammastep ]; options.my.home.wm = with lib; { windowManager = mkOption { type = with types; nullOr (enum [ "sway" ]); default = null; example = "sway"; description = "Which window manager to use for home session"; }; waybar = { enable = mkRelatedOption "waybar configuration" [ "sway" ]; }; }; }