{ config, lib, pkgs, ... }: with lib; let cfg = config.programs.zellij; yamlFormat = pkgs.formats.yaml { }; configDir = if pkgs.stdenv.isDarwin then "Library/Application Support/org.Zellij-Contributors.Zellij" else "${config.xdg.configHome}/zellij"; in { meta.maintainers = [ hm.maintainers.mainrs ]; options.programs.zellij = { enable = mkEnableOption "zellij"; package = mkOption { type = types.package; default = pkgs.zellij; defaultText = literalExpression "pkgs.zellij"; description = '' The zellij package to install. ''; }; settings = mkOption { type = yamlFormat.type; default = { }; example = literalExpression '' { theme = "custom"; themes.custom.fg = 5; } ''; description = '' Configuration written to $XDG_CONFIG_HOME/zellij/config.yaml. See for the full list of options. ''; }; }; config = mkIf cfg.enable { home.packages = [ cfg.package ]; home.file."${configDir}/config.yaml" = mkIf (cfg.settings != { }) { source = yamlFormat.generate "zellij.yaml" cfg.settings; }; }; }