{ lib, pkgs, ... }:

{

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


  services = {
    getty.autologinUser = "swarsel";
    greetd.settings.initial_session.user = "swarsel";
  };

  hardware.bluetooth.enable = true;

  # Bootloader
  boot = {
    loader.systemd-boot.enable = lib.mkForce false;
    lanzaboote = {
      enable = true;
      pkiBundle = "/etc/secureboot";
    };
    loader.efi.canTouchEfiVariables = true;
    # use bootspec instead of lzbt for secure boot. This is not a generally needed setting
    bootspec.enable = true;
    # kernelPackages = pkgs.linuxPackages_latest;
  };

  networking = {
    hostName = "threed";
    enableIPv6 = false;
    firewall.enable = false;
  };

  stylix.image = ../../wallpaper/surfacewp.png;

  enable = true;
  base16Scheme = ../../../wallpaper/swarsel.yaml;
  # base16Scheme = "${pkgs.base16-schemes}/share/themes/shapeshifter.yaml";
  polarity = "dark";
  opacity.popups = 0.5;
  cursor = {
    package = pkgs.capitaine-cursors;
    name = "capitaine-cursors";
    size = 16;
  };
  fonts = {
    sizes = {
      terminal = 10;
      applications = 11;
    };
    serif = {
      # package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
      package = pkgs.cantarell-fonts;
      # package = pkgs.montserrat;
      name = "Cantarell";
      # name = "FiraCode Nerd Font Propo";
      # name = "Montserrat";
    };

    sansSerif = {
      # package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
      package = pkgs.cantarell-fonts;
      # package = pkgs.montserrat;
      name = "Cantarell";
      # name = "FiraCode Nerd Font Propo";
      # name = "Montserrat";
    };

    monospace = {
      package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
      name = "FiraCode Nerd Font Mono";
    };

    emoji = {
      package = pkgs.noto-fonts-emoji;
      name = "Noto Color Emoji";
    };
  };


  users.users.swarsel = {
    isNormalUser = true;
    description = "Leon S";
    extraGroups = [ "networkmanager" "wheel" "lp" "audio" "video" ];
    packages = with pkgs; [ ];
  };

  environment.systemPackages = with pkgs; [
  ];

  system.stateVersion = "23.05";

}
