nix/flake.nix

212 lines
7.6 KiB
Nix
Raw Normal View History

2022-01-28 14:25:01 +00:00
{
2022-04-06 15:20:16 +00:00
nixConfig = {
experimental-features = "nix-command flakes";
substitute = "true";
2022-05-02 14:12:50 +00:00
extra-substituters = "https://cache.nixos.org https://nixpkgs-wayland.cachix.org https://nix-community.cachix.org https://statix.cachix.org https://nixpkgs-update.cachix.org https://colmena.cachix.org https://cache.mrhedgehog.xyz";
extra-trusted-public-keys = "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= statix.cachix.org-1:Z9E/g1YjCjU117QOOt07OjhljCoRZddiAm4VVESvais= nixpkgs-update.cachix.org-1:6y6Z2JdoL3APdu6/+Iy8eZX2ajf09e4EE9SnxSML1W8= colmena.cachix.org-1:7BzpDnjjH8ki2CT3f6GdOk7QAzPOl+1t3LvTLXqYcSg= cache.mrhedgehog.xyz:Zf7CGFz5FvGTS6nTpyCxLd5U5mGvLqy+3HafvGywy7k=";
2022-04-06 15:20:16 +00:00
};
2022-02-07 01:24:15 +00:00
description = "Mr Hedgehog's Nix config with flakes";
2022-01-29 18:43:43 +00:00
inputs = {
2022-05-02 14:12:50 +00:00
nixpkgs.url = "github:K900/nixpkgs/systemd-boot-coreutils-mktemp";
# nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
2022-04-30 15:03:03 +00:00
nixos.url = "github:nixos/nixpkgs?rev=42948b300670223ca8286aaf916bc381f66a5313";
2022-03-30 01:57:59 +00:00
nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
2022-01-29 18:43:43 +00:00
nixos-hardware.url = "github:nixos/nixos-hardware";
# my-nixpkgs.url = "github:ModdedGamers/nixpkgs/python-gasp-init";
2022-04-30 15:03:03 +00:00
# my-nixpkgs.url = "path:/home/mrhedgehog/software/nixpkgs/coq_nvim-patches/";
2022-02-07 20:06:51 +00:00
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
2022-02-07 01:24:15 +00:00
alejandra.url = "github:kamadorueda/alejandra";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
doom-emacs.url = "github:nix-community/nix-doom-emacs";
doom-emacs.inputs.nixpkgs.follows = "nixpkgs";
2022-04-30 15:03:03 +00:00
emacs.url = "github:nix-community/emacs-overlay?rev=16262a84ef07fb0e8cfc592b65d786b086840065";
2022-02-07 20:06:51 +00:00
emacs.inputs.nixpkgs.follows = "nixos";
2022-03-30 01:57:59 +00:00
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager-nixos.url = "github:nix-community/home-manager";
home-manager-nixos.inputs.nixpkgs.follows = "nixos-unstable";
2022-05-01 13:47:49 +00:00
hydra-updated.url = "github:mayflower/nixpkgs/hydra-updates";
2022-01-29 18:43:43 +00:00
neovim.url = "github:nix-community/neovim-nightly-overlay";
2022-04-06 15:20:16 +00:00
nix-colors.url = "sourcehut:~misterio/nix-colors";
2022-02-11 18:10:00 +00:00
nixgl.url = "github:guibou/nixGL";
nixgl.inputs.nixpkgs.follows = "nixpkgs";
2022-04-06 15:20:16 +00:00
nixos-generators.url = "github:nix-community/nixos-generators/kexec-bundle";
2022-04-01 18:46:27 +00:00
nixos-generators.inputs.nixpkgs.follows = "nixpkgs";
2022-02-17 19:49:06 +00:00
nixpkgs-update.url = "github:ryantm/nixpkgs-update";
2022-02-07 01:24:15 +00:00
nur.url = "github:nix-community/nur";
nur.inputs.nixpkgs.follows = "nixpkgs";
statix.url = "github:NerdyPepper/statix";
statix.inputs.nixpkgs.follows = "nixpkgs";
2022-03-24 22:03:59 +00:00
tokyo-night-ff.url = "github:rototrash/tokyo-night-fox";
tokyo-night-ff.flake = false;
2022-02-09 18:40:36 +00:00
vim-plugins.url = "github:m15a/nixpkgs-vim-extra-plugins";
vim-plugins.inputs.nixpkgs.follows = "nixpkgs";
2022-02-07 01:24:15 +00:00
wayland.url = "github:nix-community/nixpkgs-wayland";
2022-01-29 18:43:43 +00:00
};
2022-03-16 10:43:47 +00:00
2022-02-27 20:57:58 +00:00
outputs = inputs @ {
self,
nixpkgs,
nixos,
2022-03-30 01:57:59 +00:00
nixos-unstable,
2022-02-27 20:57:58 +00:00
nixos-hardware,
2022-04-30 15:03:03 +00:00
# my-nixpkgs,
2022-02-27 20:57:58 +00:00
agenix,
alejandra,
doom-emacs,
emacs,
2022-03-30 01:57:59 +00:00
home-manager,
home-manager-nixos,
2022-05-01 13:47:49 +00:00
hydra-updated,
2022-02-27 20:57:58 +00:00
neovim,
2022-04-06 15:20:16 +00:00
nix-colors,
2022-02-27 20:57:58 +00:00
nixgl,
2022-04-01 18:46:27 +00:00
nixos-generators,
2022-02-27 20:57:58 +00:00
nixpkgs-update,
nur,
statix,
2022-03-24 22:03:59 +00:00
tokyo-night-ff,
2022-02-27 20:57:58 +00:00
vim-plugins,
wayland,
}: let
nixos-overlay = final: prev: {
nixos = import nixos {
2022-02-07 01:24:15 +00:00
inherit system;
2022-02-07 20:06:51 +00:00
config.allowUnfree = true;
overlays = [
2022-02-27 20:57:58 +00:00
emacs.overlay
2022-02-07 01:24:15 +00:00
];
};
2022-02-27 20:57:58 +00:00
};
2022-03-16 10:43:47 +00:00
alejandra-overlay = final: prev: {alejandra = alejandra.defaultPackage.${prev.system};};
2022-04-30 15:03:03 +00:00
# my-nixpkgs-overlay = final: prev: {my-nixpkgs = import my-nixpkgs {inherit system;};};
2022-02-27 20:57:58 +00:00
nixpkgs-update-overlay = final: prev: {nixpkgs-update = nixpkgs-update.defaultPackage.${prev.system};};
my-pkgs = final: prev: {my-pkgs = self.packages."${prev.system}";};
2022-03-16 10:43:47 +00:00
2022-02-27 20:57:58 +00:00
system = "x86_64-linux";
2022-03-16 10:43:47 +00:00
2022-02-27 20:57:58 +00:00
pkgs = import nixpkgs {
2022-03-29 22:12:22 +00:00
# inherit system;
localSystem = "x86_64-linux";
2022-03-16 10:43:47 +00:00
config = {
allowUnfree = true;
input-fonts.acceptLicense = true;
};
2022-02-27 20:57:58 +00:00
overlays = [
2022-04-30 15:03:03 +00:00
# (import ./pkgs/default.nix {inherit inputs;})
(import ./overlays/sumneko.nix)
# my-nixpkgs-overlay
2022-02-27 20:57:58 +00:00
my-pkgs
alejandra-overlay
nixos-overlay
neovim.overlay
nixgl.overlay
nixpkgs-update-overlay
nur.overlay
statix.overlay
vim-plugins.overlay
wayland.overlay
];
};
2022-03-16 10:43:47 +00:00
2022-04-06 15:20:16 +00:00
lib = nixpkgs.lib;
nixos-gen-config = {
pkgs = pkgs;
modules = [
2022-05-02 14:12:50 +00:00
./modules/caddy.nix
2022-05-02 17:48:42 +00:00
./hosts/marvin/configuration.nix { inherit inputs pkgs; }
2022-04-06 15:20:16 +00:00
];
};
2022-02-27 20:57:58 +00:00
in {
packages.${system} = {
2022-04-06 15:20:16 +00:00
"nerdfont-symbols" = pkgs.callPackage ./pkgs/nerdfont-symbols.nix {};
2022-02-27 20:57:58 +00:00
"sway-launcher-desktop" = pkgs.callPackage ./pkgs/sway-launcher-desktop.nix {};
"taskwarrior-tui" = pkgs.callPackage ./pkgs/taskwarrior-tui.nix {};
2022-03-24 22:03:59 +00:00
"tokyo-night-gtk" = pkgs.callPackage ./pkgs/tokyo-night-gtk.nix {};
2022-04-01 18:46:27 +00:00
# NixOS image builders
iso = nixos-generators.nixosGenerate {
2022-04-06 15:20:16 +00:00
inherit (nixos-gen-config) pkgs modules;
2022-04-01 18:46:27 +00:00
format = "iso";
};
2022-04-06 15:20:16 +00:00
kexec = nixos-generators.nixosGenerate {
inherit (nixos-gen-config) pkgs modules;
format = "kexec-bundle";
};
2022-04-01 18:46:27 +00:00
vm = nixos-generators.nixosGenerate {
2022-04-06 15:20:16 +00:00
inherit (nixos-gen-config) pkgs modules;
2022-04-01 18:46:27 +00:00
format = "vm";
};
qemu-img = nixos-generators.nixosGenerate {
2022-04-06 15:20:16 +00:00
inherit (nixos-gen-config) pkgs modules;
2022-04-01 18:46:27 +00:00
format = "qcow";
};
2022-02-27 20:57:58 +00:00
};
2022-02-11 18:10:00 +00:00
2022-05-01 14:48:59 +00:00
nixosConfigurations.marvin = lib.nixosSystem {
2022-04-06 15:20:16 +00:00
system = "x86_64-linux";
modules = [
2022-05-01 14:48:59 +00:00
./hosts/marvin/configuration.nix
./hosts/marvin/bootloader.nix
2022-05-01 13:47:49 +00:00
./modules/caddy.nix
2022-05-01 14:48:59 +00:00
];
specialArgs = { inherit self inputs; };
};
nixosConfigurations.zaphod = lib.nixosSystem {
system = "x86_64-linux";
modules = [
2022-04-06 15:20:16 +00:00
./hosts/zaphod/configuration.nix
./hosts/zaphod/bootloader.nix
inputs.home-manager-nixos.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.mrhedgehog = lib.mkMerge [
./home.nix
doom-emacs.hmModule
nix-colors.homeManagerModule
];
home-manager.extraSpecialArgs = {inherit pkgs system inputs nix-colors;};
2022-04-06 15:20:16 +00:00
}
];
specialArgs = { inherit self inputs nix-colors; };
2022-04-06 15:20:16 +00:00
};
nixosConfigurations.zaphod-iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/zaphod/configuration.nix
"${nixos-unstable}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
inputs.home-manager-nixos.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.mrhedgehog = lib.mkMerge [
./home.nix
doom-emacs.hmModule
nix-colors.homeManagerModule
];
home-manager.extraSpecialArgs = {inherit pkgs system inputs nix-colors;};
2022-04-06 15:20:16 +00:00
}
];
specialArgs = { inherit inputs nix-colors; };
2022-04-06 15:20:16 +00:00
};
2022-03-16 10:43:47 +00:00
2022-03-30 01:57:59 +00:00
homeConfigurations.mrhedgehog = home-manager.lib.homeManagerConfiguration {
2022-02-27 20:57:58 +00:00
inherit pkgs system;
username = "mrhedgehog";
stateVersion = "22.05";
homeDirectory = "/home/mrhedgehog";
2022-04-06 15:20:16 +00:00
configuration.imports = [
./home.nix
doom-emacs.hmModule
nix-colors.homeManagerModule
];
extraSpecialArgs = {inherit nix-colors;};
2022-02-27 20:57:58 +00:00
};
};
2022-01-28 14:25:01 +00:00
}