Skip to content

Commit

Permalink
feat(nixos): add support for gitea/forgejo (#179)
Browse files Browse the repository at this point in the history
Co-authored-by: seth <getchoo@tuta.io>
Co-authored-by: isabel <isabel@isabelroses.com>
  • Loading branch information
3 people authored Feb 19, 2025
1 parent 24dac16 commit b1ff2a6
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 0 deletions.
1 change: 1 addition & 0 deletions modules/nixos/all-modules.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[
./fcitx5.nix
./gitea.nix
./grub.nix
./plymouth.nix
./sddm.nix
Expand Down
88 changes: 88 additions & 0 deletions modules/nixos/gitea.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{ catppuccinLib }:
{
lib,
config,
...
}:
let
inherit (config.catppuccin) sources;

valuesFromEnum =
enum: if lib.isList enum.functor.payload then enum.functor.payload else enum.functor.payload.values;

supportedForges = [
"gitea"
"forgejo"
];

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
{
options.catppuccin = lib.genAttrs supportedForges (
name:
catppuccinLib.mkCatppuccinOption {
inherit name;
accentSupport = true;
}
);

config = lib.mkMerge (
map (
forge:
let
cfg = config.catppuccin.${forge};

inherit (config.services.${forge}) customDir;
themeDir =
if lib.versionAtLeast config.services.${forge}.package.version "1.21.0" then
"${customDir}/public/assets/css"
else
"${customDir}/public/css";
in
lib.mkIf cfg.enable {
systemd.tmpfiles.settings."10-catppuccin-${forge}-theme" = {
${themeDir}."L+" = {
argument = toString sources.gitea;
};

${dirOf themeDir}.d = {
inherit (config.services.${forge}) user group;
};
};

services.${forge}.settings.ui = {
DEFAULT_THEME = "catppuccin-${cfg.flavor}-${cfg.accent}";
THEMES = lib.concatStringsSep "," (
builtinThemes.${forge}
++ (lib.mapCartesianProduct ({ flavor, accent }: "catppuccin-${flavor}-${accent}") (
lib.mapAttrs (lib.const valuesFromEnum) {
inherit (catppuccinLib.types) accent flavor;
}
))
);
};
}
) supportedForges
);
}
2 changes: 2 additions & 0 deletions modules/tests/nixos.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ testers.runNixOSTest {
enable = true;
package = pkgs.kdePackages.sddm; # our module/the upstream port requires the qt6 version
};
forgejo.enable = true;
gitea.enable = true;
xserver.enable = true; # required for sddm
};

Expand Down
6 changes: 6 additions & 0 deletions pkgs/gitea/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{ fetchzip }:
fetchzip {
url = "https://github.com/catppuccin/gitea/releases/download/v0.4.1/catppuccin-gitea.tar.gz";
hash = "sha256-14XqO1ZhhPS7VDBSzqW55kh6n5cFZGZmvRCtMEh8JPI=";
stripRoot = false;
}

0 comments on commit b1ff2a6

Please sign in to comment.