{ config, pkgs, ... }:

{
  imports =
    [ 
      ./hardware-configuration.nix
    ];

  # Bootloader.
  boot.loader.grub.enable = true;
  boot.loader.grub.device = "/dev/sda";
  boot.loader.grub.useOSProber = true;

  networking.hostName = "nixos-btw"; 
  # networking.wireless.enable = true;  

  # ---- NETWORKING ---- # 
  networking.networkmanager.enable = true;

  # Set your time zone.
  time.timeZone = "America/Los_Angeles"; 

  # ---- QTILE ---- #
  services.displayManager.ly.enable = true;

  services.xserver = {
    enable = true;
    autoRepeatDelay = 200;
    autoRepeatInterval = 35;
    windowManager.qtile.enable = true;
  };

  # ---- GNOME ---- #
  #services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;

  

  # Enable sound with pipewire.
  services.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    #jack.enable = true;
    };

    

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.ronin = {
    isNormalUser = true;
    description = "ronin";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
      tree
    ];
  };

  # Install firefox.
  programs.firefox.enable = true;
  programs.neovim.enable = true;
  
  # PACKAGES 
  nixpkgs.config.allowUnfree = true;
  environment.systemPackages = with pkgs; [
     bat
     btop
     ghostty
     ripgrep
     wget
  ];

  
  system.stateVersion = "25.05";

  nix.settings.experimental-features = [ "nix-command" "flakes" ];

}
