{ pkgs
, lib
, config
, ... }: with lib; let
  cfg = config.home.gnome;
in {
  imports = [ ./impl/nixos.nix ];

  options.home.gnome = {
    enable = mkEnableOption "GNOME desktop environment";
  };

  config = {
    users.homeModules = [
      # this module passes gnome configuration to home-manager
      { passthrough.gnome= cfg; }
    ];

    specialisation.nognome = with cfg; mkIf enable {
      configuration = {
        home.gnome.enable = mkForce false;
      };
    };
  };
}