{ config, pkgs, ... }:
{
  imports =
    [
      ./hardware-configuration.nix

      ../../modules/home-manager.nix
      ../../modules/nur-and-unstable.nix
      ../../modules/unfree.nix
      ../../modules/base.nix
      ../../modules/base-efi-systemd.nix
      ../../modules/xdg.nix
      ../../modules/power-management.nix
      ../../modules/usb-mtp-ptp.nix
      ../../modules/ntfs.nix
      ../../modules/git.nix
      ../../modules/nitrokey-gpg-smartcard.nix
      ../../modules/ssh-client.nix
      ../../modules/ssh-server.nix
      ../../modules/lid-switch-handling.nix

      ../../modules/btrfs-scrub.nix
      ../../modules/btrfs-mount-options.nix

      #../../modules/headless.nix
      #
      #../../modules/kde.nix
      #../../modules/programs-kde.nix
      #
      ../../modules/gnome-base.nix
      # Not required as display scale is set 2.0 (multiple of 1).
      #../../modules/gnome-fractional-scaling.nix
      ../../modules/fwupd-gnome.nix
      ../../modules/programs-gnome.nix

      ../../modules/programs-base.nix
      ../../modules/programs.nix
      ../../modules/flatpak.nix
      ../../modules/rnote.nix
      ../../modules/ausweisapp.nix
      ../../modules/nextcloud-client.nix
      ../../modules/syncthing.nix
      ../../modules/signal-desktop.nix
      ../../modules/element-desktop.nix
      ../../modules/obsidian.nix
      ../../modules/vlc-dvd-blu-ray.nix
      ../../modules/firefox.nix
      ../../modules/tor-browser.nix
      #../../modules/tor.nix
      #../../modules/digikam-rawtherapee-hugin-gimp.nix
      ../../modules/freetube.nix
      ../../modules/print-and-scan.nix
      #../../modules/waydroid.nix
      ../../modules/uni-vpn.nix
      #../../modules/epa.nix

      ../../modules/autostart.nix

      ../../modules/jetbrains-ide.nix
      #../../modules/vscodium.nix
      #../../modules/android.nix
      #../../modules/pmbootstrap.nix

      #../../modules/boxes.nix
      #../../modules/virtualbox.nix
      ../../modules/docker.nix
      #../../modules/docker-pushrm.nix
    ];

  networking.hostName = "yodaTab";
  boot.initrd.luks.devices."luks-ba8b94d0-7f70-496a-ad87-eadc5e852aad".allowDiscards = true;
  boot.initrd.luks.devices."512gb".allowDiscards = true;
  yoda.btrfsFileSystems = ["/"];
  #yoda.btrfsMounts = yoda.btrfsFileSystems;
  fileSystems."/mnt/512gb".options = [ "noatime" "commit=60" ]; # Ext4

  # Fix touchpad/keyboard issue during boot.
  # TODO neither touch nor keyboard work
  # TODO try again with initrd.systemd.enable, see below. but disable Plymouth in that case
  #boot.initrd.unl0kr.enable = true;

  # TODO
  # Motivation behind bare bones systemd-based initrd: https://github.com/NixOS/nixpkgs/pull/164943
  #boot.initrd.systemd.enable = true;

  boot.kernelPackages = pkgs.linuxPackages_latest;

  # Most users should never change this value after the initial install, for any reason, even if you've upgraded your system to a new NixOS release.
  system.stateVersion = "23.05";
}