diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2024-05-17 19:31:03 +0100 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2024-05-17 21:06:04 +0100 |
commit | 7dabdc530a5f2fc783c38eb5c3a0931b1883b8e3 (patch) | |
tree | 178ca86136acdd7721088e57a4fa283fde08aa81 /.emacs.d/init.el | |
parent | d9037bc693cd5912a342595b0483285cdcda4fd0 (diff) | |
download | dotfiles-master.tar.gz |
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r-- | .emacs.d/init.el | 123 |
1 files changed, 59 insertions, 64 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 49ea5754..f633c397 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -911,6 +911,26 @@ To be used only when it seems to be necessary." (add-hook 'text-mode-hook #'goto-address-mode) (add-hook 'prog-mode-hook #'goto-address-prog-mode) +;; message-mode is sensitive to trailing whitespace in sig dashes and empty +;; headers. markdown-mode is sensitive in empty headers (e.g. "# " which I +;; use in writing essays) and newlines that indicate paragraph flow (obscure +;; Markdown feature) +;; +;; The message-mode case is handled by `spw/normalise-message', which is +;; better than setting `ws-butler-trim-predicate' to a complicated function +;; because the code in `spw/normalise-message' gets called less often. Could +;; try setting `ws-butler-trim-predicate' to handle the markdown-mode case, +;; but chances are someday I'll want to use that obscure markdown-mode feature +(define-globalized-minor-mode spw/ws-butler-global-mode ws-butler-mode + (lambda () (when (buffer-file-name) (ws-butler-mode 1))) + :predicate '((not markdown-mode + message-mode + lisp-interaction-mode) + prog-mode text-mode)) +(spw/ws-butler-global-mode 1) + +(spw/feature-add-hook rainbow-mode (sgml-mode html-mode-hook) css-mode) + (global-set-key "\C-cih" #'add-file-local-variable-prop-line) ;; don't do anything with abbrevs if ~/doc is not checked out @@ -1406,6 +1426,11 @@ the non-side windows deleted by `delete-other-windows' will also reappear." (define-key ctl-x-5-map "\C-j" "\C-x55\C-x\C-j") (define-key tab-prefix-map "\C-j" "\C-xtt\C-x\C-j") +(autoload 'redtick "redtick") +(global-set-key "\C-cP" #'redtick) +(autoload 'redtick-mode "redtick") +(global-set-key "\C-cgP" #'redtick-mode) + ;;;; TRAMP @@ -2680,6 +2705,9 @@ mutt's review view, after exiting EDITOR." (require 'notmuch-address) (notmuch-address-setup)) (add-hook 'message-mode-hook #'footnote-mode) + (spw/when-library-available orgalist + (add-hook 'message-mode-hook #'orgalist-mode)) + (add-hook 'message-mode-hook #'orgtbl-mode) (define-key message-mode-map [remap message-newline-and-reformat] #'spw/message-newline-and-reformat) @@ -2777,7 +2805,7 @@ mutt's review view, after exiting EDITOR." "&" #'spw/dired-copy-filename-as-kill) -;;;; EWW +;;;; EWW / shr ;; this should ensure that M-a and M-e work for most webpages (add-hook 'eww-mode-hook (lambda () @@ -2807,6 +2835,10 @@ mutt's review view, after exiting EDITOR." (setq-local bookmark-make-record-function #'spw/bookmark-eww-bookmark-make-record))) +(customize-set-variable 'nov-text-width 78) +(spw/when-library-available nov + (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))) + ;;;; Gnus @@ -3986,65 +4018,7 @@ unread." (global-set-key "\C-cvf" 'spw/vc-next-action-for-git-fixup) -;;;; Assorted packages - -;; message-mode is sensitive to trailing whitespace in sig dashes and empty -;; headers. markdown-mode is sensitive in empty headers (e.g. "# " which I -;; use in writing essays) and newlines that indicate paragraph flow (obscure -;; Markdown feature) -;; -;; The message-mode case is handled by `spw/normalise-message', which is -;; better than setting `ws-butler-trim-predicate' to a complicated function -;; because the code in `spw/normalise-message' gets called less often. Could -;; try setting `ws-butler-trim-predicate' to handle the markdown-mode case, -;; but chances are someday I'll want to use that obscure markdown-mode feature -(define-globalized-minor-mode spw/ws-butler-global-mode ws-butler-mode - (lambda () (when (buffer-file-name) (ws-butler-mode 1))) - :predicate '((not markdown-mode - message-mode - lisp-interaction-mode) - prog-mode text-mode)) -(spw/ws-butler-global-mode 1) - -(autoload 'redtick "redtick") -(global-set-key "\C-cP" #'redtick) -(autoload 'redtick-mode "redtick") -(global-set-key "\C-cgP" #'redtick-mode) - -(with-eval-after-load 'org-d20 - (setq org-d20-dice-sound - "~/annex/media/sounds/147531__ziembee__diceland.wav" - org-d20-display-rolls-buffer t - ;; the roll20 tokens I'm using for NPCs are lettered - org-d20-letter-monsters t - ;; ... and they come in only two colours, so let's just have - ;; one monster per letter - org-d20-continue-monster-numbering t) - - (define-key org-d20-mode-map [f5] #'org-d20-initiative-dwim) - (define-key org-d20-mode-map [f6] #'org-d20-damage) - - (define-key org-d20-mode-map [f7] (lambda (arg) - (interactive "P") - (call-interactively - (if arg - #'org-d20-roll-last - #'org-d20-roll)))) - (define-key org-d20-mode-map [f8] #'org-d20-roll-at-point) - (define-key org-d20-mode-map [f9] (lambda (arg) - (interactive "P") - (call-interactively - (if arg - #'org-d20-d% - #'org-d20-d20))))) - -(customize-set-variable 'nov-text-width 78) -(spw/when-library-available nov - (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))) - -(spw/when-library-available rainbow-mode - (dolist (hook '(html-mode-hook css-mode-hook)) - (add-hook hook 'rainbow-mode))) +;;;; Haskell (custom-theme-set-variables 'user @@ -4066,10 +4040,8 @@ unread." nil t)) haskell-mode)) -(spw/when-library-available orgalist - (spw/feature-add-hook orgalist-mode message)) - -(spw/feature-add-hook orgtbl-mode message) + +;;;; Bongo (custom-theme-set-variables 'user @@ -4783,6 +4755,29 @@ Called by doccheckin script." (org-odt-convert org-input "docx"))) (advice-add 'org-odt-export-to-odt :after #'spw/org-odt-export-docx) +(custom-theme-set-variables + 'user + '(org-d20-dice-sound "~/annex/media/sounds/147531__ziembee__diceland.wav") + '(org-d20-display-rolls-buffer t) + ;; The Roll20 tokens I'm using for NPCs are lettered, and they come in only + ;; two colours, so one monster per letter. + '(org-d20-letter-monsters t) + '(org-d20-continue-monster-numbering t)) +(spw/feature-define-keys org-d20 + [f5] org-d20-initiative-dwim + [f6] org-d20-damage + [f7] (lambda (arg) + (interactive "P") + (call-interactively (if arg + #'org-d20-roll-last + #'org-d20-roll))) + [f8] org-d20-roll-at-point + [f9] (lambda (arg) + (interactive "P") + (call-interactively (if arg + #'org-d20-d% + #'org-d20-d20)))) + ;;;; Org-mode agenda |