{ config, master, ... }: {
  # Use "master" instead of "pkgs" to get the latest packages, defined in "flake.nix"
  services.xserver = with master.pkgs; {
    # https://nixos.org/manual/nixos/stable/index.html#chap-gnome
    # Enable the GNOME Desktop Environment.
    displayManager.gdm.enable = true;
    desktopManager.gnome.enable = true;
  };

  # Set Gnome settings:
  services.gnome = { 
    games.enable = false; 
    core-utilities.enable = true;
  };

  # https://nixos.wiki/wiki/GNOME
  # Remove unwanted packages
  environment.gnome.excludePackages = (with master.pkgs; [
    gnome.cheese
    gnome.gnome-music
    gnome.epiphany
    gnome.geary
    gnome.totem
    gnome.gnome-characters
    gnome-tour
    gnome-photos
    gnome.yelp
    gnome.gnome-font-viewer
    gnome-connections
    gnome.gnome-contacts
    gnome.gnome-logs
    gnome.gnome-maps
    gnome.simple-scan
  ]);

  environment.systemPackages = with master.pkgs; [
    # Gnome Extensions
    gnomeExtensions.tiling-assistant
    gnomeExtensions.dash-to-dock
    gnomeExtensions.blur-my-shell
    gnomeExtensions.vitals
    gnomeExtensions.user-themes
    gnomeExtensions.caffeine
    # gnomeExtensions.hibernate-status-button
    gnomeExtensions.night-theme-switcher

    # Gnome relevant packages
    gnome3.gnome-tweaks
    papirus-icon-theme
  ];

  imports = [ 
    # Gnome Themes
    ./gnome/themes/gruvbox.nix
    ./gnome/themes/tokyo-night.nix
    ./gnome/themes/nordic.nix
    ./gnome/themes/vimix.nix
    ./gnome/themes/fluent.nix
   ];
  # Idea... Move these to a separate file and tie it into dconf
  # sections that load the theme automatically when I want it.
}