zaphyra's git: tgcNUR

fork of https://git.transgirl.cafe/zaphoid/tgc-nix-user-repository

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
{

  description = "This flake contains packages and modules for home-manager and nixos - maintained by the tgc-users";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    nixpkgsUnstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    emacs-overlay = {
      url = "github:nix-community/emacs-overlay";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    inputs:
    (
      let
        lib = import ./lib {
          inherit (inputs.nixpkgs) lib;
          inherit inputs;
        };
        modulesTemplate =
          modules:
          modules
          // {
            default = {
              imports = builtins.attrValues modules;
            };
          };

      in
      {

        inherit lib;

        formatter = lib.forAllSystems { body = pkgs: pkgs.nixfmt-rfc-style; };

        packages = lib.forAllSystems {
          overlays = builtins.attrValues inputs.self.overlays;
          body =
            pkgs:
            (import ./packages pkgs)
            // {
              inherit (pkgs) swaylock-plugin-fprintd;
            };
        };

        overlays = (import ./overlays) // {
          nixpkgsUnstable = final: prev: {
            unstable = inputs.nixpkgsUnstable.legacyPackages.${prev.stdenv.hostPlatform.system};
          };
          lib = final: prev: {
            lib = prev.lib.extend (_: _: { tgc = lib; });
          };
          packages = final: prev: {
            tgc = import ./packages prev;
          };
          emacs-overlay = inputs.emacs-overlay.overlays.package;
          default = inputs.self.overlays.packages;
        };

        homeManagerModules = modulesTemplate (import ./homeManagerModules inputs.self);
        nixosModules = (modulesTemplate (import ./nixosModules inputs.self)) // {
          packages = {
            nixpkgs.overlays = with inputs.self.overlays; [
              libheif
              packages
            ];
          };
        };

      }
    );

}