Use farmg package instead of static default frame

This commit is contained in:
2026-01-22 13:43:49 +01:00
parent d74a5495c9
commit f6cdc61863
2 changed files with 42 additions and 7 deletions

38
frameg.el Normal file
View File

@@ -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)))

11
init.el
View File

@@ -47,13 +47,7 @@
(delete-file dark-mode-file) (delete-file dark-mode-file)
(with-temp-buffer (with-temp-buffer
(write-file dark-mode-file))) (write-file dark-mode-file)))
(modus-themes-toggle)))) (modus-themes-toggle)))))
;; Default frame size
(setq default-frame-alist
(append (list '(width . 90) '(height . 45)
'(vertical-scroll-bars . nil)
'(internal-border-width . 5)))))
;; Disable some UI elements ;; Disable some UI elements
(tool-bar-mode -1) (tool-bar-mode -1)
@@ -433,6 +427,9 @@
(when (current-buffer-matches-file-p) (set-buffer-modified-p nil)) (when (current-buffer-matches-file-p) (set-buffer-modified-p nil))
(kill-buffer)) (kill-buffer))
;; saving/restoring of the default frame
(load "~/.emacs.d/frameg.el")
;; movies.org package ;; movies.org package
(load "~/.emacs.d/org-movies.el" 'noerror) (load "~/.emacs.d/org-movies.el" 'noerror)