diff --git a/frameg.el b/frameg.el new file mode 100644 index 0000000..4864e1c --- /dev/null +++ b/frameg.el @@ -0,0 +1,38 @@ +;; https://www.reddit.com/r/emacs/comments/4ermj9/comment/d237n0i/?utm_source=share&utm_medium=web2x&context=3 +;; Custom functions/hooks for persisting/loading frame geometry upon save/load + +(defun save-frameg () + "Gets the current frame's geometry and saves to ~/.emacs.frameg." + (let ((frameg-font (frame-parameter (selected-frame) 'font)) + (frameg-left (frame-parameter (selected-frame) 'left)) + (frameg-top (frame-parameter (selected-frame) 'top)) + (frameg-width (frame-parameter (selected-frame) 'width)) + (frameg-height (frame-parameter (selected-frame) 'height)) + (frameg-file (expand-file-name ".emacs.frameg" user-emacs-directory))) + (with-temp-buffer + ;; Turn off backup for this file + (make-local-variable 'make-backup-files) + (setq make-backup-files nil) + (insert + ";;; This file stores the previous emacs frame's geometry.\n" + ";;; Last generated " (current-time-string) ".\n" + "(setq initial-frame-alist\n" + " '(" + (format " (top . %d)\n" (max frameg-top 0)) + (format " (left . %d)\n" (max frameg-left 0)) + (format " (width . %d)\n" (max frameg-width 0)) + (format " (height . %d)))\n" (max frameg-height 0))) + (when (file-writable-p frameg-file) + (write-file frameg-file))))) + +(defun load-frameg () + "Loads ~/.emacs.frameg which should load the previous frame's geometry." + (let ((frameg-file (expand-file-name ".emacs.frameg" user-emacs-directory))) + (when (file-readable-p frameg-file) + (load-file frameg-file)))) + +;; Special work to do ONLY when there is a window system being used +(if window-system + (progn + (add-hook 'after-init-hook 'load-frameg) + (add-hook 'kill-emacs-hook 'save-frameg))) diff --git a/init.el b/init.el index 0e72d9e..25a4c89 100644 --- a/init.el +++ b/init.el @@ -47,13 +47,7 @@ (delete-file dark-mode-file) (with-temp-buffer (write-file dark-mode-file))) - (modus-themes-toggle)))) - - ;; Default frame size - (setq default-frame-alist - (append (list '(width . 90) '(height . 45) - '(vertical-scroll-bars . nil) - '(internal-border-width . 5))))) + (modus-themes-toggle))))) ;; Disable some UI elements (tool-bar-mode -1) @@ -433,6 +427,9 @@ (when (current-buffer-matches-file-p) (set-buffer-modified-p nil)) (kill-buffer)) +;; saving/restoring of the default frame +(load "~/.emacs.d/frameg.el") + ;; movies.org package (load "~/.emacs.d/org-movies.el" 'noerror)