Configuration files

emacs: replace `desktop-save-mode` with custom persisting logic

Changed files
+44 -3
.config
emacs
+44 -3
.config/emacs/init.el
··· 37 (let ((temp-dir (temp-dir "emacs/"))) 38 (setq backup-directory-alist `((".*" . ,temp-dir))) 39 (setq auto-save-file-name-transforms `((".*" ,temp-dir t))) 40 - (setq lock-file-name-transforms `((".*" ,temp-dir t))) 41 - (setq desktop-path `(,temp-dir))) 42 - (desktop-save-mode 1) 43 (setq-default indent-tabs-mode nil) 44 (setq-default tab-width 4) 45 (setq c-basic-offset 4) ··· 227 (enable-recursive-minibuffers t) 228 (tab-always-indent 'complete) 229 (read-extended-command-predicate #'command-completion-default-include-p))
··· 37 (let ((temp-dir (temp-dir "emacs/"))) 38 (setq backup-directory-alist `((".*" . ,temp-dir))) 39 (setq auto-save-file-name-transforms `((".*" ,temp-dir t))) 40 + (setq lock-file-name-transforms `((".*" ,temp-dir t)))) 41 (setq-default indent-tabs-mode nil) 42 (setq-default tab-width 4) 43 (setq c-basic-offset 4) ··· 225 (enable-recursive-minibuffers t) 226 (tab-always-indent 'complete) 227 (read-extended-command-predicate #'command-completion-default-include-p)) 228 + 229 + ;;;;;;;;;;;;;;;;;;;; 230 + ;; PERSIST VALUES ;; 231 + ;;;;;;;;;;;;;;;;;;;; 232 + 233 + (defcustom krg-persist-file-name ".emacs.persist" 234 + "Filename for persist-file." 235 + :type 'string) 236 + (defun krg-persist-file () 237 + "Returns expanded path to current persist-file. 238 + Filename for the file can be set using ‘krg-persist-file-name'." 239 + (conf-dir krg-persist-file-name)) 240 + 241 + (defun krg-save-persist-file () 242 + "Save persist-file on disk at location defined by \\[krg-persist-file]." 243 + (let ((frame-left (frame-parameter (selected-frame) 'left)) 244 + (frame-top (frame-parameter (selected-frame) 'top)) 245 + (frame-width (frame-parameter (selected-frame) 'width)) 246 + (frame-height (frame-parameter (selected-frame) 'height)) 247 + (persist-file (krg-persist-file))) 248 + (with-temp-buffer 249 + (make-local-variable 'make-backup-files) 250 + (setq make-backup-files nil) 251 + (insert 252 + ";;; " krg-persist-file-name " -*- lexical-binding: t; -*-\n" 253 + ";;; " (current-time-string) " " (nth 1 (current-time-zone)) ".\n" 254 + "(setq initial-frame-alist '(\n" 255 + (format " (top . %d)\n" (max frame-top 0)) 256 + (format " (left . %d)\n" (max frame-left 0)) 257 + (format " (width . %d)\n" (max frame-width 0)) 258 + (format " (height . %d)))\n" (max frame-height 0))) 259 + (when (file-writable-p persist-file) 260 + (write-file persist-file))))) 261 + 262 + (defun krg-load-persist-file () 263 + "Load persisted settings from the file location defined by \\[krg-persist-file]." 264 + (let ((persist-file (krg-persist-file))) 265 + (when (file-readable-p persist-file) 266 + (load-file persist-file)))) 267 + 268 + (when window-system 269 + (add-hook 'after-init-hook 'krg-load-persist-file) 270 + (add-hook 'kill-emacs-hook 'krg-save-persist-file))