Kieran's opinionated (and probably slightly dumb) nix config
1{
2 description = "Kieran's opinionated (and probably slightly dumb) nix config";
3
4 inputs = {
5 # Nixpkgs
6 nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
7 nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
8
9 # NixOS hardware configuration
10 hardware.url = "github:NixOS/nixos-hardware/master";
11
12 # Home manager
13 home-manager.url = "github:nix-community/home-manager/release-24.05";
14 home-manager.inputs.nixpkgs.follows = "nixpkgs";
15
16 # hyprland nix
17 Hyprnix.url = "github:hyprland-community/hyprnix";
18 hyprland-contrib = {
19 url = "github:hyprwm/contrib";
20 };
21
22 disko.url = "github:nix-community/disko";
23 disko.inputs.nixpkgs.follows = "nixpkgs";
24
25 # agenix
26 agenix.url = "github:ryantm/agenix";
27
28 spicetify-nix = {
29 url = "github:Gerg-L/spicetify-nix";
30 inputs.nixpkgs.follows = "nixpkgs";
31 };
32
33 # catppuccin
34 catppuccin.url = "github:catppuccin/nix";
35
36 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
37 };
38
39 outputs = {
40 self,
41 nixpkgs,
42 nixpkgs-unstable,
43 agenix,
44 home-manager,
45 nixos-hardware,
46 hyprland-contrib,
47 ...
48 } @ inputs: let
49 inherit (self) outputs;
50 system = "x86_64-linux";
51 unstable-overlays = {
52 nixpkgs.overlays = [
53 (final: prev: {
54 unstable = import nixpkgs-unstable {
55 inherit system;
56 config.allowUnfree = true;
57 };
58 })
59 ];
60 };
61 in {
62 # NixOS configuration entrypoint
63 # Available through 'nixos-rebuild --flake .#your-hostname'
64 nixosConfigurations = {
65 moonlark = nixpkgs.lib.nixosSystem {
66 system = "x86_64-linux";
67
68 specialArgs = {inherit inputs outputs;};
69
70 # > Our main nixos configuration file <
71 modules = [
72 inputs.disko.nixosModules.disko
73 { disko.devices.disk.disk1.device = "/dev/vda"; }
74 agenix.nixosModules.default
75 ./moonlark/configuration.nix
76 unstable-overlays
77 ];
78 };
79 };
80 };
81}