nix-conf/flake.nix

115 lines
3.1 KiB
Nix
Raw Normal View History

2023-02-20 16:38:19 +01:00
{
2023-05-19 12:08:06 +02:00
description = "jopejoe1 NixOS configuration";
2024-01-13 17:54:41 +01:00
inputs = {
2024-09-01 15:51:59 +02:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
2024-02-17 23:46:37 +01:00
2024-08-06 20:57:14 +02:00
nixified-ai = {
url = "github:nixified-ai/flake";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-02-17 23:46:37 +01:00
# Outputs
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
# Modules
2024-01-18 20:12:43 +01:00
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-12-30 23:39:33 +01:00
jovian = {
2023-12-29 16:43:40 +01:00
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-12-30 23:39:33 +01:00
home-manager = {
2023-07-27 15:25:31 +02:00
url = "github:nix-community/home-manager";
2023-02-20 16:38:19 +01:00
inputs.nixpkgs.follows = "nixpkgs";
};
2023-07-27 15:25:31 +02:00
nixos-hardware.url = "github:NixOS/nixos-hardware";
2024-02-07 22:23:26 +01:00
nether = {
url = "github:Lassulus/nether";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-02-07 23:19:26 +01:00
srvos = {
url = "github:nix-community/srvos";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-04-18 16:10:50 +02:00
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
2024-04-18 17:26:19 +02:00
impermanence.url = "github:nix-community/impermanence";
2024-04-20 10:11:36 +02:00
snm = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-07-14 15:22:14 +02:00
catppuccin.url = "github:catppuccin/nix";
2024-07-15 17:12:20 +02:00
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
2024-04-20 10:11:36 +02:00
2024-02-17 23:46:37 +01:00
# Packages
tela-icon-theme = {
url = "github:vinceliuice/Tela-icon-theme";
2023-08-23 22:40:41 +02:00
flake = false;
};
2024-02-17 23:46:37 +01:00
prismlauncher = {
url = "github:PrismLauncher/PrismLauncher";
2023-08-23 22:40:41 +02:00
inputs.nixpkgs.follows = "nixpkgs";
};
2024-02-17 23:46:37 +01:00
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
2023-08-23 22:40:41 +02:00
};
2024-04-18 16:27:24 +02:00
# Utility
nixos-anywhere = {
url = "github:nix-community/nixos-anywhere";
inputs.nixpkgs.follows = "nixpkgs";
inputs.disko.follows = "disko";
};
2024-08-08 21:04:32 +02:00
# Flake Stuff
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-02-20 16:38:19 +01:00
};
2023-02-23 20:34:35 +01:00
2024-07-10 23:02:54 +02:00
outputs =
2024-08-08 21:08:25 +02:00
inputs@{
self,
nixpkgs,
treefmt-nix,
...
}:
2024-08-08 21:04:32 +02:00
let
forSystems = f: nixpkgs.lib.attrsets.genAttrs nixpkgs.lib.systems.flakeExposed (system: f system);
pkgs' = system: nixpkgs.legacyPackages.${system};
treefmtEval = system: treefmt-nix.lib.evalModule (pkgs' system) ./treefmt.nix;
in
2024-07-10 23:02:54 +02:00
{
2024-07-15 18:00:45 +02:00
modules.default = import ./modules;
2024-07-15 17:12:20 +02:00
nixosModules.default = import ./nixos-modules;
2024-07-10 23:02:54 +02:00
homeManagerModules.default = import ./home-modules;
nixosConfigurations = import ./systems { inherit self inputs nixpkgs; };
2024-08-08 21:04:32 +02:00
packages = forSystems (
2024-07-10 23:02:54 +02:00
system:
import ./packages {
inherit system inputs;
2024-08-08 21:04:32 +02:00
pkgs = pkgs' system;
2024-07-10 23:02:54 +02:00
}
);
2024-08-08 21:08:25 +02:00
formatter = forSystems (system: (treefmtEval system).config.build.wrapper);
checks = forSystems (system: {
2024-08-08 21:04:32 +02:00
formatting = (treefmtEval system).config.build.check self;
});
2023-02-22 17:56:24 +01:00
};
2023-02-20 16:38:19 +01:00
}