forked from nuxshed/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
87 lines (77 loc) · 2.39 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{
description = "My NixOS Configuration";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
emacs-overlay.url = "github:nix-community/emacs-overlay";
nixpkgs-f2k.url = "github:fortuneteller2k/nixpkgs-f2k";
# awesomewm modules
bling = { url = "github:BlingCorp/bling"; flake = false; };
rubato = { url = "github:andOrlando/rubato"; flake = false; };
};
outputs = { self, nixpkgs, home-manager, neovim-nightly, emacs-overlay, nixpkgs-f2k, ... }@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = { allowUnfree = true; }; # Forgive me Mr. Stallman
};
lib = nixpkgs.lib.extend
(final: prev:
let
inherit (lib) mkOption types;
in
{
mkOpt = type: default:
mkOption { inherit type default; };
mkOpt' = type: default: description:
mkOption { inherit type default description; };
mkBoolOpt = default: mkOption {
inherit default;
type = types.bool;
example = true;
};
});
extraSpecialArgs = {
inherit inputs self;
bling = inputs.bling;
rubato = inputs.rubato;
};
overlays = [
nixpkgs-f2k.overlay
neovim-nightly.overlay
emacs-overlay.overlay
];
in
{
homemanagerConfigurations = {
earth = home-manager.lib.homeManagerConfiguration {
inherit extraSpecialArgs;
configuration = { pkgs, config, ... }:
{
home.stateVersion = "21.11";
programs.home-manager.enable = true;
nixpkgs.overlays = overlays;
imports = [ ./hosts/earth/user.nix ];
};
system = "x86_64-linux";
homeDirectory = "/home/advait";
username = "advait";
stateVersion = "21.11";
};
};
nixosConfigurations = {
earth = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
{
nixpkgs.overlays = overlays;
}
./hosts/earth/configuration.nix
];
};
};
};
}