{
  lib,
  pkgs,
  config,
  osConfig,
  ...
}: {
  options.programs.jetbrains.idea-community = {
    enable = lib.mkEnableOption "enable idea-community";
  };

  config = lib.mkIf config.programs.jetbrains.idea-community.enable (lib.mkMerge [
    {
      home.packages = with pkgs; [
        jetbrains.idea-community
      ];
    }
    (
      lib.mkIf osConfig.host.impermanence.enable {
        home.persistence."/persist${config.home.homeDirectory}" = {
          directories = [
            # configuration
            "${config.xdg.configHome}/JetBrains/"
            # plugins
            "${config.xdg.dataHome}/JetBrains/"
            # System and Logs
            "${config.xdg.cacheHome}/JetBrains/"
          ];
        };
      }
    )
  ]);
}