# NixOS Configuration Template # Path: results/configuration.nix.template # # This is a starting point for your new NixOS configuration. # Review and edit this file carefully. # You will use this file during the NixOS installation. { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. # Path to this file will be /mnt/etc/nixos/hardware-configuration.nix # after the installation script generates it. ./hardware-configuration.nix ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # --- # NETWORKING --- # --- networking.hostName = "nixos-desktop"; # Define your hostname. networking.networkmanager.enable = true; # networking.wireless.enable = true; # Uncomment for WiFi support. # Set your time zone. time.timeZone = "Australia/Sydney"; # CHANGE THIS to your time zone, e.g. "Europe/Berlin" # --- # USER ACCOUNTS --- # --- users.users.sam = { isNormalUser = true; description = "Sam"; extraGroups = [ "networkmanager" "wheel" "docker" ]; # "wheel" allows sudo packages = with pkgs; [ # You can install user-specific packages here, but it's often better # to manage them system-wide below unless you have multiple users. ]; }; # --- # SOFTWARE PACKAGES --- # --- # List packages you want to install system-wide. # Refer to docs/02_software_migration_plan.md environment.systemPackages = with pkgs; [ # --- # Essentials --- # --- git wget curl # --- # Desktop & GUI --- # --- firefox thunderbird libreoffice flameshot # --- # Terminal & CLI Tools --- # --- kitty neovim nushell btop eza bat fzf # --- # Development --- # --- gcc gnumake nodejs # Consider specifying a version, e.g., nodejs-20_x rustc cargo python3 ]; # --- # SERVICES & VIRTUALIZATION --- # --- # Enable the Docker daemon. virtualisation.docker.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 the following. #jack.enable = true; }; # Enable CUPS to print documents. services.printing.enable = true; # --- # DESKTOP ENVIRONMENT --- # --- # Enable the GNOME Desktop Environment. services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; # --- # DISK MOUNTS --- # --- # This is where we will mount your existing data drives. # The device paths (e.g., "/dev/disk/by-uuid/...") must be correct. # Use the output of `lsblk -f` on the live USB to get the right UUIDs. fileSystems."/mnt/ubuntu_storage_3TB" = { device = "/dev/disk/by-uuid/037a542c-6aa9-4b1f-ab2f-4b6922ab371f"; # This is sdd1 (ubuntu_storage_3) fsType = "ext4"; }; fileSystems."/mnt/windows-storage" = { # Renaming `/mnt/storage` to be clearer device = "/dev/disk/by-uuid/063E316A3E315441"; # This is sdb2 fsType = "ntfs-3g"; options = [ "rw" "uid=1000" "gid=100" "umask=007" ]; # Makes files user-writable }; # Add more entries here for other disks like sdc2 if needed. # Allow unfree packages nixpkgs.config.allowUnfree = true; # System state version. system.stateVersion = "24.05"; # Or whatever version you install. }