emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Easier customization of TODO keyword colors


From: Bastien
Subject: Re: [Orgmode] Easier customization of TODO keyword colors
Date: Fri, 04 Sep 2009 16:23:27 +0800
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)

"Ryan C. Thompson" <address@hidden> writes:

> Here is some code I came up with some code to make it easier to
> customize the colors of various TODO keywords. As long as you just want
> a different color and nothing else, you can customize the variable
> org-todo-keyword-faces and use just a string color (i.e. a string of the
> color name) as the face, and then org-get-todo-face will convert the
> color to a face, inheriting everything else from the standard org-todo
> face.

Interesting - would you like to add this in org-hacks?

  http://orgmode.org/worg/org-hacks.php

If so, please send me your username on repo.or.cz (if you are not
already a Worger...)

Thank!

> To demonstrate, I currently have org-todo-keyword-faces set to
> (("IN PROGRESS" . "dark orange")
>  ("WAITING" . "red4")
>  ("CANCELED" . "saddle brown"))
>
> Here's the code, in a form you can put in your .emacs.
>
> (eval-after-load 'org-faces
>   '(progn
>      (defcustom org-todo-keyword-faces nil
>        "Faces for specific TODO keywords.
> This is a list of cons cells, with TODO keywords in the car and
> faces in the cdr.  The face can be a symbol, a color, or a
> property list of attributes, like (:foreground \"blue\" :weight
> bold :underline t)."
>        :group 'org-faces
>        :group 'org-todo
>        :type '(repeat
>                (cons
>                 (string :tag "Keyword")
>                 (choice color (sexp :tag "Face")))))))
>
> (eval-after-load 'org
>   '(progn
>      (defun org-get-todo-face-from-color (color)
>        "Returns a specification for a face that inherits from org-todo
>   face and has the given color as foreground. Returns nil if
>   color is nil."
>        (when color
>          `(:inherit org-warning :foreground ,color)))
>
>      (defun org-get-todo-face (kwd)
>        "Get the right face for a TODO keyword KWD.
> If KWD is a number, get the corresponding match group."
>        (if (numberp kwd) (setq kwd (match-string kwd)))
>        (or (let ((face (cdr (assoc kwd org-todo-keyword-faces))))
>              (if (stringp face)
>                  (org-get-todo-face-from-color face)
>                face))
>            (and (member kwd org-done-keywords) 'org-done)
>            'org-todo))))
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

-- 
 Bastien




reply via email to

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