From e2d9843a066593d379bf84da9bd2b0491c31a0f5 Mon Sep 17 00:00:00 2001 From: Syohei YOSHIDA Date: Wed, 28 Oct 2015 10:27:17 +0900 Subject: [PATCH] [#26] Fix when default background is unspecified-fg or unspecified-bg Default background color is unspecified-fg or unspecified-bg if emacs runs in no-window mode(emacs -nw). '(color-values "unspecified-[fb]g")' returns nil and beacon--color-range raises error. Applying this patch uses fallback color instead of default background color. Copyright-paperwork-exempt: yes --- beacon.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/beacon.el b/beacon.el index 6433ba054..eb08d1a99 100644 --- a/beacon.el +++ b/beacon.el @@ -44,6 +44,13 @@ :group 'emacs :prefix "beacon-") +(defface beacon-fallback + '((((class color) (background light)) + (:background "black")) + (((class color) (background dark)) + (:background "white"))) + "Fallback background color") + (defvar beacon--timer nil) (defcustom beacon-push-mark 35 @@ -221,7 +228,10 @@ Only returns `beacon-size' elements." (defun beacon--color-range () "Return a list of background colors for the beacon." - (let* ((bg (color-values (face-attribute 'default :background))) + (let* ((default-bg (face-attribute 'default :background)) + (bg (color-values (if (string-prefix-p "unspecified" default-bg) + (face-attribute 'beacon-fallback :background) + default-bg))) (fg (cond ((stringp beacon-color) (color-values beacon-color)) ((< (color-distance "black" bg) -- 2.39.2