Nix configurations for my personal machines (Linux & macOS)
1{
2 inputs = {
3 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
4 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
5 # nur.url = "github:nix-community/NUR";
6
7 nix-darwin = {
8 url = "github:LnL7/nix-darwin";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 home-manager = {
13 url = "github:nix-community/home-manager";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16
17 nix-index-database = {
18 url = "github:nix-community/nix-index-database";
19 inputs.nixpkgs.follows = "nixpkgs";
20 };
21
22 iosevka-solai = {
23 url = "github:ovyerus/iosevka-solai";
24 inputs.nixpkgs.follows = "nixpkgs";
25 };
26
27 niri-flake = {
28 url = "github:sodiboo/niri-flake";
29 inputs.nixpkgs.follows = "nixpkgs";
30 };
31
32 lix-module = {
33 url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
34 inputs.nixpkgs.follows = "nixpkgs";
35 };
36
37 ags = {
38 url = "github:Aylur/ags";
39 inputs.nixpkgs.follows = "nixpkgs";
40 };
41 };
42
43 outputs = {
44 ags,
45 home-manager,
46 lix-module,
47 niri-flake,
48 nix-darwin,
49 nix-index-database,
50 nixpkgs,
51 self,
52 ...
53 } @ inputs: let
54 system = "x86_64-linux";
55 pkgs = nixpkgs.legacyPackages.${system};
56 agsPkgs = ags.packages.${system};
57 in {
58 packages.${system} = {
59 iconifydl = pkgs.callPackage ./pkgs/iconifydl.nix {};
60
61 default = ags.lib.bundle {
62 inherit pkgs;
63 src = ./files/astal;
64 name = "ovy-shell";
65 entry = "app.ts";
66 };
67 };
68
69 devShells.x86_64-linux.default = pkgs.mkShell {
70 buildInputs = [agsPkgs.agsFull agsPkgs.io agsPkgs.apps agsPkgs.tray self.packages.${system}.iconifydl];
71 };
72
73 nixosConfigurations.wallsocket = nixpkgs.lib.nixosSystem {
74 system = "x86_64-linux";
75 specialArgs = {inherit inputs;};
76 modules = [
77 ./nixos/wallsocket/configuration.nix
78 niri-flake.nixosModules.niri
79 nix-index-database.nixosModules.nix-index
80 lix-module.nixosModules.default
81 home-manager.nixosModules.home-manager
82 {
83 programs.command-not-found.enable = false;
84 home-manager = {
85 useGlobalPkgs = true;
86 useUserPackages = true;
87 backupFileExtension = "backup";
88 users.ovy = import ./home/wallsocket.nix;
89 extraSpecialArgs = {inherit inputs;};
90 };
91 }
92 ];
93 };
94
95 darwinConfigurations.shimmer = nix-darwin.lib.darwinSystem {
96 specialArgs = {inherit inputs;};
97 modules = [
98 ./darwin/shimmer/configuration.nix
99 home-manager.darwinModules.home-manager
100 {
101 home-manager = {
102 useGlobalPkgs = true;
103 useUserPackages = true;
104 backupFileExtension = "backup";
105 users.ovy = import ./home/shimmer.nix;
106 extraSpecialArgs = {inherit inputs;};
107 };
108 }
109 ];
110 };
111
112 nixosModules.serverHomeManager = {...}: {
113 imports = [home-manager.nixosModules.home-manager];
114
115 home-manager = {
116 useGlobalPkgs = true;
117 useUserPackages = true;
118 backupFileExtension = "backup";
119 users.ovy = import ./home/server.nix;
120 extraSpecialArgs = {inherit inputs;};
121 };
122 };
123
124 formatter = {
125 aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.alejandra;
126 aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra;
127 x86_64-darwin = nixpkgs.legacyPackages.x86_64-darwin.alejandra;
128 x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
129 };
130 };
131}