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 niri.nixosModules.niri
85 ({ ... }: {
86 nixpkgs.overlays = [ niri.overlays.niri ];
87 })
88
89 (
90 { ... }:
91 {
92 system.stateVersion = "23.05";
93 }
94 )
95
96 ./profiles/common/base.nix
97 ./profiles/common/locale.nix
98 ./profiles/common/networking.nix
99 ./profiles/common/desktop.nix
100
101 ./profiles/opal/hardware-configuration.nix
102 ./profiles/opal/base.nix
103 ./profiles/opal/software.nix
104 ./profiles/runestone/desktop.nix
105 ];
106 };
107 };
108
109 packages = {
110 x86_64-linux = import ./packages/default.nix {
111 pkgs = import nixpkgs { system = "x86_64-linux"; };
112 };
113 };
114 };
115}