# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).

{ inputs, ... }:

{
  imports =
    [
      ../configuration/base.nix
      # Include the results of the hardware scan.
      ./hardware-configuration.nix
      inputs.disko.nixosModules.default
      ./disk-config.nix
      inputs.home-manager.nixosModules.default
      ../modules/laptop.nix
      ../modules/virtualisation.nix
      ../modules/gaming.nix
    ];

  networking.hostName = "tuxedo"; # Define your hostname.

  fileSystems."/mnt/HDD1" = {
    #device = "/dev/disk/by-uuid/35763dc3-c736-4714-ade7-40bf49ad50dd";
    fsType = "ext4";
    label = "HDD1";
    options = [
      # If you don't have this options attribute, it'll default to "defaults"
      # boot options for fstab. Search up fstab mount options you can use
      "users" # Allows any user to mount and unmount
      "nofail" # Prevent system from failing if this drive doesn't mount
      "exec" # Permit execution of binaries and other executable files
    ];
  };

  hardware.tuxedo-drivers.enable = true;
  programs.gpu-screen-recorder.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.worble = {
    initialPassword = "password";
    isNormalUser = true;
    extraGroups = [ "wheel" "gamemode" "podman" "cdrom" ]; # Enable ‘sudo’ for the user.
    linger = true;
  };

  home-manager = {
    useGlobalPkgs = true;
    extraSpecialArgs = { inherit inputs; };
    sharedModules = [ ];
    users = {
      "worble" = import ./home.nix;
    };
  };
}
