2021-03-12 23:39:42 +00:00
|
|
|
;;; init.el -*- lexical-binding: t; coding: utf-8-unix -*-
|
2021-03-01 05:58:57 +00:00
|
|
|
;;
|
2021-02-26 17:31:50 +00:00
|
|
|
;; Author: Case Duckworth <acdw@acdw.net>
|
2021-03-01 05:58:57 +00:00
|
|
|
;; Created: Sometime during Covid-19, 2020
|
2021-02-26 17:31:50 +00:00
|
|
|
;; Keywords: configuration
|
2021-03-08 04:14:38 +00:00
|
|
|
;; URL: https://tildegit.org/acdw/emacs
|
2021-03-11 14:24:22 +00:00
|
|
|
;; Bankruptcy: 5c
|
2021-03-01 05:58:57 +00:00
|
|
|
;;
|
|
|
|
;; 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:
|
2021-02-26 17:31:50 +00:00
|
|
|
|
2021-03-09 04:40:23 +00:00
|
|
|
;;; Add `acdw.el'
|
2021-03-11 18:04:45 +00:00
|
|
|
(push (expand-file-name "lisp/" user-emacs-directory)
|
2021-03-08 22:58:18 +00:00
|
|
|
load-path)
|
2021-03-08 04:14:38 +00:00
|
|
|
(require 'acdw)
|
2021-03-04 15:09:29 +00:00
|
|
|
|
2021-03-09 04:40:23 +00:00
|
|
|
;;; About me
|
|
|
|
(acdw/set
|
|
|
|
'((user-full-name "Case Duckworth")
|
|
|
|
(user-mail-address "acdw@acdw.net")
|
|
|
|
(calendar-location-name "Baton Rouge, LA")
|
|
|
|
(calendar-latitude 30.4)
|
|
|
|
(calendar-longitude -91.1)
|
|
|
|
(calendar-date-style iso)))
|
|
|
|
|
2021-03-08 22:58:18 +00:00
|
|
|
;;; 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)
|
2021-03-11 18:08:23 +00:00
|
|
|
|
|
|
|
;; I don't want `visual-line-mode', because I really only want to wrap and
|
|
|
|
;; truncate lines. Believe me, I know what I'm doing.
|
2021-03-12 18:47:54 +00:00
|
|
|
(acdw/set '((word-wrap t)
|
|
|
|
(truncate-lines t)))
|
2021-03-11 18:08:23 +00:00
|
|
|
|
2021-03-08 22:58:18 +00:00
|
|
|
;; Whitespace
|
2021-03-11 18:08:23 +00:00
|
|
|
(acdw/set '((whitespace-style
|
2021-03-08 22:58:18 +00:00
|
|
|
(empty indentation space-before-tab space-after-tab))
|
|
|
|
(indent-tabs-mode t)
|
|
|
|
(tab-width 8)))
|
2021-03-12 23:29:26 +00:00
|
|
|
(add-hook 'before-save-hook #'whitespace-cleanup)
|
2021-03-08 22:58:18 +00:00
|
|
|
|
|
|
|
;; 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)
|
2021-03-11 18:08:51 +00:00
|
|
|
(acdw/set '((save-interprogram-paste-before-kill t)
|
2021-03-08 22:58:18 +00:00
|
|
|
(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))))
|
|
|
|
|
2021-03-11 14:24:39 +00:00
|
|
|
;; Unique buffer names
|
|
|
|
(when (require 'uniquify)
|
|
|
|
(acdw/set '((uniquify-buffer-name-style forward)
|
|
|
|
(uniquify-separator "/")
|
|
|
|
(uniquify-after-kill-buffer-p t)
|
|
|
|
(uniquify-ignore-buffers-re "^\\*"))))
|
|
|
|
|
2021-03-08 22:58:18 +00:00
|
|
|
;; 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)
|
2021-03-11 14:24:54 +00:00
|
|
|
|
|
|
|
(defun hook--auto-save-when-unfocused ()
|
|
|
|
"Save all buffers when out of focus."
|
|
|
|
(acdw/when-unfocused #'save-some-buffers t))
|
|
|
|
(add-function :after after-focus-change-function
|
|
|
|
#'hook--auto-save-when-unfocused)
|
|
|
|
|
2021-03-09 04:40:23 +00:00
|
|
|
;; Auto-revert
|
|
|
|
(when (require 'autorevert)
|
|
|
|
(global-auto-revert-mode +1))
|
|
|
|
;; Save place
|
|
|
|
(when (require 'saveplace)
|
|
|
|
(acdw/set
|
2021-03-11 14:24:54 +00:00
|
|
|
`((save-place-file ,(acdw/in-dir "places.el"))
|
2021-03-09 04:40:23 +00:00
|
|
|
(save-place-forget-unreadable-files ,(eq acdw/system :home))))
|
|
|
|
(save-place-mode +1))
|
|
|
|
;; Recent files
|
|
|
|
(when (require 'recentf)
|
|
|
|
(acdw/set
|
2021-03-11 14:24:54 +00:00
|
|
|
`((recentf-save-file ,(acdw/in-dir "recentf.el"))
|
2021-03-09 04:40:23 +00:00
|
|
|
(recentf-max-menu-items 100)
|
|
|
|
(recentf-max-saved-items nil)
|
2021-03-11 18:09:16 +00:00
|
|
|
(recentf-auto-cleanup 60 "Cleanup the recentf list when idle for 60s.")))
|
|
|
|
(add-to-list 'recentf-exclude acdw/dir)
|
|
|
|
(recentf-mode +1))
|
2021-03-09 04:40:23 +00:00
|
|
|
|
|
|
|
;; Move the custom file
|
|
|
|
(acdw/set `((custom-file ,(acdw/in-dir "custom.el"))))
|
2021-03-08 22:58:18 +00:00
|
|
|
|
|
|
|
;; Cursor
|
|
|
|
(acdw/set '((cursor-type bar)
|
2021-03-11 14:24:54 +00:00
|
|
|
(cursor-in-non-selected-windows hollow)))
|
2021-03-08 22:58:18 +00:00
|
|
|
|
|
|
|
(defun hook--overwrite-mode-change-cursor ()
|
2021-03-12 23:32:48 +00:00
|
|
|
(setq cursor-type (if overwrite-mode 'hbar 'bar)))
|
2021-03-08 22:58:18 +00:00
|
|
|
(add-hook 'overwrite-mode-hook #'hook--overwrite-mode-change-cursor)
|
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;; Scrolling
|
|
|
|
(acdw/set '((auto-window-vscroll nil)
|
|
|
|
(fast-but-imprecise-scrolling t)
|
|
|
|
(scroll-margin 0)
|
|
|
|
(scroll-conservatively 101)
|
|
|
|
(scroll-preserve-screen-position 1)))
|
|
|
|
|
2021-03-08 22:58:18 +00:00
|
|
|
;; Bindings
|
2021-03-12 18:53:39 +00:00
|
|
|
(acdw/binds (("C-h" ehelp-command :after ("ehelp" nil nil 'keymap))
|
|
|
|
([remap just-one-space] cycle-spacing)
|
|
|
|
("M-/" hippie-expand)
|
|
|
|
("M-=" count-words)
|
|
|
|
("C-x C-b" ibuffer)))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
|
|
|
;;; Startup
|
|
|
|
(acdw/set `((inhibit-startup-screen t)
|
|
|
|
(initial-buffer-choice t)
|
2021-03-11 18:04:45 +00:00
|
|
|
(initial-scratch-message
|
|
|
|
,(concat ";; Howdy, "
|
|
|
|
(nth 0 (split-string user-full-name)) "!"
|
|
|
|
" Welcome to GNU Emacs.\n\n"))))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
|
|
|
;;; Minibuffer
|
|
|
|
|
2021-03-11 18:09:41 +00:00
|
|
|
(acdw/set '((minibuffer-prompt-properties (read-only t
|
|
|
|
cursor-intangible t
|
|
|
|
face minibuffer-prompt))
|
|
|
|
(enable-recursive-minibuffers t)
|
|
|
|
(file-name-shadow-properties (invisible t))))
|
|
|
|
(minibuffer-depth-indicate-mode +1)
|
|
|
|
(file-name-shadow-mode +1)
|
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;; Save history
|
|
|
|
(when (require 'savehist)
|
|
|
|
(acdw/set `((savehist-additional-variables
|
|
|
|
(kill-ring search-ring regexp-search-ring))
|
|
|
|
(history-length t)
|
|
|
|
(history-delete-duplicates t)
|
|
|
|
(savehist-autosave-interval 6)
|
|
|
|
(savehist-file ,(acdw/in-dir "savehist.el"))))
|
|
|
|
(savehist-mode +1))
|
|
|
|
|
|
|
|
;; Icomplete (-vertical)
|
|
|
|
(when (require 'icomplete)
|
|
|
|
(acdw/set '((completion-ignore-case t)
|
|
|
|
(read-buffer-completion-ignore-case t)
|
|
|
|
(icomplete-delay-completions-threshold 0)
|
|
|
|
(icomplete-max-delay-chars 0)
|
|
|
|
(icomplete-compute-delay 0)
|
|
|
|
(icomplete-show-matches-on-no-input t)
|
|
|
|
(icomplete-with-buffer-completion-tables t)
|
|
|
|
(icomplete-in-buffer t)))
|
2021-03-11 18:09:58 +00:00
|
|
|
(acdw/pkg orderless
|
2021-03-12 23:32:13 +00:00
|
|
|
:set '((completion-styles (orderless))))
|
2021-03-11 14:24:54 +00:00
|
|
|
(acdw/pkg icomplete-vertical
|
|
|
|
:binds (("<down>" icomplete-forward-completions
|
2021-03-11 18:04:45 +00:00
|
|
|
:map icomplete-minibuffer-map)
|
2021-03-11 14:24:54 +00:00
|
|
|
("C-n" icomplete-forward-completions
|
2021-03-11 18:04:45 +00:00
|
|
|
:map icomplete-minibuffer-map)
|
2021-03-11 14:24:54 +00:00
|
|
|
("<up>" icomplete-backward-completions
|
2021-03-11 18:04:45 +00:00
|
|
|
:map icomplete-minibuffer-map)
|
2021-03-11 14:24:54 +00:00
|
|
|
("C-p" icomplete-backward-completions
|
2021-03-11 18:04:45 +00:00
|
|
|
:map icomplete-minibuffer-map)
|
2021-03-11 14:24:54 +00:00
|
|
|
("C-v" icomplete-vertical-toggle
|
2021-03-11 18:04:45 +00:00
|
|
|
:map icomplete-minibuffer-map))
|
2021-03-11 14:24:54 +00:00
|
|
|
:now ((fido-mode -1)
|
|
|
|
(icomplete-mode +1)
|
|
|
|
(icomplete-vertical-mode +1))))
|
|
|
|
|
|
|
|
;; Consult
|
|
|
|
(acdw/pkg consult
|
|
|
|
:binds (;; C-c bindings (`mode-specific-map')
|
|
|
|
("C-c h" consult-history)
|
|
|
|
("C-c m" consult-mode-command)
|
|
|
|
;; C-x bindings (`ctl-x-map')
|
|
|
|
("C-x M-:" consult-complex-command)
|
|
|
|
("C-x b" consult-buffer)
|
|
|
|
("C-x 4 b" consult-buffer-other-window)
|
|
|
|
("C-x 5 b" consult-buffer-other-frame)
|
|
|
|
("C-x r x" consult-register)
|
|
|
|
("C-x r b" consult-bookmark)
|
|
|
|
;; M-g bindings (`goto-map')
|
|
|
|
("M-g o" consult-outline)
|
|
|
|
("M-g m" consult-mark)
|
|
|
|
("M-g k" consult-global-mark)
|
|
|
|
("M-g i" consult-imenu)
|
|
|
|
("M-g e" consult-error)
|
|
|
|
;; M-s bindings (`search-map')
|
|
|
|
("M-s g" consult-grep) ; alts:
|
|
|
|
; consult-git-grep,
|
|
|
|
; consult-ripgrep
|
|
|
|
("M-s f" consult-find) ; alts:
|
|
|
|
; consult-locate
|
|
|
|
("M-s l" consult-line)
|
|
|
|
("M-s m" consult-multi-occur)
|
|
|
|
("M-s k" consult-keep-lines)
|
|
|
|
("M-s u" consult-focus-lines)
|
|
|
|
;; Other bindings
|
|
|
|
("M-y" consult-yank-pop)
|
|
|
|
("<f1> a" consult-apropos)
|
|
|
|
("C-h a" consult-apropos))
|
2021-03-12 23:32:13 +00:00
|
|
|
:now ((autoload 'consult-register-preview "consult"))
|
|
|
|
:set '((register-preview-delay 0)
|
|
|
|
(register-preview-function #'consult-register-preview)))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
|
|
|
;; Marginalia
|
|
|
|
(acdw/pkg marginalia
|
2021-03-12 23:32:13 +00:00
|
|
|
:set '((marginalia-annotators (marginalia-annotators-heavy
|
|
|
|
marginalia-annotators-light)))
|
|
|
|
:now ((marginalia-mode +1)))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
|
|
|
;; Imenu
|
|
|
|
(when (require 'imenu)
|
|
|
|
(acdw/set '((imenu-auto-rescan t))))
|
|
|
|
|
2021-03-13 07:54:30 +00:00
|
|
|
;; Fonts
|
|
|
|
(acdw/set-faces ((fixed-pitch . ((t (:inherit default))))))
|
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;;; Packages
|
|
|
|
|
|
|
|
;; Undo-fu
|
|
|
|
(acdw/pkg undo-fu
|
|
|
|
:binds (("C-/" undo-fu-only-undo)
|
|
|
|
("C-?" undo-fu-only-redo)))
|
|
|
|
(acdw/pkg undo-fu-session
|
2021-03-12 23:32:13 +00:00
|
|
|
:set `((undo-fu-session-incompatible-files ("/COMMIT_EDITMSG\\'"
|
|
|
|
"/git-rebase-todo\\'"))
|
|
|
|
(undo-fu-session-directory ,(acdw/in-dir "undo/" t)))
|
2021-03-11 14:24:54 +00:00
|
|
|
:then ((global-undo-fu-session-mode +1)))
|
|
|
|
|
|
|
|
;; Modus themes
|
|
|
|
(acdw/pkg (modus-themes
|
|
|
|
:host gitlab
|
|
|
|
:repo "protesilaos/modus-themes")
|
2021-03-12 23:32:13 +00:00
|
|
|
:set `((modus-themes-slanted-constructs t)
|
|
|
|
(modus-themes-bold-constructs t)
|
|
|
|
(modus-themes-region 'bg-only)
|
|
|
|
(modus-themes-org-blocks 'grayscale)
|
|
|
|
(modus-themes-headings ((1 . section)
|
|
|
|
(t . no-color)))
|
|
|
|
(modus-themes-scale-headings nil)
|
|
|
|
(modus-themes-mode-line nil))
|
|
|
|
:now ((acdw/sunrise-sunset #'modus-themes-load-operandi
|
2021-03-16 16:15:59 +00:00
|
|
|
#'modus-themes-load-vivendi)))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
2021-03-13 05:05:42 +00:00
|
|
|
;; Expand-region
|
|
|
|
(acdw/pkg expand-region
|
|
|
|
:binds (("C-=" er/expand-region)))
|
|
|
|
|
2021-03-13 07:56:40 +00:00
|
|
|
;;; Frame title
|
|
|
|
|
|
|
|
(acdw/set `((frame-title-format
|
|
|
|
"%b %+%* GNU Emacs")))
|
2021-03-11 14:24:54 +00:00
|
|
|
|
2021-03-11 23:59:44 +00:00
|
|
|
;;; Mode line
|
|
|
|
|
2021-03-11 18:10:19 +00:00
|
|
|
;; Minions
|
2021-03-15 04:48:40 +00:00
|
|
|
(acdw/pkg minions)
|
2021-03-11 18:10:19 +00:00
|
|
|
|
2021-03-11 23:59:44 +00:00
|
|
|
;; Simple mode line
|
|
|
|
(acdw/pkg simple-modeline
|
2021-03-12 23:22:32 +00:00
|
|
|
:set '((simple-modeline-segments
|
|
|
|
((;; left
|
2021-03-15 04:48:40 +00:00
|
|
|
acdw-modeline/modified
|
|
|
|
acdw-modeline/buffer-name
|
|
|
|
simple-modeline-segment-position
|
|
|
|
simple-modeline-segment-word-count)
|
2021-03-12 23:22:32 +00:00
|
|
|
(;; right
|
2021-03-15 04:48:40 +00:00
|
|
|
acdw-modeline/vc-branch
|
2021-03-12 23:22:32 +00:00
|
|
|
simple-modeline-segment-misc-info
|
|
|
|
simple-modeline-segment-process
|
2021-03-15 04:48:40 +00:00
|
|
|
acdw-modeline/minions
|
2021-03-12 23:22:32 +00:00
|
|
|
simple-modeline-segment-major-mode))))
|
2021-03-15 04:48:40 +00:00
|
|
|
:now ((require 'acdw-modeline)
|
2021-03-12 15:36:15 +00:00
|
|
|
(simple-modeline-mode +1)))
|
2021-03-11 23:59:44 +00:00
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;;; Magit
|
|
|
|
|
|
|
|
(acdw/pkg magit
|
|
|
|
:binds (("g" magit-status :map acdw/leader)))
|
|
|
|
|
2021-03-11 18:10:54 +00:00
|
|
|
;;; Web browsing
|
|
|
|
|
|
|
|
(acdw/set '((browse-url-browser-function browse-url-firefox)
|
|
|
|
(browse-url-new-window-flag t)
|
|
|
|
(browse-url-firefox-new-window-is-tab t)
|
|
|
|
(shr-max-width fill-column)
|
|
|
|
(shr-width fill-column)))
|
|
|
|
|
|
|
|
(when (eq acdw/system :work)
|
2021-03-11 18:17:53 +00:00
|
|
|
(add-to-list 'exec-path "C:/Program Files/Mozilla Firefox"))
|
2021-03-11 18:10:54 +00:00
|
|
|
|
2021-03-12 23:29:26 +00:00
|
|
|
(acdw/hooks ((text-mode-hook goto-address-mode)
|
|
|
|
(prog-mode-hook goto-address-prog-mode)))
|
2021-03-11 18:10:54 +00:00
|
|
|
|
2021-03-11 18:15:33 +00:00
|
|
|
;;; Dired
|
2021-03-16 14:29:53 +00:00
|
|
|
(acdw/pkg dired
|
|
|
|
:local t
|
|
|
|
:set `((dired-recursive-copies always)
|
2021-03-11 18:15:33 +00:00
|
|
|
(dired-recursive-deletes always)
|
|
|
|
(delete-by-moving-to-trash t)
|
|
|
|
(dired-listing-switches "-Al")
|
|
|
|
(ls-lisp-dirs-first t)
|
2021-03-16 14:29:53 +00:00
|
|
|
(dired-dwim-target t))
|
|
|
|
:now ((autoload 'dired-mode-map "dired" nil nil 'keymap)
|
|
|
|
(acdw/pkg dired-subtree)
|
|
|
|
(acdw/pkg dired-x
|
|
|
|
:local t
|
|
|
|
:binds (("C-x C-j" dired-jump)))
|
|
|
|
(acdw/pkg dired-collapse
|
|
|
|
:hooks ((dired-mode-hook dired-collapse-mode)))
|
|
|
|
(defun hook--dired-mode ()
|
|
|
|
(hl-line-mode +1)
|
|
|
|
(dired-hide-details-mode +1)))
|
|
|
|
:hooks ((dired-mode-hook hook--dired-mode))
|
|
|
|
:binds (("i" dired-subtree-toggle :map dired-mode-map)))
|
2021-03-11 18:15:33 +00:00
|
|
|
|
2021-03-11 18:15:59 +00:00
|
|
|
;;; Eshell
|
|
|
|
|
|
|
|
(acdw/set `((eshell-directory-name ,(acdw/in-dir "eshell/" t))
|
2021-03-11 18:18:21 +00:00
|
|
|
(eshell-aliases-file ,(acdw/in-dir "eshell/aliases" t))))
|
2021-03-11 18:15:59 +00:00
|
|
|
|
2021-03-12 23:20:49 +00:00
|
|
|
;;; Org-mode
|
|
|
|
(acdw/pkg (org
|
|
|
|
:repo "https://code.orgmode.org/bzg/org-mode.git")
|
|
|
|
:now ((require 'acdw-org))
|
|
|
|
:set `((org-directory "~/org")
|
|
|
|
(org-hide-emphasis-markers t)
|
|
|
|
(org-fontify-whole-heading-line t)
|
|
|
|
(org-fontify-done-headline t)
|
|
|
|
(org-fontify-quote-and-verse-blocks t)
|
|
|
|
(org-src-fontify-natively t)
|
|
|
|
(org-pretty-entities t)
|
|
|
|
(org-tags-column ,(- 0 fill-column -3))
|
|
|
|
(org-src-tab-acts-natively t)
|
|
|
|
(org-src-window-setup current-window)
|
|
|
|
(org-confirm-babel-evaluate nil)
|
|
|
|
(org-adapt-indentation nil)
|
|
|
|
(org-catch-invisible-edits smart)
|
|
|
|
(org-special-ctrl-a/e t)
|
|
|
|
(org-special-ctrl-k t)
|
|
|
|
(org-imenu-depth 3)
|
|
|
|
(org-export-headline-levels 8)
|
|
|
|
(org-export-with-smart-quotes t)
|
|
|
|
(org-export-with-sub-superscripts t))
|
2021-03-13 07:56:50 +00:00
|
|
|
:hooks ((before-save-hook acdw/hook--org-mode-fix-blank-lines))
|
2021-03-15 00:18:32 +00:00
|
|
|
:binds (("RET" unpackaged/org-return-dwim
|
|
|
|
:map org-mode-map :map-after 'org)))
|
|
|
|
|
2021-03-15 00:18:52 +00:00
|
|
|
;;; Nov.el -- ebook reader
|
|
|
|
(acdw/pkg nov
|
|
|
|
:now ((autoload #'nov-mode "nov")
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)))
|
|
|
|
:set `((nov-text-width ,fill-column)))
|
|
|
|
|
2021-03-15 00:19:02 +00:00
|
|
|
;;; 0x0 -- upload files
|
|
|
|
(acdw/pkg (0x0 :repo "https://git.sr.ht/~zge/nullpointer-emacs")
|
|
|
|
:set '((0x0-default-host ttm)))
|
2021-03-12 23:20:49 +00:00
|
|
|
|
2021-03-11 18:16:20 +00:00
|
|
|
;;; Programming languages
|
|
|
|
|
|
|
|
;; Emacs lisp
|
|
|
|
(acdw/set '((eval-expression-print-length nil)
|
|
|
|
(eval-expression-print-level nil)))
|
|
|
|
|
|
|
|
(when (require 'cl-lib)
|
|
|
|
(setq-default lisp-indent-function #'common-lisp-indent-function)
|
|
|
|
(put 'cl-flet 'common-lisp-indent-function
|
|
|
|
(get 'flet 'common-lisp-indent-function))
|
|
|
|
(put 'cl-labels 'common-lisp-indent-function
|
|
|
|
(get 'labels 'common-lisp-indent-function))
|
|
|
|
(put 'if 'common-lisp-indent-function 2)
|
|
|
|
(put 'dotimes-protect 'common-lisp-indent-function
|
|
|
|
(get 'when 'common-lisp-indent-function)))
|
|
|
|
|
2021-03-15 00:19:11 +00:00
|
|
|
;; Racket
|
|
|
|
(acdw/pkg racket-mode)
|
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;;; Miscellaneous
|
|
|
|
|
|
|
|
(acdw/set '((disabled-command-function nil)
|
|
|
|
(load-prefer-newer t)
|
|
|
|
(comp-async-report-warnings-errors nil)))
|
2021-03-11 18:16:50 +00:00
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
(fset 'yes-or-no-p #'y-or-n-p)
|
|
|
|
|
2021-03-11 18:16:50 +00:00
|
|
|
;; Garbage collection
|
|
|
|
(defun hook--gc-cons-maximize ()
|
|
|
|
(setq gc-cons-threshold most-positive-fixnum))
|
|
|
|
(add-hook 'minibuffer-setup-hook #'hook--gc-cons-maximize)
|
|
|
|
|
|
|
|
(defun hook--gc-cons-baseline ()
|
|
|
|
(setq gc-cons-threshold gc-cons-threshold-basis))
|
|
|
|
(add-hook 'minibuffer-exit-hook #'hook--gc-cons-baseline)
|
|
|
|
|
|
|
|
(defun hook--gc-when-unfocused ()
|
|
|
|
(acdw/when-unfocused #'garbage-collect))
|
|
|
|
(add-function :after after-focus-change-function
|
|
|
|
#'hook--gc-when-unfocused)
|
|
|
|
|
2021-03-11 14:24:54 +00:00
|
|
|
;;; init.el ends here
|