flake.nix (view raw)
1{
2 description = "charlotte's NixOS flake";
3 inputs = {
4 nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
5 nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
6
7 lix = {
8 url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 niri = {
13 url = "github:sodiboo/niri-flake";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16 };
17 outputs =
18 {
19 self,
20 nixpkgs,
21 nixpkgs-unstable,
22 lix,
23 niri,
24 ...
25 }@inputs:
26 {
27 nixosConfigurations = {
28 runestone = nixpkgs.lib.nixosSystem {
29 system = "x86_64-linux";
30
31 specialArgs = {
32 user-pkgs = self.packages."x86_64-linux";
33 unstable-pkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
34 };
35
36 modules = [
37 /*
38 ({ config, pkgs, ... }: {
39 nixpkgs.overlays = [
40 (final: prev: {
41 xdg-desktop-portal-gnome = prev.xdg-desktop-portal-gnome.overrideAttrs (oldAttrs: {
42 patches = (oldAttrs.patches or [ ]) ++ [
43 ./packages/xdg-desktop-portal-gnome/unattended.patch
44 ];
45 });
46 })
47 ];
48 })
49 */
50
51 lix.nixosModules.default
52
53 niri.nixosModules.niri
54 ({ ... }: {
55 nixpkgs.overlays = [ niri.overlays.niri ];
56 })
57
58 (
59 { ... }:
60 {
61 system.stateVersion = "24.05";
62 }
63 )
64
65 ./profiles/common/base.nix
66 ./profiles/common/locale.nix
67 ./profiles/common/networking.nix
68 ./profiles/common/desktop.nix
69
70 ./profiles/runestone/hardware-configuration.nix
71 ./profiles/runestone/base.nix
72 ./profiles/runestone/desktop.nix
73 ];
74 };
75
76 opal = nixpkgs.lib.nixosSystem {
77 system = "x86_64-linux";
78
79 specialArgs = {
80 user-pkgs = self.packages."x86_64-linux";
81 unstable-pkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
82 };
83
84 modules = [
85 lix.nixosModules.default
86
87 niri.nixosModules.niri
88 ({ ... }: {
89 nixpkgs.overlays = [ niri.overlays.niri ];
90 })
91
92 (
93 { ... }:
94 {
95 system.stateVersion = "23.05";
96 }
97 )
98
99 ./profiles/common/base.nix
100 ./profiles/common/locale.nix
101 ./profiles/common/networking.nix
102 ./profiles/common/desktop.nix
103
104 ./profiles/opal/hardware-configuration.nix
105 ./profiles/opal/base.nix
106 ./profiles/runestone/desktop.nix
107 ];
108 };
109 };
110
111 packages = {
112 x86_64-linux = import ./packages/default.nix {
113 pkgs = import nixpkgs { system = "x86_64-linux"; };
114 };
115 };
116 };
117}