Skip to content

Instantly share code, notes, and snippets.

@cig0
Created January 9, 2016 23:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cig0/726106cd383738717477 to your computer and use it in GitHub Desktop.
Save cig0/726106cd383738717477 to your computer and use it in GitHub Desktop.
;; Restore last frame size on startup
(defun save-framegeometry ()
"Gets the current frame's geometry and saves to ~/.emacs.d/framegeometry."
(let (
(framegeometry-left (frame-parameter (selected-frame) 'left))
(framegeometry-top (frame-parameter (selected-frame) 'top))
(framegeometry-width (frame-parameter (selected-frame) 'width))
(framegeometry-height (frame-parameter (selected-frame) 'height))
(framegeometry-file (expand-file-name "~/.emacs.d/framegeometry"))
)
(when (not (number-or-marker-p framegeometry-left))
(setq framegeometry-left 0))
(when (not (number-or-marker-p framegeometry-top))
(setq framegeometry-top 0))
(when (not (number-or-marker-p framegeometry-width))
(setq framegeometry-width 0))
(when (not (number-or-marker-p framegeometry-height))
(setq framegeometry-height 0))
(with-temp-buffer
(insert
";;; This is the previous emacs frame's geometry.\n"
";;; Last generated " (current-time-string) ".\n"
"(setq initial-frame-alist\n"
" '(\n"
(format " (top . %d)\n" (max framegeometry-top 0))
(format " (left . %d)\n" (max framegeometry-left 0))
(format " (width . %d)\n" (max framegeometry-width 0))
(format " (height . %d)))\n" (max framegeometry-height 0)))
(when (file-writable-p framegeometry-file)
(write-file framegeometry-file))))
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment