-
Notifications
You must be signed in to change notification settings - Fork 2
/
flake.nix
72 lines (66 loc) · 2.01 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
# flake.nix, NixOS configuration with Flakes
{
description = "My NixOS configuration with Flakes";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # NixOS unstable channel
nixos-hardware.url = "github:NixOS/nixos-hardware"; # NixOS hardware support
home-manager.url = "github:nix-community/home-manager/master"; # Home Manager channel
android-nixpkgs = {
url = "github:tadfisher/android-nixpkgs"; # Android tools Flakes
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixos-hardware, home-manager, android-nixpkgs, ... } @ inputs : let
inherit (self) outputs; # to export the output variable
system = "x86_64-linux"; # your system
genericModules = [
./configuration.nix
{
# Fix for nixpkgs without flakes
nix.registry.nixos.flake = inputs.self;
environment.etc."nix/inputs/nixpkgs".source = nixpkgs.outPath;
nix.nixPath = [ "nixpkgs=${nixpkgs.outPath}" ];
}
# Home manager
home-manager.nixosModules.home-manager
{
nix.registry.nixos.flake = inputs.self;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
imports = [
./modules/home # home-manager configs
];
}
# Closure for adding overlays
(_: {
nixpkgs.overlays = [
overlay-androidsdk
];
})
];
# Overlays lists
overlay-androidsdk = _final: _prev: {
android-sdk = android-nixpkgs.sdk.${system} (sdkPkgs: with sdkPkgs; [
cmdline-tools-latest
build-tools-34-0-0
platform-tools
platforms-android-34
emulator
]);
};
in
{
nixosConfigurations = {
# Computer name (hostname)
ThinkPad-X280 = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs outputs; # Flakes can access inputs outputs in your configuration.nix, etc
};
modules = genericModules ++ [
nixos-hardware.nixosModules.lenovo-thinkpad-x280
];
};
};
};
}