emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] dynamically set face [was: semi-visible stars?]


From: Matt Price
Subject: [O] dynamically set face [was: semi-visible stars?]
Date: Thu, 1 Dec 2016 13:58:19 -0500



On Thu, Dec 1, 2016 at 10:22 AM, Matt Price <address@hidden> wrote:


On Wed, Nov 30, 2016 at 3:41 PM, Matt Price <address@hidden> wrote:
I have been fooling around a little bit with color-themes and also the new emacs 24+ custom themes, and find that (perhaps because of using desktop-mode) there are certain traces of the theming that get left behind in the display even when I've restarted Emacs after trying hard to erase them. 

One of these is the frequent appearance of pale stars even when org-indent-mode is turned on.  See the attached screenshot for details.  The initial stars in a lower-level headline are visible, as are leading stars in front of the indented text.  I find this quite distracting! Does anyone know what might be causing this, how I can get rid of them, and also how I would in general go about figuring out how to identify the cause of similar appearance-related issues in Emacs?

I just navigated to org-faces.el and executed M-C-x on this defface:

(defface org-hide
  '((((background light)) (:foreground "white"))
    (((background dark)) (:foreground "black")))
  "Face used to hide leading stars in headlines.
The foreground color of this face should be equal to the background
color of the frame."
  :group 'org-faces)

problem solved.  Sorry for the noise. 

OK, not solved, exactly. I have (setq color-theme-is-global t) in order to differentiate between different frames (one for mail, one for code, one for org).  When I switch between the mail frame (using the 'wheat' theme) and the org frame (which uses a default theme), the color of org-hide seems to get set to the light golden brown color that 'wheat' ueses as its background color.  Here's the extremely short definition of the wheat color-theme:

(defun color-theme-wheat ()
  "Default colors on a wheat background.
Calls the standard color theme function `color-theme-standard' in order
to reset all faces."
  (interactive)
  (color-theme-standard)
  (let ((color-theme-is-cumulative t))
    (color-theme-install
     '(color-theme-wheat
       ((background-color . "Wheat"))))))

I'm not sure why this messes up the other frames, but clearly it does.  I'm thinking that if I can dynamically set the :foreground color to *whatever the background color is in the frame*, that might fix the issue.  So I tried this:


(defface org-hide
  '((((background light)) (:foreground (format (face-attribute 'default :background)) ))
    (((background dark)) (:foreground (format (face-attribute 'default :background)))))
  "Face used to hide leading stars in headlines.
The foreground color of this face should be equal to the background
color of the frame."
  :group 'org-faces)

but I get this error:

set-face-attribute: Wrong type argument: stringp, (format (face-attribute (quote default) :background))

Obviously my understanding of lisp types is a little weak, but (type-of (format (face-attribute 'default :background))) returns "string".  So what's wrong here? And am I going about this the right way?

Thank you!
m

 

Thank you!

Matt




reply via email to

[Prev in Thread] Current Thread [Next in Thread]