nix/flake.nix
2023-01-05 08:50:42 -05:00

150 lines
5.6 KiB
Nix

{
nixConfig = {
experimental-features = "nix-command flakes";
substitute = "true";
extra-substituters = "https://cache.nixos.org https://nixpkgs-wayland.cachix.org https://nix-community.cachix.org https://nixpkgs-update.cachix.org https://colmena.cachix.org";
extra-trusted-public-keys = "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8= colmena.cachix.org-1:7BzpDnjjH8ki2CT3f6GdOk7QAzPOl+1t3LvTLXqYcSg=";
cores = 0;
max-jobs = 8;
netrc-file = "/home/thehedgehog/.netrc";
};
description = "The Hedgehog's Nix config with flakes";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
espanso-nixpkgs.url = "github:thehedgehog0/nixpkgs/espanso-update-2.1.8";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
alejandra.url = "github:kamadorueda/alejandra";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
colmena.url = "github:zhaofengli/colmena";
dns.url = "github:kirelagin/dns.nix";
dns.inputs.nixpkgs.follows = "nixpkgs";
doom-emacs.url = "github:nix-community/nix-doom-emacs";
doom-emacs.inputs.nixpkgs.follows = "nixpkgs";
emacs.url = "github:nix-community/emacs-overlay";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
neovim.url = "github:nix-community/neovim-nightly-overlay";
nix-colors.url = "sourcehut:~misterio/nix-colors";
nixpkgs-update.url = "github:ryantm/nixpkgs-update";
nur.url = "github:nix-community/nur";
wayland.url = "github:nix-community/nixpkgs-wayland";
};
outputs = inputs @ {
self,
nixpkgs,
nixos-unstable,
espanso-nixpkgs,
agenix,
alejandra,
colmena,
dns,
doom-emacs,
emacs,
home-manager,
mailserver,
neovim,
nix-colors,
nixpkgs-update,
nur,
wayland,
}: let
alejandra-overlay = final: prev: {alejandra = alejandra.defaultPackage.${prev.system};};
nixpkgs-update-overlay = final: prev: {nixpkgs-update = nixpkgs-update.defaultPackage.${prev.system};};
my-pkgs = final: prev: {my-pkgs = self.packages."${prev.system}";};
colmena-overlay = final: prev: {colmena = colmena.defaultPackage.${prev.system};};
system = "x86_64-linux";
pkgs = import nixpkgs {
localSystem = "x86_64-linux";
config = {
allowUnfree = true;
input-fonts.acceptLicense = true;
joypixels.acceptLicense = true;
};
overlays = [
(import ./overlays/treesitter.nix)
(import ./overlays/sumneko.nix)
(import ./overlays/nyxt.nix)
my-pkgs
alejandra-overlay
colmena-overlay
emacs.overlay
neovim.overlay
nixpkgs-update-overlay
nur.overlay
wayland.overlays.default
];
};
lib = nixpkgs.lib;
in {
packages.${system} = {
"caddy" = pkgs.callPackage ./pkgs/caddyBin.nix {};
"catppuccin-bat" = pkgs.callPackage ./pkgs/catppuccin-bat.nix {};
"catppuccin-btop" = pkgs.callPackage ./pkgs/catppuccin-btop.nix {};
"cinny" = pkgs.callPackage ./pkgs/cinny.nix {};
"go-jamming" = pkgs.callPackage ./pkgs/go-jamming.nix {};
"nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.nix {};
"nyxt" = pkgs.callPackage ./pkgs/nyxt.nix {};
"nyxt-lisp" = pkgs.callPackage ./pkgs/nyxt-lisp.nix {};
"littlelink-custom" = pkgs.callPackage ./pkgs/littlelink-custom.nix {};
"olympus" = pkgs.callPackage ./pkgs/olympus.nix {};
"ory-hydra" = pkgs.callPackage ./pkgs/ory-hydra.nix {};
"pgp-webroot" = pkgs.callPackage ./pkgs/pgp-webroot.nix {};
"pywalfox" = pkgs.callPackage ./pkgs/pywalfox.nix {};
"radicale-htpasswd" = pkgs.callPackage ./pkgs/radicale-htpasswd.nix {};
"tokyo-night-gtk" = pkgs.callPackage ./pkgs/tokyo-night-gtk.nix {};
};
nixosConfigurations.marvin = lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/marvin/configuration.nix
./hosts/marvin/bootloader.nix
mailserver.nixosModule
];
specialArgs = {inherit self inputs pkgs;};
};
nixosConfigurations.prefect = lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/prefect/configuration.nix
./hosts/prefect/bootloader.nix
./modules/dn42-pingfinder.nix
];
specialArgs = {inherit self inputs pkgs;};
};
nixosConfigurations.zaphod = lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/zaphod/configuration.nix
./hosts/zaphod/bootloader.nix
inputs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.thehedgehog = lib.mkMerge [
./home.nix
doom-emacs.hmModule
nix-colors.homeManagerModule
];
home-manager.extraSpecialArgs = {inherit pkgs system inputs nix-colors;};
}
];
specialArgs = {inherit self inputs nix-colors;};
};
hydraJobs = {
build = {
marvin = self.nixosConfigurations.marvin.config.system.build.toplevel;
prefect = self.nixosConfigurations.prefect.config.system.build.toplevel;
zaphod = self.nixosConfigurations.zaphod.config.system.build.toplevel;
};
};
};
}