change from startup into fullscreen to last saved geometry

This commit is contained in:
2020-12-24 16:22:24 +01:00
parent 44ffdcf99f
commit ce8f24d28a
2 changed files with 38 additions and 1 deletions

View File

@@ -14,7 +14,7 @@
(add-to-list 'default-frame-alist item)
)
'(
(fullscreen . maximized)
;;(fullscreen . maximized) ;; restore saved geometry, see gui-settings.el my-frame-geometry-
(tool-bar-position . left)
;;(horizontal-scroll-bars . t) ;; see gui-settings
)

View File

@@ -363,5 +363,42 @@ See also `dashboard-insert-section'."
;;:hook (help-mode . virtual-auto-fill-mode)
)
;; Custom functions/hooks for persisting/loading frame geometry upon save/load
(setq my-frame-geometry-file (concat user-cache-directory "frame-geometry.el"))
(defun my-frame-geometry-save ()
"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 my-frame-geometry-file))
(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"
;; " '((font . \"" frameg-font "\")\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 my-frame-geometry-load ()
"Loads ~/.emacs.frameg which should load the previous frame's geometry."
(let ((frameg-file my-frame-geometry-file))
(when (file-readable-p frameg-file)
(load-file frameg-file))))
;; Special work to do ONLY when there is a window system being used
(if (display-graphic-p)
(progn
(add-hook 'after-init-hook 'my-frame-geometry-load)
(add-hook 'kill-emacs-hook 'my-frame-geometry-save)))
(provide 'gui-settings)
;;; gui-settings.el ends here