From 2e6dd89003fbcdd3c286c6edc6620dbd3357a26b Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Mon, 25 Mar 2019 17:16:29 +0000 Subject: [PATCH] Store all temporary stuff in a specific cache folder Instead of using effectively TMPDIR on the machine, let's use a `cache` folder in the root of the .emacs.d directory. --- .gitignore | 1 + core/siren-editor.el | 27 ++++++++++++++-------- core/siren-init.el | 8 +++---- modules/editor/siren-ido.el | 3 +-- modules/editor/siren-smex.el | 2 +- modules/editor/siren-undo-tree.el | 3 ++- modules/navigation/siren-helm-ag.el | 2 ++ modules/projects/siren-project-explorer.el | 2 +- modules/projects/siren-projectile.el | 5 ++-- modules/version-control/siren-magit.el | 7 ++++++ 10 files changed, 39 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 9dd2b5f..fef41c9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .mc-lists.el ac-comphist.dat auto-save-list/* +cache/* el-get/* elpa/* forge-database.sqlite diff --git a/core/siren-editor.el b/core/siren-editor.el index 248e268..d7c9874 100644 --- a/core/siren-editor.el +++ b/core/siren-editor.el @@ -28,7 +28,7 @@ (delete-selection-mode t) ;; Save place in files -(setq save-place-file (expand-file-name "saveplace" siren-savefile-dir)) +(setq save-place-file (expand-file-name "saveplace" siren-cache-dir)) (save-place-mode 1) ;; Electric behavior @@ -44,11 +44,20 @@ (cons '(cursor-type . bar) (copy-alist default-frame-alist)))) (blink-cursor-mode -1)) -;; store all backup and autosave files in the tmp dir -(setq backup-directory-alist - `((".*" . ,temporary-file-directory))) -(setq auto-save-file-name-transforms - `((".*" ,temporary-file-directory t))) +;; Backup files +(setq backup-by-copying t + delete-old-versions t + kept-new-versions 10 + kept-old-versions 0 + vc-make-backup-files t + version-control t + backup-directory-alist + `((".*" . ,(expand-file-name "backup" siren-cache-dir)))) + +;; Auto-save files +(setq auto-save-interval 20 + auto-save-file-name-transforms + `((".*" ,(expand-file-name "autosave" siren-cache-dir) t))) ;; smart tab behavior - indent or complete (setq tab-always-indent 'complete) @@ -84,12 +93,12 @@ ;; save every minute savehist-autosave-interval 60 ;; keep the home clean - savehist-file (expand-file-name "savehist" siren-savefile-dir)) + savehist-file (expand-file-name "savehist" siren-cache-dir)) (savehist-mode +1) ;; Recentf (require 'recentf) -(setq recentf-save-file (expand-file-name "recentf" siren-savefile-dir) +(setq recentf-save-file (expand-file-name "recentf" siren-cache-dir) recentf-max-saved-items 5000 recentf-max-menu-items 1000 ;; disable recentf-cleanup on Emacs start, because it can cause @@ -102,7 +111,7 @@ (let ((file-dir (file-truename (file-name-directory file)))) (-any-p (lambda (dir) (string-prefix-p dir file-dir)) - (mapcar 'file-truename (list siren-savefile-dir package-user-dir))))) + (mapcar 'file-truename (list siren-cache-dir package-user-dir))))) (add-to-list 'recentf-exclude 'siren-recentf-exclude-p) diff --git a/core/siren-init.el b/core/siren-init.el index 8e491ec..6c816df 100644 --- a/core/siren-init.el +++ b/core/siren-init.el @@ -25,10 +25,10 @@ (setq siren-dir (expand-file-name ".." siren-core-dir)) (add-to-list 'load-path siren-core-dir) -;; Configure savefile-dir -(setq siren-savefile-dir (expand-file-name "savefile" siren-dir)) -(unless (file-exists-p siren-savefile-dir) - (make-directory siren-savefile-dir)) +;; Configure siren-cache-dir +(setq siren-cache-dir (expand-file-name "cache" siren-dir)) +(unless (file-exists-p siren-cache-dir) + (make-directory siren-cache-dir)) ;; Core stuff (require 'siren-custom) diff --git a/modules/editor/siren-ido.el b/modules/editor/siren-ido.el index 8a1194f..f3f2c3b 100644 --- a/modules/editor/siren-ido.el +++ b/modules/editor/siren-ido.el @@ -15,8 +15,7 @@ ido-enable-flex-matching t ido-enable-prefix nil ido-max-prospects 10 - ido-save-directory-list-file (expand-file-name "ido.hist" - siren-savefile-dir) + ido-save-directory-list-file (expand-file-name "ido.hist" siren-cache-dir) ido-use-faces nil ido-use-filename-at-point nil) diff --git a/modules/editor/siren-smex.el b/modules/editor/siren-smex.el index 613d8d4..b426c81 100644 --- a/modules/editor/siren-smex.el +++ b/modules/editor/siren-smex.el @@ -14,7 +14,7 @@ ("C-c C-c M-x" . execute-extended-command) :config - (setq smex-save-file (expand-file-name ".smex-items" siren-savefile-dir)) + (setq smex-save-file (expand-file-name "smex-items" siren-cache-dir)) (smex-initialize)) (provide 'siren-smex) diff --git a/modules/editor/siren-undo-tree.el b/modules/editor/siren-undo-tree.el index d25d69c..940fc91 100644 --- a/modules/editor/siren-undo-tree.el +++ b/modules/editor/siren-undo-tree.el @@ -21,7 +21,8 @@ :config (global-undo-tree-mode) ;; autosave the undo-tree history - (setq undo-tree-history-directory-alist `((".*" . ,temporary-file-directory)) + (setq undo-tree-history-directory-alist + `((".*" . ,(expand-file-name "undo-tree-history" siren-cache-dir))) undo-tree-auto-save-history t)) (provide 'siren-undo-tree) diff --git a/modules/navigation/siren-helm-ag.el b/modules/navigation/siren-helm-ag.el index dc95aca..414a894 100644 --- a/modules/navigation/siren-helm-ag.el +++ b/modules/navigation/siren-helm-ag.el @@ -21,6 +21,8 @@ "*.min.js" "*.min-latest.js" "archive-contents" + "cache" + "elpa" "node_modules" "vendor/assets"))) diff --git a/modules/projects/siren-project-explorer.el b/modules/projects/siren-project-explorer.el index 89947e5..df5fb69 100644 --- a/modules/projects/siren-project-explorer.el +++ b/modules/projects/siren-project-explorer.el @@ -14,7 +14,7 @@ (setq pe/follow-current t pe/width 54 pe/cache-directory (expand-file-name - "project-explorer-cache" siren-savefile-dir)) + "project-explorer" siren-cache-dir)) :config ;; Make Project Explorer open selected file in last used buffer diff --git a/modules/projects/siren-projectile.el b/modules/projects/siren-projectile.el index 76cd497..09f2559 100644 --- a/modules/projects/siren-projectile.el +++ b/modules/projects/siren-projectile.el @@ -18,8 +18,7 @@ ("C-c p" . projectile-command-map)) :init - (setq projectile-cache-file (expand-file-name - "projectile.cache" siren-savefile-dir)) + (setq projectile-cache-file (expand-file-name "projectile" siren-cache-dir)) (setq projectile-completion-system 'ido projectile-enable-caching nil @@ -33,6 +32,7 @@ ".vagrant" "_darcs" "archive-contents" + "cache" "coverage" "doc" "docs" @@ -40,7 +40,6 @@ "node_modules" "log" "logs" - "savefile" "tmp" "vendor/assets") projectile-globally-ignored-files '("TAGS" "*.log") diff --git a/modules/version-control/siren-magit.el b/modules/version-control/siren-magit.el index e8652ba..99377cd 100644 --- a/modules/version-control/siren-magit.el +++ b/modules/version-control/siren-magit.el @@ -49,5 +49,12 @@ ("~/.dotfiles" . 2)) magit-status-buffer-switch-function 'switch-to-buffer)) +(use-package transient + :defer t + :config + (setq transient-history-file (expand-file-name "transient/history.el" siren-cache-dir) + transient-levels-file (expand-file-name "transient/levels.el" siren-cache-dir) + transient-values-file (expand-file-name "transient/values.el" siren-cache-dir))) + (provide 'siren-magit) ;;; siren-magit.el ends here