el/dot-emacs.el, dot/emacs: Add new function to change frame colours.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 5 Sep 2020 13:26:56 +0000 (14:26 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 5 Sep 2020 13:29:11 +0000 (14:29 +0100)
dot/emacs
el/dot-emacs.el

index 5cb3ef4..2bb3318 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
   (global-set-key [?\C-c ?v ?i] 'vm-visit-imap-folder)
   (global-set-key [?\C-c ?v ?m] 'vm-visit-folder)
   (global-set-key [?\C-c ?v ?v] 'mdw-auto-revert)
+  (global-set-key [?\C-c ?w ?c] 'mdw-set-frame-colour)
   (global-set-key [?\C-c ?w ?d] 'mdw-divvy-window)
   (global-set-key [?\C-c ?w ?h] 'windmove-left)
   (global-set-key [?\C-c ?w ?j] 'windmove-down)
index ded4030..c1beb94 100644 (file)
@@ -263,6 +263,23 @@ P")
 
 This is sadly necessary because Emacs 26 is broken in this regard.")
 
+(defvar mdw-frame-colour-alist
+  '((black . ("#000000" . "#ffffff"))
+    (red . ("#2a0000" . "#ffffff"))
+    (green . ("#002a00" . "#ffffff"))
+    (blue . ("#00002a" . "#ffffff")))
+  "*Alist mapping symbol names to (FOREGROUND . BACKGROUND) colour pairs.")
+
+(defun mdw-set-frame-colour (colour &optional frame)
+  (interactive "xColour name or (FOREGROUND . BACKGROUND) pair: 
+")
+  (when (and colour (symbolp colour))
+    (let ((entry (assq colour mdw-frame-colour-alist)))
+      (unless entry (error "Unknown colour `%s'" colour))
+      (setf colour (cdr entry))))
+  (set-frame-parameter frame 'background-color (car colour))
+  (set-frame-parameter frame 'foreground-color (cdr colour)))
+
 ;; Don't raise windows unless I say so.
 
 (defvar mdw-inhibit-raise-frame nil