{ pkgs, lib, config, ... }: let inherit (lib) mkIf mkEnableOption mkOption types concatStringsSep; cfg = config.programs.culr; in { options.programs.culr = { enable = mkEnableOption "culr"; pattern = mkOption { type = with types; listOf int; default = []; description = "colourising pattern"; }; palette = mkOption { type = with types; listOf str; default = []; description = "palette to use in comma separated RGB hex eg. #0f0f0f"; }; }; config = mkIf cfg.enable { environment.systemPackages = let inherit (pkgs) culr; in [culr]; environment.sessionVariables = { CULR_PATTERN = mkIf (cfg.pattern != []) (concatStringsSep ";" cfg.pattern); CULR_PALETTE = mkIf (cfg.palette != []) (concatStringsSep ";" cfg.palette); }; }; }