Preventing loading remote projects in emacs-dashboard (prevent lagging)

🗓️Wed 28 May 2025 #project.el, #dashboard, #elisp, #emacs

Recently I've had a problem with emacs-dashboard.el. It lags massively when trying to load remote projects from project.el + recentf on startup.

Here's a fix (just exclude all remote projects from project.el):

;;; dashboard-hacks.el --- Emacs Dashboard Hacks -*- lexical-binding: t; -*-

(require 'project)
;; recentf-keep really accepts list or regexps/functions (predicates)
(setopt recentf-keep (list (lambda (x) (not (file-remote-p x)))))

(defun project-forget-remote-projects ()
 "Forget all remote projects. emacs-dashboard lags massively when trying to display remote projects via project.el"
 (interactive)
 (dolist (proj (project-known-project-roots))
  (unless (file-remote-p proj)
   (project-forget-project proj))))

(advice-add
 'project-forget-remote-projects
 :before
 'project-forget-zombie-projects)

(provide 'dashboard-hacks)