{ lib, config, pkgs, ... }: {
  imports =
    [ 
      # Desktop Environments
      ./desktops/common.nix
      # ./desktops/gnome.nix 
      ./desktops/hyprland.nix

      # Services
      ./services/openssh.nix  
      ./services/promtail.nix 
      ./services/fail2ban.nix 
      ./services/telegraf.nix 

      # Modules
      ./modules/nixos.nix       # General NixOS items.  Flake enablement, etc
      ./modules/secureboot.nix  # Secureboot Configs
      ./modules/fonts.nix       # Font Configs
      ./modules/networking.nix  # Initial Networking configs
    ];

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";

  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_US.UTF-8";
    LC_IDENTIFICATION = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_NAME = "en_US.UTF-8";
    LC_NUMERIC = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_TELEPHONE = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
  };

  # Define a user account.
  users.users.albert = {
    isNormalUser = true;
    description = "Albert J. Copeland";
    extraGroups = [ "networkmanager" "wheel" ];
    hashedPassword = "$y$j9T$wKLsIWaA4Gf63RvjedwLJ0$EHKL6BBJV0CAxEKcHHjaBqW085KJ/MGvmbyWzmcWOy6";
  };

  # List packages installed in system profile
  environment.systemPackages = with pkgs; [
    # Secureboot
    sbctl

    # Bash powerline
    powerline-go
    wget
    killall
    neovim
    git
    curl
    htop
    btop
    iftop
    nload
    iotop
    glxinfo
    tailscale
    neofetch
    gnupg
    fail2ban
  ];

  # Enable tailscale
  services = {
    tailscale.enable = true;
  };

  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It‘s perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  # system.stateVersion = "23.05"; # Did you read the comment?
  system.stateVersion = "unstable";
}