55 lines
1.7 KiB
Nix
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)
|
|
))
|
|
);
|
|
};
|
|
};
|
|
} |