{ config, lib, pkgs, ... }: { options = { messaging = { enable = lib.mkEnableOption "enable all messaging"; element.enable = lib.mkEnableOption "enable element"; signal.enable = lib.mkEnableOption "enable signal"; }; }; config = { messaging = lib.mkIf config.messaging.enable { element.enable = lib.mkDefault true; signal.enable = lib.mkDefault true; }; home.packages = with pkgs; [ (lib.mkIf (config.messaging.signal.enable) signal-desktop) ]; programs = { element-desktop = lib.mkIf config.messaging.element.enable { enable = true; }; }; }; }