-;;; -*- lexical-binding: t -*-
-
-(require 'recentf)
-
-(setq recentf-exclude (list
- "/\\.emacs\\.d/recentf$"
- "/\\.git/"))
-
-(setq recentf-max-saved-items 1000)
-
-(run-with-idle-timer 30 t #'my/recentf-periodic)
-
-(defvar my/recentf-list-prev nil)
-
-(defun my/recentf-periodic ()
- (when (my/recentf-has-changed)
- (my/with-inhibit-message #'recentf-cleanup)
- (when (equal recentf-list my/recentf-list-prev)
- (my/with-inhibit-message #'recentf-save-list)
- (setq my/recentf-list-prev recentf-list))))
-
-(defun my/recentf-has-changed ()
- (not (equal recentf-list my/recentf-list-prev)))
-
-(defun my/with-inhibit-message (function)
- (let ((old-inhibit-message inhibit-message))
- (setq inhibit-message t)
- (unwind-protect
- (funcall function)
- (setq inhibit-message old-inhibit-message))))
-
-(recentf-mode 1)