blob: d39c8c7e5cd737940f7179116c5f79389d297b4a [file] [log] [blame]
Skyler Turner85ddd892022-03-04 10:21:38 +00001{
Skyler Turner62330c12022-03-04 22:10:16 +00002 description = "Minion3665's NixFiles (since 2022-03-24)";
Skyler Turner85ddd892022-03-04 10:21:38 +00003
Skyler Turner62330c12022-03-04 22:10:16 +00004 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11";
6 home-manager.url = "github:nix-community/home-manager/release-21.11";
Skyler Turner0ab3b7f2022-03-04 23:24:10 +00007
8 # Make sure flakes we depend on use the same version of nixpkgs as we do
9 home-manager.inputs.nixpkgs.follows = "nixpkgs";
Skyler Turner62330c12022-03-04 22:10:16 +000010 };
Skyler Turner85ddd892022-03-04 10:21:38 +000011
Skyler Turnerf4107022022-03-04 22:22:28 +000012 outputs = { self, nixpkgs, home-manager }:
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000013 let
14 system = "x86_64-linux"; # TOOD: Add options for MacOS
Skyler Turner85ddd892022-03-04 10:21:38 +000015
Skyler Turnerb03a4012022-03-04 22:38:22 +000016 pkgs = import nixpkgs {
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000017 inherit system;
18
19 config = { allowUnfree = true; };
20 };
21
22 variables = import ./src/common/variables.nix;
23 in {
24 nixosConfigurations = {
25 default = pkgs.lib.nixosSystem {
Skyler Turner62330c12022-03-04 22:10:16 +000026 inherit system;
Skyler Turner85ddd892022-03-04 10:21:38 +000027
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000028 modules = [
29 src/system.nix
30 ];
Skyler Turner62330c12022-03-04 22:10:16 +000031 };
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000032 };
Skyler Turner62330c12022-03-04 22:10:16 +000033
Skyler Turner138b6f72022-03-04 22:35:15 +000034 homeManagerConfigurations = {
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000035 minion = home-manager.lib.homeManagerConfiguration rec {
36 inherit system pkgs;
Skyler Turner62330c12022-03-04 22:10:16 +000037
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000038 username = variables.username;
39 homeDirectory = "/home/${username}";
Skyler Turner0ab3b7f2022-03-04 23:24:10 +000040 stateVersion = variables.stateVersion;
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000041
42 configuration = {
43 imports = [
44 src/home.nix
Skyler Turner62330c12022-03-04 22:10:16 +000045 ];
Skyler Turner0ab3b7f2022-03-04 23:24:10 +000046
47 programs.home-manager.enable = true;
48 # Although I don't do any other configuration here directly,
49 # this is needed to make home-manager work and so *must* be
50 # present on every home manager configuration.
Skyler Turner20445bd2022-03-04 22:22:57 +000051 };
Skyler Turner62330c12022-03-04 22:10:16 +000052 };
Skyler Turner62330c12022-03-04 22:10:16 +000053 };
54 };
Skyler Turner85ddd892022-03-04 10:21:38 +000055}