{ den, inputs, ... }: {
  den.aspects.core.nixos = { pkgs, ... }:
  let
    pkgs-unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
  in {
    nixpkgs.config.allowUnfree = true;

    nix = {
      settings = {
        experimental-features = [ "nix-command" "flakes" ];
        substituters = [
          "https://cache.nixos.org"
          "https://niri.cachix.org"
          "https://nix-community.cachix.org"
          "https://claude-code.cachix.org"
        ];
        trusted-public-keys = [
          "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
          "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
          "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
          "claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk="
        ];
      };
      gc = {
        automatic = true;
        dates = "weekly";
        options = "--delete-older-than 7d";
      };
      optimise.automatic = true;
    };

    zramSwap =  {
      enable = true;
      algorithm = "zstd";
      memoryPercent = 100;
    };

    services.xserver.enable = false;

    environment.systemPackages = with pkgs; [
      curl
      wget
      pkgs-unstable.neovim
      btop
      ncdu
      unrar
      p7zip
      nvd
    ]; 

    networking.networkmanager.enable = true;
    time.timeZone = "America/Sao_Paulo";
    i18n.defaultLocale = "en_US.UTF-8";

    services.dbus.enable = true;
    programs.dconf.enable = true;

    environment.sessionVariables = {
      EDITOR = "nvim";
    };
  };
}
