this repo has no description
1{
2 description = "Hauleth's configuration";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
6 darwin-stable.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin";
7 flake-parts.url = "github:hercules-ci/flake-parts";
8
9 home-manager = {
10 url = "github:nix-community/home-manager";
11 inputs.nixpkgs.follows = "nixpkgs";
12 };
13 agnoster = {
14 url = "github:hauleth/agnoster";
15 inputs.nixpkgs.follows = "nixpkgs";
16 };
17 darwin = {
18 url = "github:lnl7/nix-darwin";
19 inputs.nixpkgs.follows = "nixpkgs";
20 };
21
22 # neorg-overlay = {
23 # url = "github:nvim-neorg/nixpkgs-neorg-overlay";
24 # inputs.nixpkgs.follows = "nixpkgs";
25 # };
26
27 expert = {
28 url = "github:elixir-lang/expert";
29 inputs.nixpkgs.follows = "nixpkgs";
30 };
31
32 # nixvim = {
33 # url = "github:nix-community/nixvim";
34 # inputs.nixpkgs.follows = "nixpkgs";
35 # };
36 };
37
38 nixConfig = {
39 extra-substituters = [
40 "https://cache.lix.systems"
41 ];
42 extra-trusted-public-keys = [
43 "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
44 ];
45 };
46
47 outputs =
48 {
49 self,
50 flake-parts,
51 ...
52 }@inputs:
53 flake-parts.lib.mkFlake { inherit inputs; } {
54 flake = {
55 lib = import ./lib.nix inputs;
56
57 # TODO: Automatically discover and build that
58 darwinConfigurations."Niuniobook" = (import ./hosts/niuniobook.nix { inherit inputs; }).system;
59
60 darwinConfigurations."Supadupa" = (import ./hosts/supadupa.nix { inherit inputs; }).system;
61
62 templates = {
63 elixir = {
64 path = ./templates/elixir;
65 description = "Basic requirements for Elixir applications";
66 };
67 };
68 };
69
70 systems = [
71 "x86_64-darwin"
72 "aarch64-darwin"
73 ];
74
75 perSystem =
76 {
77 self',
78 pkgs,
79 inputs',
80 ...
81 }:
82 {
83 formatter = pkgs.nixfmt-tree;
84
85 legacyPackages = inputs'.darwin-stable.legacyPackages.callPackage ./pkgs { };
86
87 packages = (pkgs.callPackage ./pkgs { }) // {
88 default = pkgs.writeScriptBin "activate" ''
89 #!/bin/sh
90 ${pkgs.lib.getExe self'.packages.system} switch
91 '';
92
93 system =
94 let
95 builder =
96 if pkgs.stdenv.isDarwin then
97 pkgs.lib.getExe' inputs'.darwin.packages.darwin-rebuild "darwin-rebuild"
98 else
99 pkgs.lib.getExe pkgs.nixos-rebuild;
100 in
101 pkgs.writeScriptBin "activate-system" ''
102 #!/bin/sh
103 exec ${builder} --flake "${self}" "$@"
104 '';
105 };
106
107 devShells =
108 let
109 globalShells = pkgs.callPackage ./dev_shells.nix { };
110 default = pkgs.mkShell {
111 packages = [
112 pkgs.fnlfmt
113 # TODO: Remove it and manage all configuration from Nix
114 pkgs.stow
115 ];
116 };
117 in
118 globalShells // { inherit default; };
119 };
120 };
121}