Add config
This commit is contained in:
		
				commit
				
					
						4b0c887369
					
				
			
		
					 13 changed files with 597 additions and 0 deletions
				
			
		
							
								
								
									
										81
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,81 @@ | |||
| { | ||||
|   "nodes": { | ||||
|     "home-manager": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "utils": "utils" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1676892629, | ||||
|         "narHash": "sha256-rlvsqoSBO5dCwfnn7xvImYREidIPJaiFS3b54TZF4pU=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "72ce74d3eae78a6b31538ea7ebe0c1fcf4a10f7a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1682362401, | ||||
|         "narHash": "sha256-/UMUHtF2CyYNl4b60Z2y4wwTTdIWGKhj9H301EDcT9M=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "884ac294018409e0d1adc0cae185439a44bd6b0b", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs-unstable": { | ||||
|       "locked": { | ||||
|         "lastModified": 1676721149, | ||||
|         "narHash": "sha256-mN2EpTGxxVNnFZLoLWRwh6f7UWhXy4qE+wO2CZyrXps=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "5f4e07deb7c44f27d498f8df9c5f34750acf52d2", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "home-manager": "home-manager", | ||||
|         "nixpkgs": "nixpkgs", | ||||
|         "nixpkgs-unstable": "nixpkgs-unstable" | ||||
|       } | ||||
|     }, | ||||
|     "utils": { | ||||
|       "locked": { | ||||
|         "lastModified": 1667395993, | ||||
|         "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "root": "root", | ||||
|   "version": 7 | ||||
| } | ||||
							
								
								
									
										91
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,91 @@ | |||
| { | ||||
|   description = "Your new nix config"; | ||||
| 
 | ||||
|   inputs = { | ||||
|     # Nixpkgs | ||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||
|     # You can access packages and modules from different nixpkgs revs | ||||
|     # at the same time. Here's an working example: | ||||
|     nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||
|     # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. | ||||
| 
 | ||||
|     # Home manager | ||||
|     home-manager.url = "github:nix-community/home-manager"; | ||||
|     home-manager.inputs.nixpkgs.follows = "nixpkgs"; | ||||
| 
 | ||||
|     # TODO: Add any other flake you might need | ||||
|     # hardware.url = "github:nixos/nixos-hardware"; | ||||
| 
 | ||||
|     # Shameless plug: looking for a way to nixify your themes and make | ||||
|     # everything match nicely? Try nix-colors! | ||||
|     # nix-colors.url = "github:misterio77/nix-colors"; | ||||
|   }; | ||||
| 
 | ||||
|   outputs = { | ||||
|     self, | ||||
|     nixpkgs, | ||||
|     home-manager, | ||||
|     ... | ||||
|   } @ inputs: let | ||||
|     inherit (self) outputs; | ||||
|     forAllSystems = nixpkgs.lib.genAttrs [ | ||||
|       "aarch64-linux" | ||||
|       "i686-linux" | ||||
|       "x86_64-linux" | ||||
|       "aarch64-darwin" | ||||
|       "x86_64-darwin" | ||||
|     ]; | ||||
|   in rec { | ||||
|     # Your custom packages | ||||
|     # Acessible through 'nix build', 'nix shell', etc | ||||
|     packages = forAllSystems ( | ||||
|       system: let | ||||
|         pkgs = nixpkgs.legacyPackages.${system}; | ||||
|       in | ||||
|         import ./pkgs {inherit pkgs;} | ||||
|     ); | ||||
|     # Devshell for bootstrapping | ||||
|     # Acessible through 'nix develop' or 'nix-shell' (legacy) | ||||
|     devShells = forAllSystems ( | ||||
|       system: let | ||||
|         pkgs = nixpkgs.legacyPackages.${system}; | ||||
|       in | ||||
|         import ./shell.nix {inherit pkgs;} | ||||
|     ); | ||||
| 
 | ||||
|     # Your custom packages and modifications, exported as overlays | ||||
|     overlays = import ./overlays {inherit inputs;}; | ||||
|     # Reusable nixos modules you might want to export | ||||
|     # These are usually stuff you would upstream into nixpkgs | ||||
|     nixosModules = import ./modules/nixos; | ||||
|     # Reusable home-manager modules you might want to export | ||||
|     # These are usually stuff you would upstream into home-manager | ||||
|     homeManagerModules = import ./modules/home-manager; | ||||
| 
 | ||||
|     # NixOS configuration entrypoint | ||||
|     # Available through 'nixos-rebuild --flake .#your-hostname' | ||||
|     nixosConfigurations = { | ||||
|       # FIXME replace with your hostname | ||||
|       nixbox = nixpkgs.lib.nixosSystem { | ||||
|         specialArgs = {inherit inputs outputs;}; | ||||
|         modules = [ | ||||
|           # > Our main nixos configuration file < | ||||
|           ./nixos/hosts/nixbox/configuration.nix | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     # Standalone home-manager configuration entrypoint | ||||
|     # Available through 'home-manager --flake .#your-username@your-hostname' | ||||
|     homeConfigurations = { | ||||
|       "floppydisk@nixbox" = home-manager.lib.homeManagerConfiguration { | ||||
|         pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance | ||||
|         extraSpecialArgs = {inherit inputs outputs;}; | ||||
|         modules = [ | ||||
|           # > Our main home-manager configuration file < | ||||
|           ./home-manager/home.nix | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										73
									
								
								home-manager/home.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								home-manager/home.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | |||
| # This is your home-manager configuration file | ||||
| # Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) | ||||
| { | ||||
|   inputs, | ||||
|   outputs, | ||||
|   lib, | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: { | ||||
|   # You can import other home-manager modules here | ||||
|   imports = [ | ||||
|     # If you want to use modules your own flake exports (from modules/home-manager): | ||||
|     # outputs.homeManagerModules.example | ||||
| 
 | ||||
|     # Or modules exported from other flakes (such as nix-colors): | ||||
|     # inputs.nix-colors.homeManagerModules.default | ||||
| 
 | ||||
|     # You can also split up your configuration and import pieces of it here: | ||||
|     # ./nvim.nix | ||||
|   ]; | ||||
| 
 | ||||
|   nixpkgs = { | ||||
|     # You can add overlays here | ||||
|     overlays = [ | ||||
|       # Add overlays your own flake exports (from overlays and pkgs dir): | ||||
|       outputs.overlays.additions | ||||
|       outputs.overlays.modifications | ||||
|       outputs.overlays.unstable-packages | ||||
| 
 | ||||
|       # You can also add overlays exported from other flakes: | ||||
|       # neovim-nightly-overlay.overlays.default | ||||
| 
 | ||||
|       # Or define it inline, for example: | ||||
|       # (final: prev: { | ||||
|       #   hi = final.hello.overrideAttrs (oldAttrs: { | ||||
|       #     patches = [ ./change-hello-to-hi.patch ]; | ||||
|       #   }); | ||||
|       # }) | ||||
|     ]; | ||||
|     # Configure your nixpkgs instance | ||||
|     config = { | ||||
|       # Disable if you don't want unfree packages | ||||
|       allowUnfree = true; | ||||
|       # Workaround for https://github.com/nix-community/home-manager/issues/2942 | ||||
|       allowUnfreePredicate = _: true; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   home = { | ||||
|     username = "floppydisk"; | ||||
|     homeDirectory = "/home/floppydisk"; | ||||
|   }; | ||||
| 
 | ||||
|   # Add stuff for your user as you see fit: | ||||
|   programs.neovim.enable = true; | ||||
|   home.packages = with pkgs; [steam vscode _1password-gui _1password neofetch microsoft-edge webcord-vencord]; | ||||
| 
 | ||||
|   # Enable home-manager and git | ||||
|   programs.home-manager.enable = true; | ||||
| 
 | ||||
|   programs.git = { | ||||
|     enable = true; | ||||
|     userName = "Frankie B."; | ||||
|     userEmail = "git@diskfloppy.me"; | ||||
|   }; | ||||
| 
 | ||||
|   # Nicely reload system units when changing configs | ||||
|   systemd.user.startServices = "sd-switch"; | ||||
| 
 | ||||
|   # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion | ||||
|   home.stateVersion = "22.11"; | ||||
| } | ||||
							
								
								
									
										7
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| # Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module). | ||||
| # These should be stuff you would like to share with others, not your personal configurations. | ||||
| 
 | ||||
| { | ||||
|   # List your module files here | ||||
|   # my-module = import ./my-module.nix; | ||||
| } | ||||
							
								
								
									
										7
									
								
								modules/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| # Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module). | ||||
| # These should be stuff you would like to share with others, not your personal configurations. | ||||
| 
 | ||||
| { | ||||
|   # List your module files here | ||||
|   # my-module = import ./my-module.nix; | ||||
| } | ||||
							
								
								
									
										100
									
								
								nixos/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								nixos/configuration.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,100 @@ | |||
| # This is your system's configuration file. | ||||
| # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) | ||||
| 
 | ||||
| { inputs, outputs, lib, config, pkgs, ... }: { | ||||
|   # You can import other NixOS modules here | ||||
|   imports = [ | ||||
|     # If you want to use modules your own flake exports (from modules/nixos): | ||||
|     # outputs.nixosModules.example | ||||
| 
 | ||||
|     # Or modules from other flakes (such as nixos-hardware): | ||||
|     # inputs.hardware.nixosModules.common-cpu-amd | ||||
|     # inputs.hardware.nixosModules.common-ssd | ||||
| 
 | ||||
|     # You can also split up your configuration and import pieces of it here: | ||||
|     # ./users.nix | ||||
| 
 | ||||
|     # Import your generated (nixos-generate-config) hardware configuration | ||||
|     ./hardware-configuration.nix | ||||
|   ]; | ||||
| 
 | ||||
|   nixpkgs = { | ||||
|     # You can add overlays here | ||||
|     overlays = [ | ||||
|       # Add overlays your own flake exports (from overlays and pkgs dir): | ||||
|       outputs.overlays.additions | ||||
|       outputs.overlays.modifications | ||||
|       outputs.overlays.unstable-packages | ||||
| 
 | ||||
|       # You can also add overlays exported from other flakes: | ||||
|       # neovim-nightly-overlay.overlays.default | ||||
| 
 | ||||
|       # Or define it inline, for example: | ||||
|       # (final: prev: { | ||||
|       #   hi = final.hello.overrideAttrs (oldAttrs: { | ||||
|       #     patches = [ ./change-hello-to-hi.patch ]; | ||||
|       #   }); | ||||
|       # }) | ||||
|     ]; | ||||
|     # Configure your nixpkgs instance | ||||
|     config = { | ||||
|       # Disable if you don't want unfree packages | ||||
|       allowUnfree = true; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   nix = { | ||||
|     # This will add each flake input as a registry | ||||
|     # To make nix3 commands consistent with your flake | ||||
|     registry = lib.mapAttrs (_: value: { flake = value; }) inputs; | ||||
| 
 | ||||
|     # This will additionally add your inputs to the system's legacy channels | ||||
|     # Making legacy nix commands consistent as well, awesome! | ||||
|     nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; | ||||
| 
 | ||||
|     settings = { | ||||
|       # Enable flakes and new 'nix' command | ||||
|       experimental-features = "nix-command flakes"; | ||||
|       # Deduplicate and optimize nix store | ||||
|       auto-optimise-store = true; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   # FIXME: Add the rest of your current configuration | ||||
| 
 | ||||
|   # TODO: Set your hostname | ||||
|   networking.hostName = "your-hostname"; | ||||
| 
 | ||||
|   # TODO: This is just an example, be sure to use whatever bootloader you prefer | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
| 
 | ||||
|   # TODO: Configure your system-wide user settings (groups, etc), add more users as needed. | ||||
|   users.users = { | ||||
|     # FIXME: Replace with your username | ||||
|     your-username = { | ||||
|       # TODO: You can set an initial password for your user. | ||||
|       # If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install. | ||||
|       # Be sure to change it (using passwd) after rebooting! | ||||
|       initialPassword = "correcthorsebatterystaple"; | ||||
|       isNormalUser = true; | ||||
|       openssh.authorizedKeys.keys = [ | ||||
|         # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect | ||||
|       ]; | ||||
|       # TODO: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc) | ||||
|       extraGroups = [ "wheel" ]; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   # This setups a SSH server. Very important if you're setting up a headless system. | ||||
|   # Feel free to remove if you don't need it. | ||||
|   services.openssh = { | ||||
|     enable = true; | ||||
|     # Forbid root login through SSH. | ||||
|     permitRootLogin = "no"; | ||||
|     # Use keys only. Remove if you want to SSH using password (not recommended) | ||||
|     passwordAuthentication = false; | ||||
|   }; | ||||
| 
 | ||||
|   # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion | ||||
|   system.stateVersion = "22.11"; | ||||
| } | ||||
							
								
								
									
										10
									
								
								nixos/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								nixos/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| # This is just an example, you should generate yours with nixos-generate-config and put it in here. | ||||
| { | ||||
|   fileSystems."/" = { | ||||
|     device = "/dev/sda1"; | ||||
|     fsType = "ext4"; | ||||
|   }; | ||||
| 
 | ||||
|   # Set your system kind (needed for flakes) | ||||
|   nixpkgs.hostPlatform = "x86_64-linux"; | ||||
| } | ||||
							
								
								
									
										140
									
								
								nixos/hosts/nixbox/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								nixos/hosts/nixbox/configuration.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,140 @@ | |||
| # Edit this configuration file to define what should be installed on | ||||
| # your system.  Help is available in the configuration.nix(5) man page | ||||
| # and in the NixOS manual (accessible by running ‘nixos-help’). | ||||
| { | ||||
|   config, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: { | ||||
|   imports = [ | ||||
|     # Include the results of the hardware scan. | ||||
|     ./hardware-configuration.nix | ||||
|   ]; | ||||
| 
 | ||||
|   # Bootloader. | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
|   boot.loader.efi.efiSysMountPoint = "/boot/efi"; | ||||
| 
 | ||||
|   networking.hostName = "nixbox"; # Define your hostname. | ||||
|   # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. | ||||
| 
 | ||||
|   # Configure network proxy if necessary | ||||
|   # networking.proxy.default = "http://user:password@proxy:port/"; | ||||
|   # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | ||||
| 
 | ||||
|   # Enable networking | ||||
|   networking.networkmanager.enable = true; | ||||
| 
 | ||||
|   # Set your time zone. | ||||
|   time.timeZone = "Europe/London"; | ||||
| 
 | ||||
|   # Select internationalisation properties. | ||||
|   i18n.defaultLocale = "en_GB.UTF-8"; | ||||
| 
 | ||||
|   i18n.extraLocaleSettings = { | ||||
|     LC_ADDRESS = "en_GB.UTF-8"; | ||||
|     LC_IDENTIFICATION = "en_GB.UTF-8"; | ||||
|     LC_MEASUREMENT = "en_GB.UTF-8"; | ||||
|     LC_MONETARY = "en_GB.UTF-8"; | ||||
|     LC_NAME = "en_GB.UTF-8"; | ||||
|     LC_NUMERIC = "en_GB.UTF-8"; | ||||
|     LC_PAPER = "en_GB.UTF-8"; | ||||
|     LC_TELEPHONE = "en_GB.UTF-8"; | ||||
|     LC_TIME = "en_GB.UTF-8"; | ||||
|   }; | ||||
| 
 | ||||
|   # Enable the X11 windowing system. | ||||
|   services.xserver.enable = true; | ||||
| 
 | ||||
|   # Enable the KDE Plasma Desktop Environment. | ||||
|   services.xserver.displayManager.sddm.enable = true; | ||||
|   services.xserver.desktopManager.plasma5.enable = true; | ||||
| 
 | ||||
|   # Configure keymap in X11 | ||||
|   services.xserver = { | ||||
|     layout = "us"; | ||||
|     xkbVariant = ""; | ||||
|   }; | ||||
| 
 | ||||
|   # Enable experimental features | ||||
|   nix.settings.extra-experimental-features = ["flakes" "nix-command"]; | ||||
| 
 | ||||
|   # Enable CUPS to print documents. | ||||
|   services.printing.enable = true; | ||||
| 
 | ||||
|   # Enable sound with pipewire. | ||||
|   sound.enable = true; | ||||
|   hardware.pulseaudio.enable = false; | ||||
|   security.rtkit.enable = true; | ||||
|   services.pipewire = { | ||||
|     enable = true; | ||||
|     alsa.enable = true; | ||||
|     alsa.support32Bit = true; | ||||
|     pulse.enable = true; | ||||
|     # If you want to use JACK applications, uncomment this | ||||
|     #jack.enable = true; | ||||
| 
 | ||||
|     # use the example session manager (no others are packaged yet so this is enabled by default, | ||||
|     # no need to redefine it in your config for now) | ||||
|     #media-session.enable = true; | ||||
|   }; | ||||
| 
 | ||||
|   services.xserver.videoDrivers = ["nvidia" "intel"]; | ||||
| 
 | ||||
|   # Enable touchpad support (enabled default in most desktopManager). | ||||
|   # services.xserver.libinput.enable = true; | ||||
| 
 | ||||
|   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||
|   users.users.floppydisk = { | ||||
|     isNormalUser = true; | ||||
|     description = "Frankie B."; | ||||
|     extraGroups = ["networkmanager" "wheel"]; | ||||
|     packages = with pkgs; [ | ||||
|       firefox | ||||
|       kate | ||||
|       #  thunderbird | ||||
|     ]; | ||||
|     initialPassword = "changeme"; | ||||
|   }; | ||||
| 
 | ||||
|   # Allow unfree packages | ||||
|   nixpkgs.config.allowUnfree = true; | ||||
| 
 | ||||
|   # List packages installed in system profile. To search, run: | ||||
|   # $ nix search wget | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | ||||
|     wget | ||||
|     git | ||||
|     gnupg | ||||
|     pinentry | ||||
|   ]; | ||||
| 
 | ||||
|   # Some programs need SUID wrappers, can be configured further or are | ||||
|   # started in user sessions. | ||||
|   # programs.mtr.enable = true; | ||||
|   # programs.gnupg.agent = { | ||||
|   #   enable = true; | ||||
|   #   enableSSHSupport = true; | ||||
|   # }; | ||||
| 
 | ||||
|   # List services that you want to enable: | ||||
| 
 | ||||
|   # Enable the OpenSSH daemon. | ||||
|   services.openssh.enable = true; | ||||
| 
 | ||||
|   # Open ports in the firewall. | ||||
|   # networking.firewall.allowedTCPPorts = [ ... ]; | ||||
|   # networking.firewall.allowedUDPPorts = [ ... ]; | ||||
|   # Or disable the firewall altogether. | ||||
|   networking.firewall.enable = false; | ||||
| 
 | ||||
|   # This value determines the NixOS release from which the default | ||||
|   # settings for stateful data, like file locations and database versions | ||||
|   # on your system were taken. It‘s perfectly fine and recommended to leave | ||||
|   # this value at the release version of the first install of this system. | ||||
|   # Before changing this value read the documentation for this option | ||||
|   # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). | ||||
|   system.stateVersion = "22.11"; # Did you read the comment? | ||||
| } | ||||
							
								
								
									
										40
									
								
								nixos/hosts/nixbox/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								nixos/hosts/nixbox/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| # Do not modify this file!  It was generated by ‘nixos-generate-config’ | ||||
| # and may be overwritten by future invocations.  Please make changes | ||||
| # to /etc/nixos/configuration.nix instead. | ||||
| { config, lib, pkgs, modulesPath, ... }: | ||||
| 
 | ||||
| { | ||||
|   imports = | ||||
|     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||
|     ]; | ||||
| 
 | ||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; | ||||
|   boot.initrd.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-intel" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
| 
 | ||||
|   fileSystems."/" = | ||||
|     { device = "/dev/disk/by-uuid/c694a72f-2faa-49f3-813f-b9b552143088"; | ||||
|       fsType = "ext4"; | ||||
|     }; | ||||
| 
 | ||||
|   fileSystems."/boot/efi" = | ||||
|     { device = "/dev/disk/by-uuid/BA8E-DAAA"; | ||||
|       fsType = "vfat"; | ||||
|     }; | ||||
| 
 | ||||
|   swapDevices = | ||||
|     [ { device = "/dev/disk/by-uuid/f30ab1ac-66a5-4389-b4fe-a52f53255ec6"; } | ||||
|     ]; | ||||
| 
 | ||||
|   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||
|   # (the default) this is the recommended approach. When using systemd-networkd it's | ||||
|   # still possible to use this option, but it's recommended to use it in conjunction | ||||
|   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||
|   networking.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; | ||||
| 
 | ||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||
|   hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||
| } | ||||
							
								
								
									
										8
									
								
								nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| # A nixpkgs instance that is grabbed from the pinned nixpkgs commit in the lock file | ||||
| # This is useful to avoid using channels when using legacy nix commands | ||||
| let lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; | ||||
| in | ||||
| import (fetchTarball { | ||||
|   url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz"; | ||||
|   sha256 = lock.narHash; | ||||
| }) | ||||
							
								
								
									
										24
									
								
								overlays/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								overlays/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| # This file defines overlays | ||||
| { inputs, ... }: | ||||
| { | ||||
|   # This one brings our custom packages from the 'pkgs' directory | ||||
|   additions = final: _prev: import ../pkgs { pkgs = final; }; | ||||
| 
 | ||||
|   # This one contains whatever you want to overlay | ||||
|   # You can change versions, add patches, set compilation flags, anything really. | ||||
|   # https://nixos.wiki/wiki/Overlays | ||||
|   modifications = final: prev: { | ||||
|     # example = prev.example.overrideAttrs (oldAttrs: rec { | ||||
|     # ... | ||||
|     # }); | ||||
|   }; | ||||
| 
 | ||||
|   # When applied, the unstable nixpkgs set (declared in the flake inputs) will | ||||
|   # be accessible through 'pkgs.unstable' | ||||
|   unstable-packages = final: _prev: { | ||||
|     unstable = import inputs.nixpkgs-unstable { | ||||
|       system = final.system; | ||||
|       config.allowUnfree = true; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										6
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # Custom packages, that can be defined similarly to ones from nixpkgs | ||||
| # You can build them using 'nix build .#example' or (legacy) 'nix-build -A example' | ||||
| 
 | ||||
| { pkgs ? (import ../nixpkgs.nix) { } }: { | ||||
|   # example = pkgs.callPackage ./example { }; | ||||
| } | ||||
							
								
								
									
										10
									
								
								shell.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								shell.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| # Shell for bootstrapping flake-enabled nix and home-manager | ||||
| # You can enter it through 'nix develop' or (legacy) 'nix-shell' | ||||
| 
 | ||||
| { pkgs ? (import ./nixpkgs.nix) { } }: { | ||||
|   default = pkgs.mkShell { | ||||
|     # Enable experimental features without having to specify the argument | ||||
|     NIX_CONFIG = "experimental-features = nix-command flakes"; | ||||
|     nativeBuildInputs = with pkgs; [ nix home-manager git ]; | ||||
|   }; | ||||
| } | ||||
		Reference in a new issue
	
	 Frankie B
				Frankie B