/ flake.nix
flake.nix
 1  # git add .; nix run .#update --show-trace
 2  # git add .; nix run .#activate --show-trace
 3  # git add .; nix run .#activate $USER@$HOST --show-trace
 4  {
 5    description = "Mumtahin Farabi's distributed NixOS Configurations.";
 6  
 7    inputs = {
 8      nixos-unified.url = "github:srid/nixos-unified";
 9      flake-parts.url = "github:hercules-ci/flake-parts";
10      nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
11  
12      # lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
13      # lix-module.inputs.nixpkgs.follows = "nixpkgs";
14  
15      nix-darwin.url = "github:nix-darwin/nix-darwin/master";
16      nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
17  
18      nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
19      nixos-wsl.inputs.nixpkgs.follows = "nixpkgs";
20  
21      home-manager.url = "github:nix-community/home-manager";
22      home-manager.inputs.nixpkgs.follows = "nixpkgs";
23  
24      stylix.url = "github:danth/stylix";
25      stylix.inputs.nixpkgs.follows = "nixpkgs";
26  
27      lazyvim.url = "github:pfassina/lazyvim-nix";
28  
29      nix-doom-emacs-unstraightened.url = "github:marienz/nix-doom-emacs-unstraightened";
30      nix-doom-emacs-unstraightened.inputs.nixpkgs.follows = "";
31  
32      nix-index-database.url = "github:nix-community/nix-index-database";
33      nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
34  
35      nixGL.url = "github:guibou/nixGL";
36      nixGL.inputs.nixpkgs.follows = "nixpkgs";
37  
38      hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
39      # hyprland-plugins.inputs.hyprland.follows = "nixpkgs";
40  
41      nix-on-droid.url = "github:nix-community/nix-on-droid/release-24.05";
42      nix-on-droid.inputs.nixpkgs.follows = "nixpkgs";
43      nix-on-droid.inputs.home-manager.follows = "home-manager";
44  
45      # use fork to allow disabling modules introduced by mkRemovedOptionModule and similar functions
46      # see PR nixos:nixpkgs#398456 (https://github.com/NixOS/nixpkgs/pull/398456)
47      # nixpkgs-nvmd-modules-with-keys.url = "github:nvmd/nixpkgs/modules-with-keys-25.05";
48      nixos-raspberrypi = {
49        url = "github:nvmd/nixos-raspberrypi/main";
50        # inputs.nixpkgs.follows = "nixpkgs-nvmd-modules-with-keys";
51      };
52  
53      # nix-dokploy.url = "github:kedom1337/nix-dokploy/kd/feat/compat";
54      nix-dokploy.url = ./nix-dokploy;
55      proxmox-nixos.url = "github:SaumonNet/proxmox-nixos";
56    };
57  
58    # nixos-unified.org/autowiring.html
59    outputs =
60      inputs:
61      let
62        flake = inputs.nixos-unified.lib.mkFlake {
63          inherit inputs;
64          root = ./.;
65        };
66      in
67      flake
68      // {
69        nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
70          home-manager-path = inputs.home-manager.outPath;
71          extraSpecialArgs = {
72            # rootPath = ./.;
73            inherit inputs;
74          };
75  
76          pkgs = import inputs.nixpkgs {
77            system = "aarch64-linux";
78            overlays = [
79              inputs.nix-on-droid.overlays.default
80            ];
81          };
82  
83          modules = [
84            ./modules/nixos/time.nix
85            ./configurations/nixos/nix-on-droid/terminal.nix
86            ./configurations/nixos/nix-on-droid/environment.nix
87            ./configurations/nixos/nix-on-droid/nix-on-droid.nix
88            ./configurations/nixos/nix-on-droid/home-manager.nix
89            ./configurations/nixos/nix-on-droid/android-integration.nix
90          ];
91        };
92      };
93  }