{ config, lib, pkgs, ... }: let cfg = config.programs.olympus; in { options.programs.olympus = { enable = lib.mkEnableOption "olympus"; package = lib.mkOption { type = lib.types.package; default = pkgs.olympus; description = "The olympus package to install."; }; }; config = lib.mkIf cfg.enable (lib.mkMerge [ { home.packages = [ cfg.package ]; } ( lib.mkIf config.impermanence.enable { home.persistence."/persist${config.home.homeDirectory}" = { directories = [ "${config.xdg.configHome}/olympus" "${config.xdg.dataHome}/olympus" ]; allowOther = true; }; } ) ]); }