diff options
| author | Henry J. Webster <hwebs@hwebs.info> | 2026-10-17 11:51:07 -0500 |
|---|---|---|
| committer | Henry J. Webster <hwebs@hwebs.info> | 2026-10-17 11:51:07 -0500 |
| commit | a095f8dc7afac7100f475a981cdbc3173db57991 (patch) | |
| tree | cdfd694d11c8cc2a3e20d4653f27d830aed105f7 /emacs | |
| parent | 3047a1edc3fefddc48b2944cdf8423f07bd21c47 (diff) | |
emacs: move backup and auto-save dirs to $XDG_HOME_STATE
Diffstat (limited to 'emacs')
| -rw-r--r-- | emacs/.config/emacs/init.el | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/emacs/.config/emacs/init.el b/emacs/.config/emacs/init.el new file mode 100644 index 0000000..b616a02 --- /dev/null +++ b/emacs/.config/emacs/init.el @@ -0,0 +1,24 @@ +;;; init.el --- Emacs configuration -*- lexical-binding: t; -*- + +;; Keep recovery files out of projects and the configuration directory. +(let* ((xdg-state (getenv "XDG_STATE_HOME")) + (state-dir + (expand-file-name + "emacs/" + (if (and xdg-state (not (equal xdg-state ""))) + xdg-state + "~/.local/state/"))) + (backup-dir (expand-file-name "backups/" state-dir)) + (auto-save-dir (expand-file-name "auto-saves/" state-dir))) + ;; Recovery copies may contain sensitive data. + (dolist (directory (list state-dir backup-dir auto-save-dir)) + (make-directory directory t) + (set-file-modes directory #o700)) + + (setq backup-directory-alist + `(("." . ,backup-dir)) + auto-save-file-name-transforms + `((".*" ,auto-save-dir t)) + ;; Session records used by `recover-session'. + auto-save-list-file-prefix + (expand-file-name ".saves-" auto-save-dir))) |
