From 59a1f58695d09ab29ddf992b2c0711c94a4039ea Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Tue, 3 Jan 2023 23:03:03 -0600 Subject: Switch to use-package --- lisp/acdw-defaults.el | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 lisp/acdw-defaults.el (limited to 'lisp/acdw-defaults.el') diff --git a/lisp/acdw-defaults.el b/lisp/acdw-defaults.el new file mode 100644 index 0000000..80b2bcc --- /dev/null +++ b/lisp/acdw-defaults.el @@ -0,0 +1,292 @@ +;;; acdw-defaults.el --- measured defaults for Emacs -*- lexical-binding: t -*- +;; by C. Duckworth + +;;; Commentary: + +;; I find myself copy-pasting a lot of "boilerplate" type code when +;; bankrupting my Emacs config and starting afresh. Instead of doing +;; that, I'm putting it here, where it'll be easier to include in my +;; config. + +;; Of course, some might say I could just ... stop bankrupting my +;; Emacs. But like, why would I want to? + +;;; Code: + +(require 'seq) + +(defvar default-ring-max 256 + "Default maximum for ring variables.") + +(unless (boundp 'use-short-answers) + (fset 'yes-or-no-p 'y-or-n-p)) + +(setc async-shell-command-buffer 'new-buffer + async-shell-command-display-buffer nil + auto-hscroll-mode t + auto-window-vscroll nil + cursor-in-non-selected-windows 'hollow + cursor-type 'bar + echo-keystrokes 0.01 + fast-but-imprecise-scrolling t + fill-column 80 + global-mark-ring-max default-ring-max + hscroll-margin 1 + hscroll-step 1 + inhibit-startup-screen t + initial-buffer-choice t + kill-do-not-save-duplicates t + kill-read-only-ok t + kill-ring-max default-ring-max + kmacro-ring-max default-ring-max + mark-ring-max default-ring-max + read-answer-short t + read-process-output-max (* 10 1024 1024) + ring-bell-function #'ignore + save-interprogram-paste-before-kill t + scroll-conservatively 25 + scroll-margin 0 + scroll-preserve-screen-position 1 + scroll-step 1 + sentence-end-double-space t + set-mark-command-repeat-pop t + tab-width 8 + undo-limit (* 10 1024 1024) + use-dialog-box nil + use-file-dialog nil + use-short-answers t + window-resize-pixelwise t + yank-pop-change-selection t) + +;;; Encodings + +;; Allegedly, this is the only one you need... +(set-language-environment "UTF-8") +;; But I still set all of these, for fun. +(setq-default buffer-file-coding-system 'utf-8-unix + coding-system-for-read 'utf-8-unix + coding-system-for-write 'utf-8-unix + default-process-coding-system '(utf-8-unix . utf-8-unix) + locale-coding-system 'utf-8-unix + x-select-request-type '(UTF8_STRING + COMPOUND_TEXT + TEXT + STRING)) + +(set-charset-priority 'unicode) +(prefer-coding-system 'utf-8-unix) +(set-default-coding-systems 'utf-8-unix) +(set-terminal-coding-system 'utf-8-unix) +(set-keyboard-coding-system 'utf-8-unix) + +(pcase system-type + ((or 'ms-dos 'windows-nt) + (set-clipboard-coding-system 'utf-16-le) + (set-selection-coding-system 'utf-16-le)) + (_ + (set-selection-coding-system 'utf-8) + (set-clipboard-coding-system 'utf-8))) + +;;; Modes + +(dolist (enable-mode '(;; Enable these modes on startup + delete-selection-mode + global-so-long-mode + )) + (funcall enable-mode +1)) + +(dolist (disable-mode '(;; Disable these modes on startup + horizontal-scroll-bar-mode + menu-bar-mode + scroll-bar-mode + tool-bar-mode + tooltip-mode + )) + (funcall disable-mode -1)) + +;;; Internal packages + +(when (require 'abbrev nil t) + (custom-set-variables + '(abbrev-file-name (sync/ "abbrev.el")) + '(save-abbrevs 'silently))) + +(when (require 'autorevert nil t) + (custom-set-variables + '(auto-revert-verbose nil) + '(global-auto-revert-non-file-buffers t)) + (global-auto-revert-mode +1)) + +(when (require 'comp nil t) + (custom-set-variables + '(native-comp-async-report-warnings-errors 'silent) + '(native-comp-deferred-compilation t))) + +(when (require 'custom nil t) + (custom-set-variables + '(custom-file (etc/ "custom.el")))) + +(when (require 'ediff nil t) + (custom-set-variables + '(ediff-window-setup-function #'ediff-setup-windows-plain))) + +(when (require 'eldoc nil t) + (custom-set-variables + '(eldoc-echo-area-use-multiline-p nil) + '(eldoc-idle-delay 0.1))) + +(when (require 'executable nil t) + (custom-set-variables + '(executable-prefix-env t))) + +(when (require 'files nil t) + (custom-set-variables + '(auto-save-default nil) + '(auto-save-interval 1) + '(auto-save-no-message t) + '(auto-save-timeout 1) + '(auto-save-visited-interval 1) + '(backup-by-copying t) + '(create-lockfiles nil) + '(delete-old-versions t) + '(find-file-visit-truename t) + '(kept-new-versions 8) + '(kept-old-versions 8) + '(mode-require-final-newline t) + '(version-control t) + '(view-read-only t)) + (dolist (h/f + '((after-save-hook . executable-make-buffer-file-executable-if-script-p) + (find-file-not-found-functions . create-missing-directories) + (find-file-hook . +vc-off@remote))) + (add-hook (car h/f) (cdr h/f))) + (auto-save-visited-mode)) + +(when (require 'frame nil t) + (custom-set-variables + '(blink-cursor-blinks 1) + '(blink-cursor-interval 0.25) + '(blink-cursor-delay 0.25)) + (blink-cursor-mode)) + +(when (require 'goto-addr nil t) + (if (fboundp 'global-goto-address-mode) + (global-goto-address-mode +1) + (add-hook 'after-change-major-mode-hook 'goto-address-mode))) + +(when (require 'ibuffer nil t) + (global-set-key (kbd "C-x C-b") #'ibuffer) + (add-hook 'ibuffer-mode-hook #'hl-line-mode)) + +(when (require 'image nil t) + (custom-set-variables + '(image-use-external-converter + (seq-some #'executable-find '("convert" "gm" "ffmpeg"))))) + +(when (require 'imenu nil t) + (custom-set-variables + '(imenu-auto-rescan t))) + +(when (require 'isearch nil t) + (custom-set-variables + '(regexp-search-ring-max default-ring-max) + '(search-ring-max default-ring-max))) + +(when (require 'minibuffer nil t) + (custom-set-variables + '(completion-category-defaults nil) + '(completion-category-overrides '((file (styles partial-completion)))) + '(completion-ignore-case t) + '(completion-styles '(substring partial-completion)) + '(enable-recursive-minibuffers t) + '(file-name-shadow-properties '(invisible t intangible t)) + '(minibuffer-eldef-shorten-default t) + '(minibuffer-prompt-properties '( read-only t + cursor-intangible t + face minibuffer-prompt)) + '(read-buffer-completion-ignore-case t)) + (file-name-shadow-mode) + (minibuffer-electric-default-mode)) + +(when (require 'mouse nil t) + (custom-set-variables + '(mouse-drag-copy-region t) + '(mouse-wheel-progressive-speed nil) + '(mouse-yank-at-point t))) + +(when (require 'paren nil t) + (custom-set-variables + '(show-paren-delay 0.01) + '(show-paren-style 'parenthesis) + '(show-paren-when-point-in-periphery t) + '(show-paren-when-point-inside-paren t)) + (show-paren-mode) + (electric-pair-mode)) + +(when (require 'recentf nil t) + (custom-set-variables + '(recentf-save-file (var/ "recentf.el")) + '(recentf-max-menu-items default-ring-max) + '(recentf-max-saved-items nil) + '(recentf-auto-cleanup 'mode)) + (add-to-list 'recentf-exclude etc/) + (add-to-list 'recentf-exclude var/) + (add-to-list 'recentf-exclude cache/) + (add-to-list 'recentf-exclude "-autoloads.el\\'") + (recentf-mode +1)) + +(when (require 'savehist nil t) + (custom-set-variables + '(history-length 1024) + '(history-delete-duplicates t) + '(savehist-file (var/ "savehist.el")) + '(savehist-save-minibuffer-history t) + '(savehist-autosave-interval 30) + ;; Other variables --- don't truncate any of these. + ;; `add-to-history' uses the values of these variables unless + ;; they're nil, in which case it falls back to `history-length'. + '(kill-ring-max default-ring-max) + '(mark-ring-max default-ring-max) + '(global-mark-ring-max default-ring-max) + '(regexp-search-ring-max default-ring-max) + '(search-ring-max default-ring-max) + '(kmacro-ring-max default-ring-max) + '(eww-history-limit default-ring-max)) + (dolist (var '(global-mark-ring + mark-ring + kill-ring + kmacro-ring + regexp-search-ring + search-ring)) + (add-to-list 'savehist-additional-variables var)) + (savehist-mode +1)) + +(when (require 'saveplace nil t) + (custom-set-variables + '(save-place-file (var/ "places.el")) + '(save-place-forget-unreadable-files (eq system-type 'gnu/linux))) + (save-place-mode 1)) + +(when (require 'uniquify nil t) + (custom-set-variables + '(uniquify-after-kill-buffer-p t) + '(uniquify-buffer-name-style 'forward) + '(uniquify-ignore-buffers-re "^\\*") + '(uniquify-separator path-separator))) + +(when (require 'vc nil t) + (custom-set-variables + '(vc-follow-symlinks t) + '(vc-make-backup-files t))) + +(when (require 'window nil t) + (custom-set-variables + '(recenter-positions '(top 2 middle bottom)))) + +;;; New features + +(when (fboundp 'pixel-scroll-precision-mode) + (pixel-scroll-precision-mode)) + +(provide 'acdw-defaults) +;;; acdw-defaults.el ends here -- cgit 1.4.1-21-gabe81