From: Chong Yidong Date: Tue, 12 Oct 2010 20:06:20 +0000 (-0400) Subject: Add some default custom themes. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~46^2~38 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2919746c6494cc29bda375c5737b1c86b7e888d1;p=emacs.git Add some default custom themes. * cus-theme.el (custom-theme--listed-faces): Add cursor face. (describe-theme-1): Extract doc from unloaded themes. * custom.el (custom-theme-name-valid-p): Don't list color-themes. * themes/tango-theme.el: * themes/tango-dark-theme.el: * themes/wheatgrass-theme.el: New files. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e32d07f7db7..fbf07f8dd4a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2010-10-12 Chong Yidong + + * cus-theme.el (custom-theme--listed-faces): Add cursor face. + (describe-theme-1): Extract doc from unloaded themes. + + * custom.el (custom-theme-name-valid-p): Don't list color-themes. + + * themes/tango-theme.el: + * themes/tango-dark-theme.el: + * themes/wheatgrass-theme.el: New files. + 2010-10-12 Chong Yidong * cus-theme.el (describe-theme, customize-themes) diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 3c1295ea923..197d9787d9a 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -56,7 +56,7 @@ Do not call this mode function yourself. It is meant for internal use." (defvar custom-theme-insert-variable-marker nil) (defvar custom-theme-insert-face-marker nil) -(defvar custom-theme--listed-faces '(default fixed-pitch +(defvar custom-theme--listed-faces '(default cursor fixed-pitch variable-pitch escape-glyph minibuffer-prompt highlight region shadow secondary-selection trailing-whitespace font-lock-builtin-face font-lock-comment-delimiter-face @@ -478,21 +478,37 @@ It includes all faces in list FACES." (princ " is a custom theme") (let ((fn (locate-file (concat (symbol-name theme) "-theme.el") (cons custom-theme-directory load-path) - '("" "c")))) + '("" "c"))) + doc) (when fn (princ " in `") (help-insert-xref-button (file-name-nondirectory fn) 'help-theme-def fn) (princ "'")) - (princ ".\n")) - (if (not (memq theme custom-known-themes)) - (princ "It is not loaded.") - (if (custom-theme-enabled-p theme) - (princ "It is loaded and enabled.\n") - (princ "It is loaded but disabled.\n")) - (princ "\nDocumentation:\n") - (princ (or (get theme 'theme-documentation) - "No documentation available."))) + (princ ".\n") + (if (not (memq theme custom-known-themes)) + (progn + (princ "It is not loaded.") + ;; Attempt to grab the theme documentation + (when fn + (with-temp-buffer + (insert-file-contents fn) + (let ((sexp (let ((read-circle nil)) + (condition-case nil + (read (current-buffer)) + (end-of-file nil))))) + (and sexp (listp sexp) + (eq (car sexp) 'deftheme) + (setq doc (nth 2 sexp))))))) + (if (custom-theme-enabled-p theme) + (princ "It is loaded and enabled.") + (princ "It is loaded but disabled.")) + (setq doc (get theme 'theme-documentation))) + + (princ "\n\nDocumentation:\n") + (princ (if (stringp doc) + doc + "No documentation available."))) (princ "\n\nYou can ") (help-insert-xref-button "customize" 'help-theme-edit theme) (princ " this theme.")) diff --git a/lisp/custom.el b/lisp/custom.el index ffb3a271fa4..2cb4fb2e1be 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1149,6 +1149,9 @@ NAME should be a symbol." (and (symbolp name) name (not (or (zerop (length (symbol-name name))) + ;; There's a third-party package named color-theme.el. + ;; Don't treat that as a theme. + (eq name 'color) (eq name 'cus) (eq name 'user) (eq name 'changed))))) diff --git a/lisp/themes/tango-dark-theme.el b/lisp/themes/tango-dark-theme.el new file mode 100644 index 00000000000..f63440b4ea7 --- /dev/null +++ b/lisp/themes/tango-dark-theme.el @@ -0,0 +1,92 @@ +;;; tango-dark-theme.el --- Tango-based custom theme for faces + +;; Copyright (C) 2010 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary + +;; The colors in this theme come from the Tango palette, which is in +;; the public domain: http://tango.freedesktop.org/ + +;;; Code: + +(deftheme tango-dark + "Theme for faces, based on the Tango palette on a dark background. +Basic, Font Lock, Isearch, Gnus, and Message faces are included.") + +(custom-theme-set-faces + 'tango-dark + '(default ((t (:foreground "#eeeeec" :background "#2e3436")))) + '(cursor ((t (:foreground "#2e3436" :background "#fce94f")))) + '(highlight ((t (:foreground "#2e3436" :background "#edd400")))) + '(region ((t (:background "#555753")))) + '(font-lock-builtin-face ((t (:foreground "#ad7fa8")))) + '(font-lock-comment-face ((t (:foreground "#73d216")))) + '(font-lock-constant-face ((t (:foreground "#e6a8df")))) + '(font-lock-function-name-face ((t (:foreground "#fce94f")))) + '(font-lock-keyword-face ((t (:foreground "#8cc4ff")))) + '(font-lock-string-face ((t (:foreground "#e9b96e")))) + '(font-lock-type-face ((t (:foreground "#a5ff4d")))) + '(font-lock-variable-name-face ((t (:foreground "#fcaf3e")))) + '(font-lock-warning-face ((t (:foreground "#ef2929")))) + '(button ((t (:underline t :foreground "#729fcf")))) + '(link ((t (:underline t :foreground "#729fcf")))) + '(link-visited ((t (:underline t :foreground "#3465a4")))) + '(mode-line ((t (:box (:line-width -1 :style released-button) + :background "#d3d7cf" :foreground "black")))) + '(mode-line-inactive ((t (:box (:line-width -1 :style released-button) + :background "#555753" :foreground "white")))) + '(isearch ((t (:foreground "#ffffff" :background "#ce5c00")))) + '(lazy-highlight ((t (:background "#8f5902")))) + '(gnus-group-news-1 ((t (:foreground "#ad7fa8")))) + '(gnus-group-news-1-low ((t (:foreground "#75507b")))) + '(gnus-group-news-2 ((t (:foreground "#729fcf")))) + '(gnus-group-news-2-low ((t (:foreground "#3465a4")))) + '(gnus-group-news-3 ((t (:foreground "#8ae234")))) + '(gnus-group-news-3-low ((t (:foreground "#73d216")))) + '(gnus-group-news-4 ((t (:foreground "#e9b9e6")))) + '(gnus-group-news-4-low ((t (:foreground "#c17d11")))) + '(gnus-group-news-5 ((t (:foreground "#fcaf3e")))) + '(gnus-group-news-5-low ((t (:foreground "#f57900")))) + '(gnus-group-news-low ((t (:foreground "#edd400")))) + '(gnus-group-mail-1 ((t (:foreground "#ad7fa8")))) + '(gnus-group-mail-1-low ((t (:foreground "#75507b")))) + '(gnus-group-mail-2 ((t (:foreground "#729fcf")))) + '(gnus-group-mail-2-low ((t (:foreground "#3465a4")))) + '(gnus-group-mail-3 ((t (:foreground "#8ae234")))) + '(gnus-group-mail-3-low ((t (:foreground "#73d216")))) + '(gnus-group-mail-low ((t (:foreground "#edd400")))) + '(gnus-header-content ((t (:weight normal :foreground "#c4a000")))) + '(gnus-header-from ((t (:foreground "#edd400")))) + '(gnus-header-subject ((t (:foreground "#8ae234")))) + '(gnus-header-name ((t (:foreground "#729fcf")))) + '(gnus-header-newsgroups ((t (:foreground "#c17d11")))) + '(message-header-name ((t (:foreground "#729fcf")))) + '(message-header-cc ((t (:foreground "#c4a000")))) + '(message-header-other ((t (:foreground "#c17d11")))) + '(message-header-subject ((t (:foreground "#8ae234")))) + '(message-header-to ((t (:foreground "#edd400")))) + '(message-cited-text ((t (:foreground "#8ae234")))) + '(message-separator ((t (:foreground "#ad7fa8"))))) + +(provide-theme 'tango-dark) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; tango-dark-theme.el ends here diff --git a/lisp/themes/tango-theme.el b/lisp/themes/tango-theme.el new file mode 100644 index 00000000000..f0492c048af --- /dev/null +++ b/lisp/themes/tango-theme.el @@ -0,0 +1,92 @@ +;;; tango-theme.el --- Tango-based custom theme for faces + +;; Copyright (C) 2010 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary + +;; The colors in this theme come from the Tango palette, which is in +;; the public domain: http://tango.freedesktop.org/ + +;;; Code: + +(deftheme tango + "Theme for faces, based on the Tango palette on a light background. +Basic, Font Lock, Isearch, Gnus, and Message faces are included.") + +(custom-theme-set-faces + 'tango + '(default ((t (:foreground "#16191a" :background "#eeeeec")))) + '(cursor ((t (:foreground "#eeeeec" :background "#204a87")))) + '(highlight ((t (:background "#babdb6")))) + '(region ((t (:background "#babdb6")))) + '(font-lock-builtin-face ((t (:weight bold :foreground "#204a87")))) + '(font-lock-comment-face ((t (:foreground "#204a87")))) + '(font-lock-constant-face ((t (:weight bold :foreground "#5c3566")))) + '(font-lock-function-name-face ((t (:weight bold :foreground "#ce5c00")))) + '(font-lock-keyword-face ((t (:foreground "#a40000")))) + '(font-lock-string-face ((t (:foreground "#5c3566")))) + '(font-lock-type-face ((t (:weight bold :foreground "#4e9a06")))) + '(font-lock-variable-name-face ((t (:weight bold :foreground "#c17d11")))) + '(font-lock-warning-face ((t (:foreground "#cc0000")))) + '(button ((t (:underline t :foreground "#204a87")))) + '(link ((t (:underline t :foreground "#204a87")))) + '(link-visited ((t (:underline t :foreground "#3465a4")))) + '(mode-line ((t (:box (:line-width -1 :style released-button) + :background "#d3d7cf" :foreground "black")))) + '(mode-line-inactive ((t (:box (:line-width -1 :style released-button) + :background "#babdb6" :foreground "black")))) + '(isearch ((t (:foreground "#ffffff" :background "#ce5c00")))) + '(lazy-highlight ((t (:background "#e9b96e")))) + '(gnus-group-news-1 ((t (:weight bold :foreground "#5c3566")))) + '(gnus-group-news-1-low ((t (:foreground "#5c3566")))) + '(gnus-group-news-2 ((t (:weight bold :foreground "#204a87")))) + '(gnus-group-news-2-low ((t (:foreground "#204a87")))) + '(gnus-group-news-3 ((t (:weight bold :foreground "#4e0a06")))) + '(gnus-group-news-3-low ((t (:foreground "#4e0a06")))) + '(gnus-group-news-4 ((t (:weight bold :foreground "#7a4c02")))) + '(gnus-group-news-4-low ((t (:foreground "#7a4c02")))) + '(gnus-group-news-5 ((t (:weight bold :foreground "#ce5c00")))) + '(gnus-group-news-5-low ((t (:foreground "#ce5c00")))) + '(gnus-group-news-low ((t (:foreground "#888a85")))) + '(gnus-group-mail-1 ((t (:weight bold :foreground "#5c3566")))) + '(gnus-group-mail-1-low ((t (:foreground "#5c3566")))) + '(gnus-group-mail-2 ((t (:weight bold :foreground "#204a87")))) + '(gnus-group-mail-2-low ((t (:foreground "#204a87")))) + '(gnus-group-mail-3 ((t (:weight bold :foreground "#4e0a06")))) + '(gnus-group-mail-3-low ((t (:foreground "#4e0a06")))) + '(gnus-group-mail-low ((t (:foreground "#888a85")))) + '(gnus-header-content ((t (:foreground "#4e9a06")))) + '(gnus-header-from ((t (:weight bold :foreground "#c4a000")))) + '(gnus-header-subject ((t (:foreground "#4e0a06")))) + '(gnus-header-name ((t (:foreground "#204a87")))) + '(gnus-header-newsgroups ((t (:foreground "#888a85")))) + '(message-header-name ((t (:foreground "#204a87")))) + '(message-header-cc ((t (:foreground "#c4a000")))) + '(message-header-other ((t (:foreground "#c17d11")))) + '(message-header-subject ((t (:foreground "#4e0a06")))) + '(message-header-to ((t (:weight bold :foreground "#c4a000")))) + '(message-cited-text ((t (:foreground "#888a85")))) + '(message-separator ((t (:weight bold :foreground "#4e9a06"))))) + +(provide-theme 'tango) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; tango-theme.el ends here diff --git a/lisp/themes/wheatgrass-theme.el b/lisp/themes/wheatgrass-theme.el new file mode 100644 index 00000000000..848e5e95073 --- /dev/null +++ b/lisp/themes/wheatgrass-theme.el @@ -0,0 +1,66 @@ +;;; wheatgrass-theme.el --- custom theme for faces + +;; Copyright (C) 2010 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Code: + +(deftheme wheatgrass + "Theme for basic, Font Lock, Isearch, Gnus, and Message faces. +The default face is wheat on a black background. Other faces +are in shades of green, brown, and blue.") + +(custom-theme-set-faces + 'wheatgrass + '(default ((t (:foreground "wheat" :background "black")))) + '(cursor ((t (:foreground "black" :background "thistle")))) + '(highlight ((t (:foreground "white" :background "dark green")))) + '(region ((t (:foreground "white" :background "dark green")))) + '(font-lock-builtin-face ((t (:foreground "LightSteelBlue")))) + '(font-lock-comment-face ((t (:foreground "SpringGreen3")))) + '(font-lock-constant-face ((t (:foreground "turquoise")))) + '(font-lock-function-name-face ((t (:foreground "pale green")))) + '(font-lock-keyword-face ((t (:foreground "white")))) + '(font-lock-string-face ((t (:foreground "dark khaki")))) + '(font-lock-type-face ((t (:foreground "aquamarine")))) + '(font-lock-variable-name-face ((t (:foreground "yellow green")))) + '(font-lock-warning-face ((t (:foreground "salmon1")))) + '(button ((t (:underline t :foreground "cyan")))) + '(link ((t (:underline t :foreground "cyan")))) + '(link-visited ((t (:underline t :foreground "dark cyan")))) + '(isearch ((t (:foreground "white" :background "dark goldenrod")))) + '(lazy-highlight ((t (:background "gray25")))) + '(gnus-header-content ((t (:weight normal :foreground "yellow green")))) + '(gnus-header-from ((t (:foreground "pale green")))) + '(gnus-header-subject ((t (:foreground "pale turquoise")))) + '(gnus-header-name ((t (:foreground "dark sea green")))) + '(gnus-header-newsgroups ((t (:foreground "dark khaki")))) + '(message-header-name ((t (:foreground "dark turquoise")))) + '(message-header-cc ((t (:foreground "yellow green")))) + '(message-header-other ((t (:foreground "dark khaki")))) + '(message-header-subject ((t (:foreground "pale turquoise")))) + '(message-header-to ((t (:foreground "pale green")))) + '(message-cited-text ((t (:foreground "SpringGreen3")))) + '(message-separator ((t (:foreground "deep sky blue"))))) + +(provide-theme 'wheatgrass) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; wheatgrass-theme.el ends here