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:nix-darwin/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 denix = {
38 url = "github:yunfachi/denix";
39 inputs.nixpkgs.follows = "nixpkgs";
40 inputs.nix-darwin.follows = "nix-darwin";
41 inputs.home-manager.follows = "home-manager";
42 };
43
44 zen-browser = {
45 url = "github:youwen5/zen-browser-flake";
46 inputs.nixpkgs.follows = "nixpkgs";
47 };
48
49 # ags = {
50 # url = "github:Aylur/ags";
51 # inputs.nixpkgs.follows = "nixpkgs";
52 # };
53 };
54
55 outputs = {
56 # ags,
57 denix,
58 home-manager,
59 lix-module,
60 niri-flake,
61 nix-darwin,
62 nix-index-database,
63 nixpkgs,
64 self,
65 ...
66 } @ inputs: let
67 system = "x86_64-linux";
68 pkgs = nixpkgs.legacyPackages.${system};
69 # agsPkgs = ags.packages.${system};
70 mkConfigurations = moduleSystem:
71 denix.lib.configurations (let
72 homeManagerUser = "ovy";
73 in {
74 inherit moduleSystem homeManagerUser;
75
76 paths = [./hosts ./modules]; #./rices];
77 specialArgs = {inherit inputs moduleSystem homeManagerUser;};
78 });
79 in {
80 packages.${system} = {
81 iconifydl = pkgs.callPackage ./pkgs/iconifydl.nix {};
82
83 # default = ags.lib.bundle {
84 # inherit pkgs;
85 # src = ./files/astal;
86 # name = "ovy-shell";
87 # entry = "app.ts";
88 # };
89 };
90
91 # devShells.x86_64-linux.default = pkgs.mkShell {
92 # buildInputs = [agsPkgs.agsFull agsPkgs.io agsPkgs.apps agsPkgs.tray self.packages.${system}.iconifydl];
93 # };
94
95 nixosConfigurations = mkConfigurations "nixos";
96 darwinConfigurations = mkConfigurations "darwin";
97
98 # nixosModules.serverHomeManager = {...}: {
99 # imports = [home-manager.nixosModules.home-manager];
100
101 # home-manager = {
102 # useGlobalPkgs = true;
103 # useUserPackages = true;
104 # backupFileExtension = "backup";
105 # users.ovy = import ./home/server.nix;
106 # extraSpecialArgs = {inherit inputs;};
107 # };
108 # };
109
110 formatter = {
111 aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.alejandra;
112 aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra;
113 x86_64-darwin = nixpkgs.legacyPackages.x86_64-darwin.alejandra;
114 x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
115 };
116 };
117}