{
  config,
  lib,
  pkgs,
  namespace,
  ...
}:
let
  cfg = config.${namespace}.desktop.gnome;
in
{
  imports = [ ./options.nix ];

  config = lib.mkIf cfg.enable {
    home.packages = with pkgs; [
      apple-cursor
      colloid-icon-theme
      colloid-gtk-theme
      gnome-tweaks
      gnomeExtensions.allow-locked-remote-desktop
      gnomeExtensions.appindicator
      gnomeExtensions.arcmenu
      gnomeExtensions.bing-wallpaper-changer
      gnomeExtensions.dash-to-dock
      gnomeExtensions.dash-to-panel
      gnomeExtensions.gsconnect
      gnomeExtensions.random-wallpaper
      gnomeExtensions.tiling-assistant
      gnomeExtensions.user-themes
      gnomeExtensions.wikiart-wallpaper
      papirus-icon-theme
      pop-gtk-theme
    ];

    dconf = {
      enable = true;
      settings = {
        "org/gnome/desktop/interface".clock-format = "12h";
        "org/gnome/desktop/interface".color-scheme = "prefer-dark";
        "org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS";
        "org/gnome/desktop/interface".enable-hot-corners = false;
        "org/gnome/desktop/interface".font-antialiasing = "grayscale";
        "org/gnome/desktop/interface".font-hinting = "slight";
        "org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark";
        "org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark";
        "org/gnome/desktop/peripherals/mouse".accel-profile = "flat";
        "org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true;
        "org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
        "org/gnome/mutter".experimental-features = [
          "scale-monitor-framebuffer"
          "variable-refresh-rate"
        ];
        "org/gnome/tweaks".show-extensions-notice = false;
        "org/gnome/shell".enabled-extensions = [
          "allowlockedremotedesktop@kamens.us"
          "appindicatorsupport@rgcjonas.gmail.com"
          "user-theme@gnome-shell-extensions.gcampax.github.com"
          "tiling-assistant@leleat-on-github"
          "dash-to-dock@micxgx.gmail.com"
          "BingWallpaper@ineffable-gmail.com"
          "gsconnect@andyholmes.github.io"
        ];
        "org/gnome/shell/extensions/bingwallpaper".override-lockscreen-blur = true;
        "org/gnome/shell/extensions/bingwallpaper".random-mode-enabled = true;
        "org/gnome/shell/extensions/bingwallpaper".revert-to-current-image = false;
        "org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1;
        "org/gnome/shell/extensions/dash-to-panel".multi-monitors = false;
        "org/gnome/shell/extensions/gsconnect".id = "4db35bd2-0dcd-42a3-9f77-ef3e8bb83182";
        "org/gnome/shell/extensions/gsconnect".name = "matt-nixos";
        "org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark";
        "org/gtk/settings/file-chooser".clock-format = "12h";
      };
    };
  };
}
