diff --git a/README.md b/README.md index c4f4763..4a3ff8a 100644 --- a/README.md +++ b/README.md @@ -425,7 +425,10 @@ To enable autosave, add the following to `~/.emacs.d/post-init.el`: ;; `recover-session' to restore unsaved changes. (setq auto-save-default t) +;; Trigger an auto-save after 300 keystrokes (setq auto-save-interval 300) + +;; Trigger an auto-save 30 seconds of idle time. (setq auto-save-timeout 30) ``` diff --git a/init.el b/init.el index b7c5ab5..acb73f4 100644 --- a/init.el +++ b/init.el @@ -229,7 +229,6 @@ ;; Enable auto-save to safeguard against crashes or data loss. The ;; `recover-file' or `recover-session' functions can be used to restore ;; auto-saved data. -(setq auto-save-default t) (setq auto-save-no-message t) (when noninteractive @@ -246,6 +245,20 @@ (setq tramp-auto-save-directory (expand-file-name "tramp-autosave/" user-emacs-directory)) +(setq auto-save-file-name-transforms + `(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" + ,(file-name-concat auto-save-list-file-prefix "tramp-\\2-") sha1) + ("\\`/\\([^/]+/\\)*\\([^/]+\\)\\'" + ,(file-name-concat auto-save-list-file-prefix "\\2-") sha1))) + +;; Ensure the directory for auto-save session logs exists with restricted +;; permissions. +(when auto-save-default + (let ((auto-save-dir (file-name-directory auto-save-list-file-prefix))) + (unless (file-exists-p auto-save-dir) + (with-file-modes #o700 + (make-directory auto-save-dir t))))) + ;; Auto save options (setq kill-buffer-delete-auto-save-files t)