{ config, lib, pkgs, ... }:

{
  imports = [ 
      ./system/hosts/nixos/nixos.nix
      ./system/lang.nix
      ./users/i3le.nix
      ./services/network.nix
      #./services/media.nix
      #./services/guix.nix
      ./services/containers.nix
      #./services/vpn.nix
      ./services/bluetooth.nix       
    ];
    
  # keep it up to date
  system.stateVersion = "24.05"; 
 
  nix = { 
   settings = {
        experimental-features = [ "nix-command" "flakes" ]; 
        auto-optimise-store = true;
   };
   gc = {
        automatic = true;
        dates = "weekly";
        options = "--delete-older-than 7d";
    };
  };

  nixpkgs.config.allowUnfree = true;
  documentation.nixos.enable = false;
  #services.openssh.enable = true;

     
   environment.systemPackages = with pkgs; [
     neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
     wget
     powertop
     btop
     htop
     tree
     curl
     usbutils   
   ];
 
   
  # programs.mtr.enable = true;
  # programs.gnupg.agent = {
  #   enable = true;
  #   enableSSHSupport = true;
  # };

  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;
  
# Nonflake    
  # Copy the NixOS configuration file and link it from the resulting system
  # (/run/current-system/configuration.nix). This is useful in case you
  # accidentally delete configuration.nix.
  # system.copySystemConfiguration = true;

}

