emacs-devel
[Top][All Lists]
Advanced

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

Re: [Emacs-trunk-diffs] Changes to emacs/lisp/faces.el


From: Juri Linkov
Subject: Re: [Emacs-trunk-diffs] Changes to emacs/lisp/faces.el
Date: Sun, 26 Dec 2004 21:42:36 +0200
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux)

"Robert J. Chassell" <address@hidden> writes:
>    The current `blue' is one of the most unsuitable colors.  It stand
>    out very much.
>
> As I said early, the default cyan for escape glyphs is wonderful for me.

Cyan stands out very much.  OTOH, I see that dark red is not good
for dark backgrounds either.  For dark backgrounds the most suitable
would be a light color with the value between the color values
of font-lock-comment-face and font-lock-string-face, which are
"chocolate1" and "LightSalmon", respectively.  And at the same
time it should be closer to white.

> Please suggest values for each of the most likely various color formats

I suggest "burlywood2", "sandy brown" or "tan1".

> For example, 
>
>     (custom-set-faces
>      '(escape-glyph ((((class color) (background dark)) 
>                       (:foreground "cyan"))))
>      '(escape-glyph ((((class color) (background light)) 
>                       (:foreground "dark red")))))

You can type M-C-x on the following forms in emacs-lisp mode
with evaluated (put 'escape-glyph 'saved-face nil) before that:

(defface escape-glyph '((((background dark)) :foreground "burlywood2")
                        (((type pc)) :foreground "magenta")
                        (t :foreground "dark green"))
  "Face for characters displayed as ^-sequences or \\-sequences."
  :group 'basic-faces)

(defface escape-glyph '((((background dark)) :foreground "sandy brown")
                        (((type pc)) :foreground "magenta")
                        (t :foreground "dark red"))
  "Face for characters displayed as ^-sequences or \\-sequences."
  :group 'basic-faces)

(defface escape-glyph '((((background dark)) :foreground "tan1")
                        (((type pc)) :foreground "magenta")
                        (t :foreground "dark red"))
  "Face for characters displayed as ^-sequences or \\-sequences."
  :group 'basic-faces)

> Or perhaps custom themes could be generated from `custom-set-faces'
> expressions: one for green backgrounds, one for white backgrounds, one
> for blue backgrounds, etc., in X, something else for an audio desktop,
> and something else for the various consoles.

That's an interesting idea.  Do you suggest face conditions like this:

    (((background "green")) :foreground "yellow")

> (In my .emacs file, I set 98 different faces to various colors and
> heights.  Weights, other than normal, don't work for me.)

Different weights don't work for me too, but I reset all them in
with a function in a custom face define hook.

(defun my-faces-set (&optional frame)
  (interactive)
  ;; Check if this function is called by `custom-define-hook' from
  ;; `custom-declare-face' where the variable `face' is bound locally.
  (if (boundp 'face)
      (mapc (lambda (face)
              (when (face-italic-p face frame)
                (if (equal (face-foreground face frame) "black")
                    (set-face-foreground face "gray50" frame)))
              (when (face-bold-p face frame)
                (set-face-bold-p face nil frame)
                (set-face-underline-p face t frame))
              (when (numberp (face-attribute face :height frame))
                (set-face-attribute face frame :height 'unspecified))
              (when (numberp (face-attribute face :width frame))
                (set-face-attribute face frame :width 'unspecified))
              (when (numberp (face-attribute face :weight frame))
                (set-face-attribute face frame :weight 'unspecified)))
            (face-list))))

(add-to-list 'custom-define-hook 'my-faces-set)

> By the way, how do you list the complete contents of a theme?  I could
> not find mention in the Emacs manual, the Emacs Lisp Reference manual,
> or with `help-for-help'.  I know about `C-h v' (describe-variable),
> `list-colors-display', and `list-faces-display'.  (Normally, I look in
> my .emacs file.)

There is a good package at http://www.emacswiki.org/cgi-bin/wiki/ColorTheme
color-theme.el which has the command `color-theme-print' to print the
current color theme as a Lisp function.

-- 
Juri Linkov
http://www.jurta.org/emacs/





reply via email to

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