[Top][All Lists]
[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