{
  config,
  lib,
  pkgs,
  ...
}: {
  imports = [./global.nix ./x11.nix ./wayland.nix];

  services = {
    xserver = {
      desktopManager.gnome = {
        enable = true;
      };
      libinput.enable = true;
      modules = [pkgs.xf86_input_wacom];
      wacom.enable = true;
    };
    udev.packages = with pkgs; [
      gnome.gnome-settings-daemon
    ];
  };

  environment = {
    systemPackages = with pkgs; [
      # System-Wide Packages
      gnome.adwaita-icon-theme
      gnome.dconf-editor
      gnome.gnome-tweaks
      gnomeExtensions.kimpanel
      gnomeExtensions.vitals
      gnomeExtensions.tray-icons-reloaded
    ];
    gnome.excludePackages =
      (with pkgs; [
        # Ignored Packages
        gnome-tour
      ])
      ++ (with pkgs.gnome; [
        atomix
        epiphany
        geary
        gedit
        gnome-characters
        gnome-contacts
        gnome-initial-setup
        hitori
        iagno
        tali
      ]);
  };
}