| # This is your system's configuration file. |
| # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) |
| { |
| inputs, |
| lib, |
| config, |
| pkgs, |
| ... |
| }: { |
| # You can import other NixOS modules here |
| imports = [ |
| # If you want to use 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 = [ |
| # If you want to use 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 = let |
| flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; |
| in { |
| settings = { |
| # Enable flakes and new 'nix' command |
| experimental-features = "nix-command flakes"; |
| # Opinionated: disable global registry |
| flake-registry = ""; |
| # Workaround for https://github.com/NixOS/nix/issues/9574 |
| nix-path = config.nix.nixPath; |
| }; |
| # Opinionated: disable channels |
| channel.enable = false; |
| |
| # Opinionated: make flake registry and nix path match flake inputs |
| registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs; |
| nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; |
| }; |
| |
| # FIXME: Add the rest of your current configuration |
| |
| # TODO: Set your hostname |
| networking.hostName = "dodo-nx1"; |
| |
| # TODO: Configure your system-wide user settings (groups, etc), add more users as needed. |
| users.users = { |
| # FIXME: Replace with your username |
| gio = { |
| # 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 = "dodo"; |
| isNormalUser = true; |
| openssh.authorizedKeys.keys = [ |
| "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOa7FUrmXzdY3no8qNGUk7OPaRcIUi8G7MVbLlff9eB/ lekva@gl-mbp-m1-max.local" |
| ]; |
| # 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; |
| settings = { |
| # Opinionated: forbid root login through SSH. |
| PermitRootLogin = "no"; |
| # Opinionated: use keys only. |
| # Remove if you want to SSH using passwords |
| PasswordAuthentication = false; |
| }; |
| }; |
| |
| # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion |
| system.stateVersion = "24.05"; |
| } |