55 lines
1.7 KiB
Nix

{ cfg, gitea ? "gitea" }: { config, pkgs, lib, ... }:
let
theme = pkgs.fetchzip {
url = "https://github.com/catppuccin/gitea/releases/download/v0.4.1/catppuccin-gitea.tar.gz";
sha256 = "sha256-14XqO1ZhhPS7VDBSzqW55kh6n5cFZGZmvRCtMEh8JPI=";
stripRoot = false;
};
in {
config = lib.mkIf (gitea != "" && config.services.${gitea}.enable) {
systemd.services.${gitea}.preStart = let
customDir = config.services.${gitea}.customDir;
baseDir =
if lib.versionAtLeast config.services.${gitea}.package.version "1.21.0" then
"${customDir}/public/assets"
else
"${customDir}/public";
in lib.mkAfter ''
rm -rf ${baseDir}/css
mkdir -p ${baseDir}
ln -sf ${theme} ${baseDir}/css
'';
services.${gitea}.settings.ui = {
DEFAULT_THEME = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}";
THEMES = let
builtinThemes = {
gitea = [
"auto"
"gitea"
"arc-greeen"
];
forgejo = [
"forgejo-auto"
"forgejo-light"
"forgejo-dark"
"gitea-auto"
"gitea-light"
"gitea-dark"
"forgejo-auto-deuteranopia-protanopia"
"forgejo-light-deuteranopia-protanopia"
"forgejo-dark-deuteranopia-protanopia"
"forgejo-auto-tritanopia"
"forgejo-light-tritanopia"
"forgejo-dark-tritanopia"
];
};
in lib.mkForce builtins.concatStringsSep "," (
builtinThemes.${gitea}
++ (map (name: lib.removePrefix "theme-" (lib.removeSuffix ".css" name)) (
builtins.attrNames (builtins.readDir theme)
))
);
};
};
}