From 2cfa47b3870a3033434087e0eb49cd0005df6f07 Mon Sep 17 00:00:00 2001 From: Charlie Root Date: Thu, 10 Apr 2025 18:51:10 +0200 Subject: [PATCH] forgejo/module.nix: add codeberg theme --- modules/services/forgejo/module.nix | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/modules/services/forgejo/module.nix b/modules/services/forgejo/module.nix index f8a9e72..326c6cc 100644 --- a/modules/services/forgejo/module.nix +++ b/modules/services/forgejo/module.nix @@ -4,8 +4,10 @@ pkgs, ... }: let + inherit (pkgs) fetchurl; inherit (lib.modules) mkIf; inherit (config.services.forgejo) customDir user group; + cfg = config.modules.system.services.forgejo; port = 3000; @@ -112,6 +114,8 @@ in { }; ui = { SHOW_USER_EMAIL = false; + THEMES = "codeberg-dark"; + DEFAULT_THEME = "codeberg-dark"; }; "repository.signing" = { @@ -126,17 +130,39 @@ in { User-agent: * Disallow: / ''; + base-brand = fetchurl { + url = "https://codeberg.org/Codeberg-Infrastructure/forgejo/raw/branch/codeberg-10/web_src/css/themes/codeberg/base-brand.css"; + hash = "sha256-QJ775HpINf8klO3d/8h+tEw0vk34p19dWUCWWuVwcho="; + }; + dark-variables = fetchurl { + url = "https://codeberg.org/Codeberg-Infrastructure/forgejo/raw/branch/codeberg-10/web_src/css/themes/codeberg/dark-variables.css"; + hash = "sha256-nCSJUOU9/R1fldoKXTTZmP7vmRjYUk/OKkbgrJ/NrXQ="; + }; + theme-codeberg-dark = fetchurl { + url = "https://codeberg.org/Codeberg-Infrastructure/forgejo/raw/branch/codeberg-10/web_src/css/themes/theme-codeberg-dark.css"; + hash = "sha256-KyXznH49koRGlzIDDqagN4PvFGD/zCX//wrctmtfgBs="; + }; in [ "d '${customDir}/public' 0750 ${user} ${group} - -" "d '${customDir}/public/assets' 0750 ${user} ${group} - -" "d '${customDir}/public/assets/img' 0750 ${user} ${group} - -" - + # Copeberg logo, thanks Raf <3 "L+ '${customDir}/public/assets/img/logo.svg' - - - - ${img}/logo.svg" "L+ '${customDir}/public/assets/img/logo.png' - - - - ${img}/logo.png" "L+ '${customDir}/public/assets/img/apple-touch-icon' - - - - ${img}/logo.png" "L+ '${customDir}/public/assets/img/favicon.svg' - - - - ${img}/logo.svg" "L+ '${customDir}/public/assets/img/favicon.png' - - - - ${img}/logo.png" + # Theming shenanigans + "d '${customDir}/public/assets' 0750 ${user} ${group} - -" + "d '${customDir}/public/assets/css' 0750 ${user} ${group} - -" + "d '${customDir}/public/assets/css/codeberg' 0750 ${user} ${group} - -" + + "L+ '${customDir}/public/assets/css/theme-codeberg-dark.css' - - - - ${theme-codeberg-dark}" + "L+ '${customDir}/public/assets/css/codeberg/base-brand.css' - - - - ${base-brand}" + "L+ '${customDir}/public/assets/css/codeberg/dark-variables.css' - - - - ${dark-variables}" + + # Fuck off scrapers "L+ ${customDir}/public/robots.txt - - - - ${robots.outPath}" ]; };