:;;; init.el -*- lexical-binding: t; coding: utf-8-unix -*- ;; ;; Author: Case Duckworth ;; Created: Sometime during Covid-19, 2020 ;; Keywords: configuration ;; URL: https://tildegit.org/acdw/emacs ;; Bankruptcy: 5b ;; ;; This file is NOT part of GNU Emacs. ;; ;;; License: ;; ;; Everyone is permitted to do whatever with this software, without ;; limitation. This software comes without any warranty whatsoever, ;; but with two pieces of advice: ;; - Don't hurt yourself. ;; - Make good choices. ;; ;;; Code: ;; Add `acdw.el' (push (expand-file-name "lisp/" user-emacs-directory) load-path) (require 'acdw) ;;; Good defaults ;; Lines (acdw/set '((fill-column 80))) (global-display-fill-column-indicator-mode +1) (add-hook 'text-mode-hook #'turn-on-auto-fill) (add-hook 'prog-mode-hook #'turn-on-auto-fill) (global-so-long-mode +1) ;; Whitespace (acdw/set `((whitespace-style (empty indentation space-before-tab space-after-tab)) (indent-tabs-mode t) (tab-width 8))) (add-hook 'before-save-hook #'whitespace-cleanup) ;; Pairs (add-hook 'prog-mode-hook #'electric-pair-local-mode) (acdw/set '((show-paren-delay 0) (show-paren-style mixed) (show-paren-when-point-inside-paren t) (show-paren-when-point-in-periphery t))) (show-paren-mode +1) ;; Killing & Yanking (delete-selection-mode +1) (acdw/set `((save-interprogram-paste-before-kill t) (yank-pop-change-selection t) (x-select-enable-clipboard t) (x-select-enable-primary t) (mouse-drag-copy-region t) (kill-do-not-save-duplicates t))) ;; Encoding (set-charset-priority 'unicode) (set-language-environment "UTF-8") (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) (set-selection-coding-system 'utf-8-unix) (acdw/set '((locale-coding-system utf-8-unix) (coding-system-for-read utf-8-unix) (coding-system-for-write utf-8-unix) (buffer-file-coding-system utf-8-unix) (org-export-coding-system utf-8-unix) (org-html-coding-system utf-8-unix) (default-process-coding-system (utf-8-unix . utf-8-unix)) (x-select-request-type (UTF8_STRING COMPOUND_TEXT TEXT STRING)))) ;; Backups (acdw/set `((backup-by-copying t) (delete-old-versions -1) (version-control t) (vc-make-backup-files t) (backup-directory-alist ((".*" . ,(acdw/in-dir "backup/" t)))))) ;; Autosaves (acdw/set `((auto-save-file-name-transforms ((".*" ,(acdw/in-dir "auto-save/" t) t))) (auto-save-list-file-prefix ,(acdw/in-dir "auto-save-list/.saves-" t)))) (auto-save-visited-mode +1) ;; Cursor (acdw/set '((cursor-type bar) (cursor-in-non-selected-windows 'box))) (defun hook--overwrite-mode-change-cursor () (setq cursor-type (if overwrite-mode t 'bar))) (add-hook 'overwrite-mode-hook #'hook--overwrite-mode-change-cursor) ;; Bindings (acdw/bind "C-h" 'ehelp-command :after ("ehelp" nil nil 'keymap))