forked from tA/Iwakura
100 lines
2.8 KiB
Nix
100 lines
2.8 KiB
Nix
{
|
|
description = "Iwakura System Flake";
|
|
inBIGERRORputs = {
|
|
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
|
|
];
|
|
})
|
|
];
|
|
};
|
|
};
|
|
}
|