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 { self
19 , nixpkgs
20 , nixpkgs-unstable
21 , lix
22 , niri
23 , ...
24 }@inputs:
25 {
26 nixosConfigurations = {
27 runestone = nixpkgs.lib.nixosSystem {
28 system = "x86_64-linux";
29
30 specialArgs = {
31 user-pkgs = self.packages."x86_64-linux";
32 unstable-pkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
33 };
34
35 modules = [
36 /*
37 ({ config, pkgs, ... }: {
38 nixpkgs.overlays = [
39 (final: prev: {
40 xdg-desktop-portal-gnome = prev.xdg-desktop-portal-gnome.overrideAttrs (oldAttrs: {
41 patches = (oldAttrs.patches or [ ]) ++ [
42 ./packages/xdg-desktop-portal-gnome/unattended.patch
43 ];
44 });
45 })
46 ];
47 })
48 */
49
50 lix.nixosModules.default
51
52 niri.nixosModules.niri
53 ({ ... }: {
54 nixpkgs.overlays = [ niri.overlays.niri ];
55 })
56
57 (
58 { ... }:
59 {
60 system.stateVersion = "24.05";
61 }
62 )
63
64 ./profiles/common/base.nix
65 ./profiles/common/locale.nix
66 ./profiles/common/networking.nix
67 ./profiles/common/desktop.nix
68
69 ./profiles/runestone/hardware-configuration.nix
70 ./profiles/runestone/base.nix
71 ./profiles/runestone/desktop.nix
72 ];
73 };
74
75 opal = nixpkgs.lib.nixosSystem {
76 system = "x86_64-linux";
77
78 specialArgs = {
79 user-pkgs = self.packages."x86_64-linux";
80 unstable-pkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
81 };
82
83 modules = [
84 lix.nixosModules.default
85
86 niri.nixosModules.niri
87 ({ ... }: {
88 nixpkgs.overlays = [ niri.overlays.niri ];
89 })
90
91 (
92 { ... }:
93 {
94 system.stateVersion = "23.05";
95 }
96 )
97
98 ./profiles/common/base.nix
99 ./profiles/common/locale.nix
100 ./profiles/common/networking.nix
101 ./profiles/common/desktop.nix
102
103 ./profiles/opal/hardware-configuration.nix
104 ./profiles/opal/base.nix
105 ./profiles/opal/software.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}