{ pkgs
, lib
, config
, ... }: with lib; let
  cfg = config.home.gnome;
in mkIf cfg.enable {
  global.flatpak.enable = mkDefault true;
  home.catppuccin.enable = mkDefault false;
  catppuccin.enable = false;
  programs.regreet.enable = false;
  services.xserver.enable = true;
  services.xserver.displayManager.startx.enable = false;
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;
  services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
  xdg.portal.configPackages = with pkgs; [ gnome.gnome-session ];
  hardware.pulseaudio.enable = false;

  environment.gnome.excludePackages = (with pkgs; [
    snapshot
    gnome-tour
  ] ++ optionals config.global.flatpak.enable [
    baobab
    simple-scan
    evince
    file-roller
    geary
    loupe
    seahorse
    totem
    epiphany
    gnome-calculator
    gnome-calendar
    gnome-connections
    gnome-font-viewer
    gnome-text-editor
  ]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [
    gnome-characters
    gnome-clocks
    gnome-contacts
    gnome-logs
    gnome-maps
    gnome-music
    gnome-weather
  ]);

  users.home.persist.directories = [ ".config/dconf" ];
  environment.persistence."/nix/persist/fhs".directories = [ ];
}