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}