{ config, pkgs, lib, ... }: let cfg = config.services.gitea-themes.monokai; giteaCfg = config.services.gitea; in { options.services.gitea-themes.monokai = { enable = lib.mkEnableOption "monokai theme for gitea"; package = lib.mkPackageOption pkgs "gitea-theme-monokai" { }; }; config = lib.mkIf (cfg.enable && giteaCfg.enable) { services.gitea.settings.ui.THEMES = lib.strings.concatStringsSep "," [ "gitea" "arc-green" "monokai" ]; systemd.services.install-gitea-theme-monokai = { wantedBy = [ "gitea.service" ]; requiredBy = [ "gitea.service" ]; serviceConfig = { Type = "oneshot"; User = giteaCfg.user; Group = giteaCfg.group; }; script = '' mkdir -p "${giteaCfg.customDir}/public/assets/css" if ! [ -f "${giteaCfg.customDir}/public/assets/css/theme-monokai.css" ]; then ln -s "${cfg.package}/share/gitea/public/assets/css/theme-monokai.css" "${giteaCfg.customDir}/public/assets/css/theme-monokai.css" ln -s "${cfg.package}/share/gitea/public/css/theme-monokai.css" "${giteaCfg.customDir}/public/css/theme-monokai.css" fi ''; }; }; }