From af034bf1722b661ed42531321a20127ed5848c55 Mon Sep 17 00:00:00 2001 From: Jessie Hildebrandt Date: Mon, 19 Dec 2022 22:37:06 -0500 Subject: [PATCH] Perform some code cleanup --- init.el | 172 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 91 insertions(+), 81 deletions(-) diff --git a/init.el b/init.el index e00aff2..2576f92 100644 --- a/init.el +++ b/init.el @@ -198,17 +198,6 @@ (byte-compile-file user/init-file) (byte-compile-file user/early-init-file)) -(defun user/refresh-packages () - "Refresh packages that have been configured for use in the user init file. - -This is accomplished by deleting `package-user-dir' and recompiling the user -init file, which initializes the package manager during compile time." - (interactive) - (when (yes-or-no-p "Redownload and refresh packages? ") - (message "Refreshing packages...") - (delete-directory package-user-dir :recursive) - (user/byte-compile-init-files))) - (defun user/download-latest-init-file () "Download the latest user init file from jessieh.net/emacs. @@ -223,6 +212,17 @@ If `user/init-file' points to a symlink, nothing will be downloaded." (url-copy-file "https://jessieh.net/emacs" user/init-file :ok-if-already-exists) (user/byte-compile-init-files)))) +(defun user/refresh-packages () + "Refresh packages that have been configured for use in the user init file. + +This is accomplished by deleting `package-user-dir' and recompiling the user +init file, which initializes the package manager during compile time." + (interactive) + (when (yes-or-no-p "Redownload and refresh packages? ") + (message "Refreshing packages...") + (delete-directory package-user-dir :recursive) + (user/byte-compile-init-files))) + (defun user/select-minibuffer-window () "Select the minibuffer window if it is active." (interactive) @@ -277,7 +277,7 @@ DOCSTRING is an optional form that is discarded upon expansion." `(use-package ,name :ensure nil ,@args)) ;; ---------------------------------- ;; -;; General editor setup +;; emacs ;; ---------------------------------- ;; (defun user/ensure-region-active (func &rest args) @@ -286,7 +286,7 @@ DOCSTRING is an optional form that is discarded upon expansion." (apply func args))) (editor-feature emacs - "General editor-wide configuration" + "Provides an extensible, customizable, self-documenting real-time display editor" :config @@ -313,7 +313,6 @@ DOCSTRING is an optional form that is discarded upon expansion." (max-mini-window-height 10 "Limit minibuffer height to 10 lines") (enable-recursive-minibuffers t "Allow minibuffer commands to be called in the minibuffer") (load-prefer-newer t "Load from source files if they are newer than bytecode files") - (server-client-instructions nil "Suppress help messages from the server for new frames") ;; Startup (initial-scratch-message "" "Leave scratch buffer empty on startup") @@ -383,69 +382,6 @@ DOCSTRING is an optional form that is discarded upon expansion." ("C-c C-j" . windmove-left) ("C-c C-l" . windmove-right)) -;; ---------------------------------- ;; -;; File save/backup behavior -;; ---------------------------------- ;; - -(defconst user/custom-file (locate-user-emacs-file "custom.el") "Location of user customizations file.") -(defconst user/backup-directory (locate-user-emacs-file "backup/") "Location of user backup directory.") -(defconst user/auto-save-directory (locate-user-emacs-file "auto-save/") "Location of user auto save directory.") -(defconst user/lock-file-directory (locate-user-emacs-file "lock-file/") "Location of user lock file directory.") - -(make-directory user/backup-directory :parents) -(make-directory user/auto-save-directory :parents) -(make-directory user/lock-file-directory :parents) - -(editor-feature files - "File/save backup behavior configuration" - - :custom - - ;; Config file - (custom-file user/custom-file "Store customization info in a separate file") - - ;; Directories - (backup-directory-alist `((".*" . ,user/backup-directory))) - (auto-save-file-name-transforms `((".*" ,user/auto-save-directory t))) - (lock-file-name-transforms `((".*" ,user/lock-file-directory t))) - - ;; Backup behavior - (backup-by-copying t "Use copying unconditionally when creating backups") - (version-control t "Use version numbers on backup files") - (delete-old-versions t "Clean up old backup files") - (kept-new-versions 5 "Keep 5 recent backup files") - (kept-old-versions 3 "Keep 3 old backup files") - - :hook - (before-save-hook . delete-trailing-whitespace)) - -;; ---------------------------------- ;; -;; Graphical frame settings -;; ---------------------------------- ;; - -(defvar user/initial-frame-created nil "Whether or not the first frame has been initialized by the server.") -(defvar user/after-daemon-make-initial-frame-functions nil "Run when the first frame is produced by the server in daemon mode.") - -(defun user/set-up-frame (frame) - "Set up newly-created frame FRAME." - (when (display-graphic-p frame) - (with-selected-frame frame - (let ((winid (frame-parameter frame 'outer-window-id))) - (call-process-shell-command - (concat "xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT dark -id " winid) - nil 0)) - (when (and (daemonp) - (not user/initial-frame-created)) - (run-hooks 'user/after-daemon-make-initial-frame-functions) - (setq user/initial-frame-created t))))) - -(editor-feature frame - "Graphical frame configuration" - :config - (mapc #'user/set-up-frame (frame-list)) - :hook - (after-make-frame-functions . user/set-up-frame)) - ;; ---------------------------------- ;; ;; autorevert ;; ---------------------------------- ;; @@ -554,6 +490,67 @@ DOCSTRING is an optional form that is discarded upon expansion." ("C-c j" . tab-line-switch-to-prev-tab) ("C-c l" . tab-line-switch-to-next-tab))) +;; ---------------------------------- ;; +;; files +;; ---------------------------------- ;; + +(defconst user/custom-file (locate-user-emacs-file "custom.el") "Location of user customizations file.") +(defconst user/backup-directory (locate-user-emacs-file "backup/") "Location of user backup directory.") +(defconst user/auto-save-directory (locate-user-emacs-file "auto-save/") "Location of user auto save directory.") +(defconst user/lock-file-directory (locate-user-emacs-file "lock-file/") "Location of user lock file directory.") + +(make-directory user/backup-directory :parents) +(make-directory user/auto-save-directory :parents) +(make-directory user/lock-file-directory :parents) + +(editor-feature files + "Defines most of Emacs' file-handling functionality" + + :custom + + ;; Config file + (custom-file user/custom-file "Store customization info in a separate file") + + ;; Directories + (backup-directory-alist `((".*" . ,user/backup-directory))) + (auto-save-file-name-transforms `((".*" ,user/auto-save-directory t))) + (lock-file-name-transforms `((".*" ,user/lock-file-directory t))) + + ;; Backup behavior + (backup-by-copying t "Use copying unconditionally when creating backups") + (version-control t "Use version numbers on backup files") + (delete-old-versions t "Clean up old backup files") + (kept-new-versions 5 "Keep 5 recent backup files") + (kept-old-versions 3 "Keep 3 old backup files") + + :hook + (before-save-hook . delete-trailing-whitespace)) + +;; ---------------------------------- ;; +;; frame +;; ---------------------------------- ;; + +(defvar user/initial-frame-created nil "Whether or not the first frame has been initialized by the server.") +(defvar user/after-daemon-make-initial-frame-functions nil "Run when the first frame is produced by the server in daemon mode.") + +(defun user/set-up-frame (frame) + "Set up newly-created frame FRAME." + (when (display-graphic-p frame) + (let ((winid (frame-parameter frame 'outer-window-id))) + (start-process "" nil "xprop" "-f" "_GTK_THEME_VARIANT" "8u" "-set" "_GTK_THEME_VARIANT" "dark" "-id" winid)) + (when (and (daemonp) + (not user/initial-frame-created)) + (with-selected-frame frame + (run-hooks 'user/after-daemon-make-initial-frame-functions) + (setq user/initial-frame-created t))))) + +(editor-feature frame + "Graphical frame configuration" + :config + (mapc #'user/set-up-frame (frame-list)) + :hook + (after-make-frame-functions . user/set-up-frame)) + ;; ---------------------------------- ;; ;; hl-line ;; ---------------------------------- ;; @@ -597,6 +594,22 @@ DOCSTRING is an optional form that is discarded upon expansion." :config (savehist-mode)) +;; ---------------------------------- ;; +;; server +;; ---------------------------------- ;; + +(editor-feature server + "Allows Emacs to operate as a server for other Emacs processes" + :config + ;; When running in a server/client configuration, we don't want the + ;; foreground/background in `default-frame-alist' to override the colors + ;; set by the theme every time we open a new client frame + (when (daemonp) + (assoc-delete-all 'foreground default-frame-alist) + (assoc-delete-all 'background default-frame-alist)) + :custom + (server-client-instructions nil "Suppress help messages from the server for new frames")) + ;; ---------------------------------- ;; ;; so-long ;; ---------------------------------- ;; @@ -947,9 +960,7 @@ DOCSTRING is an optional form that is discarded upon expansion." ;; ---------------------------------- ;; (external-package fussy - "Provides a flexible `completion-style' that scores and sorts candidates" - :demand - t + "Provides a flexible completion style that scores and sorts candidates" :custom (completion-ignore-case t "Ignore case in completion candidates") (completion-category-defaults nil "Disable category-specific completion styles") @@ -1279,7 +1290,6 @@ DOCSTRING is an optional form that is discarded upon expansion." :hook (server-after-make-frame-hook . solaire-global-mode) (emacs-startup-hook . solaire-global-mode)) -;; (user/after-daemon-make-initial-frame-functions . solaire-global-mode)) ;; ---------------------------------- ;; ;; undo-tree