{
  pkgs,
  outputs,
  ...
}:
let
  common = import ./common.nix;
in
{
  imports = [ ./modules ];

  nixpkgs.overlays = [ outputs.overlays.unstable-packages ];

  # Bootloader.
  boot.loader = {
    systemd-boot.enable = true;
    efi.canTouchEfiVariables = true;
  };

  # Define a user account. Don't forget to set a password with 'passwd'.
  users.users.${common.username} = {
    isNormalUser = true;
    description = common.username;
    extraGroups = [
      "networkmanager"
      "wheel"
    ];
  };

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

  environment.sessionVariables = {
    # Tells Electron apps to use Wayland
    NIXOS_OZONE_WL = "1";
  };

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    wget
    xdg-utils
    xdg-desktop-portal
    xdg-desktop-portal-gtk
    protonmail-desktop
    stremio
    fastfetch
    freetube
    nextcloud-client
    discord
    nix-prefetch-github # Cmd to get rev and hash from GitHub
    gimp
    vlc
    fortune
    cowsay
  ];

  nix.settings.experimental-features = [
    "nix-command"
    "flakes"
  ];

  programs.kdeconnect.enable = true;

  services = {
    flatpak.enable = true;
    xserver.enable = true;
  };

  system.stateVersion = common.system.version;
}
