{ config, pkgs, ... }:
{
  boot = {
    kernelPackages = pkgs.linuxPackages_5_10;
    kernel.sysctl."vm.max_map_count" = 2147483642;

    initrd.systemd = {
      enable = true;
      services.root-reset = {
        description = "Reset root and snapshot last boot";
        wantedBy = [ "initrd.target" ];
        before = [ "sysroot.mount" ];
        after = [ "dev-${config.networking.hostName}-root.device" ];
        unitConfig.DefaultDependencies = "no";
        serviceConfig.Type = "oneshot";
        script = ''
          mkdir -p /mnt
          mount /dev/${config.networking.hostName}/root /mnt

          if [[ -e /mnt/prev ]]; then
            btrfs subvolume delete /mnt/prev
          fi

          btrfs subvolume snapshot /mnt/root /mnt/prev

          btrfs subvolume list -o /mnt/root | cut -f9 -d' ' | while read subvolume; do
            btrfs subvolume delete "/mnt/$subvolume"
          done

          btrfs subvolume delete /mnt/root
          btrfs subvolume create /mnt/root

          umount /mnt
        '';
      };
    };
  };
}