tomato/flake.nix

100 lines
2.8 KiB
Nix

{
description = "Iwakura System Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware";
home-manager = {
url = "github:nix-community/home-manager/release-20.09";
inputs.nixpkgs.follows = "nixpkgs";
};
swatch = {
url = "github:techieAgnostic/swatch";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
nvim-nightly = {
url = "github:nix-community/neovim-nightly-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, ...}@inputs: rec {
hydraJobs = {
iwakura."x86_64-linux" = nixosConfigurations.iwakura.config.system.build.toplevel;
};
nixosConfigurations.iwakura = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# enable secrets in the store
# inputs.agenix.nixosModules.age
# (import ./secrets { inherit inputs.agenix; })
# enable flakes or we'll be sad
(import ./modules/flakes)
# enable sane garbage collection options
(import ./modules/gc)
# enabling window-manager
(import ./modules/bspwm)
# enable iohk binary cache for haskell dot nix
(import ./modules/iohk)
# neovim + plugins
(import ./modules/neovim)
# disk partitions and such (plus more that needs to be taken out)
(import ./hardware/iwakura)
# sane nameservers because aussie gov blocks everything
(import ./modules/nameservers)
# start mpd
(import ./modules/ncmpcpp)
# FHS runtime for games
(import ./modules/gog-games)
# start hydra CI
(import ./modules/hydra)
# community settings for this laptop
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t420
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
# import home manager profiles and set to use same nixpkgs
inputs.home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users = {
root = import ./users/root/home.nix;
thorn = import ./users/thorn/home.nix;
};
};
}
# import nix config user profiles + misc
({ pkgs, ... }: {
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [
inputs.swatch.overlay
inputs.nvim-nightly.overlay
(import ./overlays/picom.nix)
];
nix.registry.nixpkgs.flake = inputs.nixpkgs;
imports = [
./users/root
./users/thorn
];
})
];
};
};
}