152 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   description = "Nix config entry point";
 | |
| 
 | |
|   inputs = {
 | |
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
 | |
|     nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | |
|     # Home manager
 | |
|     home-manager.url = "github:nix-community/home-manager/release-25.05";
 | |
|     home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | |
|     # Managing flatpak apps
 | |
|     nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
 | |
|     # hyprland, plugins and related utils
 | |
|     hyprland.url = "github:hyprwm/Hyprland";
 | |
|     stylix.url = "github:danth/stylix/release-25.05";
 | |
|     # zen browser
 | |
|     zen-browser.url = "github:0xc000022070/zen-browser-flake";
 | |
|     # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
 | |
|     # to have it up-to-date or simply don't specify the nixpkgs input
 | |
|     zen-browser.inputs.nixpkgs.follows = "nixpkgs";
 | |
| 
 | |
|     # power management
 | |
|     watt = {
 | |
|       url = "github:NotAShelf/watt/?ref=v0.3.2";
 | |
|       inputs.nixpkgs.follows = "nixpkgs";
 | |
|     };
 | |
| 
 | |
|     # secrets
 | |
|     sops-nix.url = "github:Mic92/sops-nix";
 | |
|     sops-nix.inputs.nixpkgs.follows = "nixpkgs";
 | |
| 
 | |
|     # quickshell
 | |
|     quickshell = {
 | |
|       url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
 | |
|       inputs.nixpkgs.follows = "nixpkgs";
 | |
|     };
 | |
|     nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions/fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb";
 | |
|   };
 | |
| 
 | |
|   outputs = {
 | |
|     self,
 | |
|     nixpkgs,
 | |
|     nixpkgs-unstable,
 | |
|     home-manager,
 | |
|     stylix,
 | |
|     sops-nix,
 | |
|     quickshell,
 | |
|     nix-vscode-extensions,
 | |
|     ...
 | |
|   } @ inputs:
 | |
|     let
 | |
|     in
 | |
|   {
 | |
| 
 | |
|     ## NixOS configurations are the main output of this flake
 | |
|     # HP Spectre x360 2018
 | |
|     nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem {
 | |
|       system = "x86_64-linux";
 | |
|       specialArgs = { inherit inputs; };
 | |
| 
 | |
|       modules = [
 | |
|         ./hosts/spectre-x360-2018
 | |
|         stylix.nixosModules.stylix
 | |
|         home-manager.nixosModules.home-manager
 | |
|           {
 | |
|             home-manager.useGlobalPkgs = true;
 | |
|             home-manager.useUserPackages = true;
 | |
|             home-manager.extraSpecialArgs = { inherit inputs; };
 | |
| 
 | |
|             home-manager.users.remy.imports = [
 | |
|               ./users/remy_spectre
 | |
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak
 | |
|             ];
 | |
|           }
 | |
|       ];
 | |
|     };
 | |
| 
 | |
| 
 | |
|     nixosConfigurations.nichts = nixpkgs.lib.nixosSystem {
 | |
|       system = "x86_64-linux";
 | |
|       specialArgs = { inherit inputs; };
 | |
| 
 | |
|       modules = [
 | |
|         ./hosts/mobile-usb
 | |
|         stylix.nixosModules.stylix
 | |
|         home-manager.nixosModules.home-manager
 | |
|           {
 | |
|             home-manager.useGlobalPkgs = true;
 | |
|             home-manager.useUserPackages = true;
 | |
|             home-manager.extraSpecialArgs = { inherit inputs; };
 | |
| 
 | |
|             home-manager.users.remy.imports = [
 | |
|               ./users/remy_usb
 | |
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak
 | |
|             ];
 | |
|           }
 | |
|       ];
 | |
|     };
 | |
| 
 | |
| 
 | |
|     nixosConfigurations.nyx = nixpkgs.lib.nixosSystem {
 | |
|       system = "x86_64-linux";
 | |
|       specialArgs = { inherit inputs; };
 | |
| 
 | |
|       modules = [
 | |
|         {
 | |
|           nixpkgs.overlays = [
 | |
|             inputs.nix-vscode-extensions.overlays.default
 | |
|           ];
 | |
|         }
 | |
|         ./hosts/yoga-7-pro
 | |
|         sops-nix.nixosModules.sops
 | |
|         stylix.nixosModules.stylix
 | |
|         home-manager.nixosModules.home-manager
 | |
|           {
 | |
|             home-manager.backupFileExtension = ".backup";
 | |
|             home-manager.useGlobalPkgs = true;
 | |
|             home-manager.useUserPackages = true;
 | |
|             home-manager.extraSpecialArgs = { inherit inputs; };
 | |
| 
 | |
|             home-manager.users.remy.imports = [
 | |
|               ./users/remy_yoga
 | |
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak
 | |
|             ];
 | |
|           }
 | |
|       ];
 | |
|     };
 | |
| 
 | |
|     # nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem {
 | |
|     #   system = "aarch64-linux";
 | |
|     #   modules = [
 | |
|     #     ./hosts/raspberry-pi/configuration.nix
 | |
|     #   ];
 | |
|     # };
 | |
| 
 | |
|     ## Home Manager configurations here?
 | |
| 
 | |
| 
 | |
|     ## Useful nix build tools
 | |
|     # iso builder TODO
 | |
|     nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem {
 | |
|       system = "x86_64-linux";
 | |
|       modules = [
 | |
|         "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
 | |
|         ({ lib, pkgs, ... }: {
 | |
|           boot.supportedFilesystems = [ "bcachefs" ];
 | |
|           boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest;
 | |
|         })
 | |
|       ];
 | |
|     };
 | |
|   };
 | |
| }
 |