# 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, systemName, ... }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot.initrd.availableKernelModules = [ ] ++ (lib.optionals (systemName == "pc") [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ]) ++ (lib.optionals (systemName == "laptop") [ "vmd" "xhci_pci" "nvme" "usb_storage" "sd_mod" ]); boot.initrd.kernelModules = [ ]; boot.kernelModules = [ ] ++ (lib.optionals (systemName == "pc") [ "kvm-amd" ]) ++ (lib.optionals (systemName == "laptop") [ "kvm-intel" ]); boot.extraModulePackages = [ ]; fileSystems."/" = lib.mkMerge [ (lib.mkIf (systemName == "pc") { device = "/dev/disk/by-uuid/fdcbb840-4b35-4023-a048-599b0c5161d6"; fsType = "btrfs"; }) (lib.mkIf (systemName == "laptop") { device = "/dev/disk/by-uuid/6aa7c67d-a0a5-4928-b16b-9c7991fee7ab"; fsType = "ext4"; }) ]; fileSystems."/boot" = lib.mkMerge [ (lib.mkIf (systemName == "pc") { device = "/dev/disk/by-uuid/E1B6-9089"; fsType = "vfat"; }) (lib.mkIf (systemName == "laptop") { device = "/dev/disk/by-uuid/FF4B-819D"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }) ]; fileSystems."/home" = lib.mkMerge [ (lib.mkIf (systemName == "pc") { device = "/dev/disk/by-uuid/d226a8ed-10eb-452e-9284-1ff994a7f179"; fsType = "btrfs"; }) ]; fileSystems."/server" = lib.mkIf (systemName == "pc") { # or remove the mkIf if you want it on both device = "//192.168.1.8/mrfluffy"; # adjust the share name if it’s not the home share fsType = "cifs"; options = let # Separate credentials from the Nix store (very important for security) credFile = "/etc/nixos/smb-credentials-mrfluffy"; in [ # Basic recommended options "credentials=${credFile}" "gid=users" # make files belong to the "users" group (or your preferred group) "uid=1000" # replace with your user’s UID, or use "uid=${config.users.users.yourname.uid}" "file_mode=0664" "dir_mode=0775" "nofail" # ← this makes the mount OPTIONAL (boot continues if unreachable) "noauto" # don’t mount automatically at boot (optional, combine with x-systemd.automount) "x-systemd.automount" # creates a systemd automount unit → mounts on first access "x-systemd.mount-timeout=15" # don’t wait forever "vers=3.0" # force SMB3 if the server supports it (recommended) # "iocharset=utf8" # usually not needed with modern servers # "cache=loose" # improves performance for some workloads ]; }; swapDevices = [ ] ++ (lib.optionals (systemName == "pc") [ { device = "/dev/disk/by-uuid/ccf41b96-c45f-47e0-8541-cd865f5d2ec6"; } ]) ++ (lib.optionals (systemName == "laptop") [ { device = "/dev/disk/by-uuid/b416c3bd-861b-4b0c-aa84-6962b2e6a47d"; } ]); # 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..useDHCP`. networking.useDHCP = lib.mkDefault true; # networking.interfaces.enp6s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp4s0f0u8.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware = lib.mkMerge [ (lib.mkIf (systemName == "pc") { cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }) (lib.mkIf (systemName == "laptop") { cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }) ]; }