blob: 62ebdef84ecd0c0e8060d533ab2730189dc402a7 [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 Greyc7213502022-05-21 21:12:24 +01007 nurpkgs.url = "github:nix-community/NUR";
8 comma.url = "github:nix-community/comma";
Skyler Turner0ab3b7f2022-03-04 23:24:10 +00009
10 # Make sure flakes we depend on use the same version of nixpkgs as we do
11 home-manager.inputs.nixpkgs.follows = "nixpkgs";
Skyler Turner62330c12022-03-04 22:10:16 +000012 };
Skyler Turner85ddd892022-03-04 10:21:38 +000013
Skyler Greyc7213502022-05-21 21:12:24 +010014 outputs = extraInputs@{ self, nixpkgs, home-manager, ... }:
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000015 let
16 system = "x86_64-linux"; # TOOD: Add options for MacOS
Skyler Turner85ddd892022-03-04 10:21:38 +000017
Skyler Turnerb03a4012022-03-04 22:38:22 +000018 pkgs = import nixpkgs {
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000019 inherit system;
20
21 config = { allowUnfree = true; };
22 };
23
24 variables = import ./src/common/variables.nix;
25 in {
Skyler Grey677635f2022-05-18 21:58:58 +010026 nixosConfigurations = {
Skyler Grey16d536e2022-05-18 22:00:59 +010027 default = nixpkgs.lib.nixosSystem {
Skyler Grey395d6282022-05-19 06:56:49 +010028 inherit system;
29
30 extraArgs = {
31 inherit nixpkgs;
Skyler Greyf93dd5a2022-05-19 06:56:58 +010032 };
Skyler Turner85ddd892022-03-04 10:21:38 +000033
Skyler Grey677635f2022-05-18 21:58:58 +010034 modules = [
35 src/system.nix
36 ];
37 };
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000038 };
Skyler Turner62330c12022-03-04 22:10:16 +000039
Skyler Grey1ec54612022-05-22 07:14:17 +010040 homeConfigurations = {
41 "${username}" = home-manager.lib.homeManagerConfiguration rec {
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000042 inherit system pkgs;
Skyler Turner62330c12022-03-04 22:10:16 +000043
Skyler Greyc7213502022-05-21 21:12:24 +010044 extraSpecialArgs = extraInputs;
45
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000046 username = variables.username;
47 homeDirectory = "/home/${username}";
Skyler Turner0ab3b7f2022-03-04 23:24:10 +000048 stateVersion = variables.stateVersion;
Skyler Turnerc7a1e2f2022-03-04 22:23:50 +000049
50 configuration = {
51 imports = [
52 src/home.nix
Skyler Turner62330c12022-03-04 22:10:16 +000053 ];
Skyler Turner0ab3b7f2022-03-04 23:24:10 +000054
55 programs.home-manager.enable = true;
56 # Although I don't do any other configuration here directly,
57 # this is needed to make home-manager work and so *must* be
58 # present on every home manager configuration.
Skyler Turner20445bd2022-03-04 22:22:57 +000059 };
Skyler Turner62330c12022-03-04 22:10:16 +000060 };
Skyler Turner62330c12022-03-04 22:10:16 +000061 };
62 };
Skyler Turner85ddd892022-03-04 10:21:38 +000063}