{ 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 ]; }) ]; }; }; }