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