summaryrefslogtreecommitdiff
path: root/.emacs.d/init.el
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2024-05-17 19:31:03 +0100
committerSean Whitton <spwhitton@spwhitton.name>2024-05-17 21:06:04 +0100
commit7dabdc530a5f2fc783c38eb5c3a0931b1883b8e3 (patch)
tree178ca86136acdd7721088e57a4fa283fde08aa81 /.emacs.d/init.el
parentd9037bc693cd5912a342595b0483285cdcda4fd0 (diff)
downloaddotfiles-master.tar.gz
disperse "Assorted packages" section of init.elHEADmaster
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r--.emacs.d/init.el123
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