{ pkgs, inputs, lib, host, ... }:
{
  imports = ([
    inputs.sops-nix.nixosModules.sops
    ./system-modules/adb.nix
    ./system-modules/auto-mount.nix
    ./system-modules/hardware-configuration.nix
    ./system-modules/fuse.nix
    ./system-modules/games.nix
    ./system-modules/nvidia.nix 
    ./system-modules/users.nix
    ./system-modules/sound.nix
    ./system-modules/fonts.nix
    ./system-modules/boot.nix 
    ./system-modules/gc.nix
    ./system-modules/boot.nix
    ./system-modules/dm.nix
    ./system-modules/docker.nix
    ./system-modules/fcitx5.nix
    ./system-modules/fonts.nix
    ./system-modules/fuse.nix
    ./system-modules/gc.nix
    ./system-modules/gpg.nix
    ./system-modules/hardware-configuration.nix
    ./system-modules/health_reminder.nix
    ./system-modules/hsmw.nix
    ./system-modules/kanata.nix
    ./system-modules/kodi.nix
    ./system-modules/networking.nix
    ./system-modules/nixd.nix
    ./system-modules/nvidia.nix 
    ./system-modules/ollama.nix
    ./system-modules/qmk.nix
    ./system-modules/sops.nix
    ./system-modules/sound.nix
    ./system-modules/sshd.nix
    ./system-modules/syncthing.nix
    ./system-modules/users.nix
    ./system-modules/virtualisation.nix
    ./system-modules/ydotool.nix
  ]) ++ (if (host == "NxACE") then [ 
    ./system-modules/nx2site.nix
    ./system-modules/postgres.nix
    ./system-modules/nx2site/proxy.nix
    ./system-modules/nx2site/gitea.nix
    ./system-modules/nx2site/vaultwarden.nix
    ./system-modules/nx2site/paperless.nix
  ] else []);

  # Set your time zone.
  time.timeZone = "Europe/Berlin";

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";
  console.font = "Lat2-Terminus16";
  console.keyMap = "de";

  services.xserver = {
    enable = true;
    xkb = {
      layout = "de";
      options = "eurosign:e,caps:escape";
    };
    # lightdm in lightdm.nix
  };
  # Enable CUPS to print documents.
  services.printing.enable = true;

  # rtkit is optional but recommended
  security.rtkit.enable = true;

  # Enable touchpad support (enabled default in most desktopManager).
  services.libinput.enable = true;
  hardware.uinput.enable = true;

  hardware.bluetooth = {
    enable = true;
    powerOnBoot = true;  
    package = pkgs.bluez5-experimental;
    settings.Policy.AutoEnable = "true";
    settings.General.Enable = "Source,Sink,Media,Socket";
   };
  services.blueman.enable = true;

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; ([
    git
    git-crypt
    lazygit # home-manager module is bugged
    wget
    curlHTTP3
    zip
    unzip
    p7zip
    unar
    nano
    htop
    direnv
    openssl
    blueman
    dmidecode
    file
    parallel
  # ]) ++ (with pkgs-unstable; [
  # # sendme
  ]);

  environment.variables = {
    EDITOR = "hx";
    VISUAL = "hx";  
  };


  programs.hyprland = {
    # config is done with home-manager
    enable = true;
    xwayland.enable = true;
  };

  system.stateVersion = "24.11";

  nixpkgs.config.allowUnfree = true;

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

  programs.bash.shellInit = ''
    source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
  '';
}
