Tangotango dark emacs color theme
Par Juba le mercredi 10 février 2010, 16:54 - Emacs, Gnus - Lien permanent
UPDATE : This entry is deprecated ! Source code has been moved to Github and installation instructions have been rewritten.
I always have used the default Emacs color theme, with a white background. Recently I wanted to switch to a dark background but didn’t find a color scheme taht I’d like enough to use, so Is tarted to create one myself. In fact I started with the tango color theme on EmacsWiki, modified a bit, and added some faces to support gnus and org-mode as I use them a lot.
The result is a color theme named tangotango whose code is the following :
(defun color-theme-tangotango () "A color theme based on Tango Palette." (interactive) (color-theme-install '(color-theme-tango ((background-color . "#2e3436") (background-mode . dark) (border-color . "#888a85") (cursor-color . "#fce94f") (foreground-color . "#eeeeec") (mouse-color . "#8ae234")) ((help-highlight-face . underline) (ibuffer-dired-buffer-face . font-lock-function-name-face) (ibuffer-help-buffer-face . font-lock-comment-face) (ibuffer-hidden-buffer-face . font-lock-warning-face) (ibuffer-occur-match-face . font-lock-warning-face) (ibuffer-read-only-buffer-face . font-lock-type-face) (ibuffer-special-buffer-face . font-lock-keyword-face) (ibuffer-title-face . font-lock-type-face)) (highlight ((t (:background "brown4" :foreground nil)))) (border ((t (:background "#888a85")))) (fringe ((t (:background "grey10")))) (mode-line ((t (:foreground "#bbbbbc" :background "#222222" :box (:line-width 1 :color nil :style released-button))))) (mode-line-inactive ((t (:foreground "#bbbbbc" :background "#555753")))) (mode-line-buffer-id ((t (:bold t :foreground "orange" :background nil)))) (region ((t (:background "dark slate blue")))) (link ((t (:underline t :foreground "dodger blue")))) (custom-link ((t (:inherit 'link)))) (match ((t (:bold t :background "#e9b96e" :foreground "#2e3436")))) (tool-tips ((t (:inherit 'variable-pitch :foreground "black" :background "lightyellow")))) (tooltip ((t (:inherit 'variable-pitch :foreground "black" :background "lightyellow")))) (bold ((t (:bold t :underline nil :background nil)))) (italic ((t (:italic t :underline nil :background nil)))) (font-lock-builtin-face ((t (:foreground "#729fcf")))) (font-lock-comment-face ((t (:foreground "#888a85")))) (font-lock-constant-face ((t (:foreground "#8ae234")))) (font-lock-doc-face ((t (:foreground "#888a85")))) (font-lock-keyword-face ((t (:foreground "#729fcf" :bold t)))) (font-lock-string-face ((t (:foreground "#ad7fa8" :italic t)))) (font-lock-type-face ((t (:foreground "#8ae234" :bold t)))) (font-lock-variable-name-face ((t (:foreground "tomato")))) (font-lock-warning-face ((t (:bold t :foreground "#f57900")))) (font-lock-function-name-face ((t (:foreground "#edd400" :bold t)))) (comint-highlight-input ((t (:italic t :bold t)))) (comint-highlight-prompt ((t (:foreground "#8ae234")))) (isearch ((t (:background "#f57900" :foreground "#2e3436")))) (isearch-lazy-highlight-face ((t (:foreground "#2e3436" :background "#e9b96e")))) (show-paren-match-face ((t (:foreground "#2e3436" :background "#73d216")))) (show-paren-mismatch-face ((t (:background "#ad7fa8" :foreground "#2e3436")))) (minibuffer-prompt ((t (:foreground "#729fcf" :bold t)))) (info-xref ((t (:foreground "#729fcf")))) (info-xref-visited ((t (:foreground "#ad7fa8")))) (diary-face ((t (:bold t :foreground "IndianRed")))) (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray")))) (eshell-ls-executable-face ((t (:bold t :foreground "Coral")))) (eshell-ls-missing-face ((t (:bold t :foreground "black")))) (eshell-ls-special-face ((t (:bold t :foreground "Gold")))) (eshell-ls-symlink-face ((t (:bold t :foreground "White")))) (widget-button ((t (:bold t)))) (widget-mouse-face ((t (:bold t :foreground "white" :background "brown4")))) (widget-field ((t (:foreground "orange" :background "gray30")))) (widget-single-line-field ((t (:foreground "orange" :background "gray30")))) (custom-group-tag ((t (:bold t :foreground "#edd400" :height 1.3)))) (custom-variable-tag ((t (:bold t :foreground "#edd400" :height 1.1)))) (custom-face-tag ((t (:bold t :foreground "#edd400" :height 1.1)))) (custom-state-face ((t (:foreground "#729fcf")))) (custom-button ((t (:box (:line-width 1 :style released-button) :background "grey50" :foreground "black")))) (custom-variable-button ((t (:inherit 'custom-button)))) (custom-button-mouse ((t (:inherit 'custom-button :background "grey60")))) (custom-button-unraised ((t (:background "grey50" :foreground "black")))) (custom-button-mouse-unraised ((t (:inherit 'custom-button-unraised :background "grey60")))) (custom-button-pressed ((t (:inherit 'custom-button :box (:style pressed-button))))) (custom-button-mouse-pressed-unraised ((t (:inherit 'custom-button-unraised :background "grey60")))) (custom-documentation ((t (:italic t)))) (message-cited-text ((t (:foreground "#edd400")))) (gnus-cite-face-1 ((t (:foreground "#ad7fa8")))) (gnus-cite-face-2 ((t (:foreground "sienna4")))) (gnus-cite-face-3 ((t (:foreground "khaki4")))) (gnus-cite-face-4 ((t (:foreground "PaleTurquoise4")))) (gnus-group-mail-1-empty-face ((t (:foreground "light cyan")))) (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan")))) (gnus-group-mail-2-empty-face ((t (:foreground "turquoise")))) (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise")))) (gnus-group-mail-3-empty-face ((t (:foreground "#729fcf")))) (gnus-group-mail-3-face ((t (:bold t :foreground "#edd400")))) (gnus-group-mail-low-empty-face ((t (:foreground "dodger blue")))) (gnus-group-mail-low-face ((t (:bold t :foreground "dodger blue")))) (gnus-group-news-1-empty-face ((t (:foreground "light cyan")))) (gnus-group-news-1-face ((t (:bold t :foreground "light cyan")))) (gnus-group-news-2-empty-face ((t (:foreground "turquoise")))) (gnus-group-news-2-face ((t (:bold t :foreground "turquoise")))) (gnus-group-news-3-empty-face ((t (:foreground "#729fcf")))) (gnus-group-news-3-face ((t (:bold t :foreground "#edd400")))) (gnus-group-news-low-empty-face ((t (:foreground "dodger blue")))) (gnus-group-news-low-face ((t (:bold t :foreground "dodger blue")))) (gnus-header-name-face ((t (:bold t :foreground "#729fcf")))) (gnus-header-from ((t (:bold t :foreground "#edd400")))) (gnus-header-subject ((t (:foreground "#edd400")))) (gnus-header-content ((t (:italic t :foreground "#8ae234")))) (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) (gnus-signature-face ((t (:italic t :foreground "dark grey")))) (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) (gnus-summary-high-ancient-face ((t (:bold t :foreground "rotal blue")))) (gnus-summary-high-read-face ((t (:bold t :foreground "lime green")))) (gnus-summary-high-ticked-face ((t (:bold t :foreground "tomato")))) (gnus-summary-high-unread-face ((t (:bold t :foreground "white")))) (gnus-summary-low-ancient-face ((t (:italic t :foreground "lime green")))) (gnus-summary-low-read-face ((t (:italic t :foreground "royal blue")))) (gnus-summary-low-ticked-face ((t (:italic t :foreground "dark red")))) (gnus-summary-low-unread-face ((t (:italic t :foreground "white")))) (gnus-summary-normal-ancient-face ((t (:foreground "royal blue")))) (gnus-summary-normal-read-face ((t (:foreground "lime green")))) (gnus-summary-normal-ticked-face ((t (:foreground "indian red")))) (gnus-summary-normal-unread-face ((t (:foreground "white")))) (gnus-summary-selected ((t (:background "brown4" :foreground "white")))) (message-header-name-face ((t (:foreground "tomato")))) (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3")))) (message-header-other-face ((t (:foreground "LightSkyBlue3")))) (message-header-xheader-face ((t (:foreground "DodgerBlue3")))) (message-header-subject ((t (:foreground "white")))) (message-header-to ((t (:foreground "white")))) (message-header-cc ((t (:foreground "white")))) (org-hide ((t (:foreground "#2e3436")))) (org-level-1 ((t (:bold t :foreground "dodger blue" :height 1.5)))) (org-level-2 ((t (:bold t :foreground "#6ac214" :height 1.2)))) (org-level-3 ((t (:bold t :foreground "#edd400" :height 1.1)))) (org-level-4 ((t (:bold t :foreground "tomato" :height 1.0)))) (org-date ((t (:underline t :foreground "magenta3")))) (org-footnote ((t (:underline t :foreground "magenta3")))) (org-link ((t (:foreground "skyblue2" :background "#2e3436")))) (org-special-keyword ((t (:foreground "brown")))) (org-verbatim ((t (:foreground "#eeeeec" :underline t :slant italic)))) (org-block ((t (:foreground "#bbbbbc")))) (org-quote ((t (:inherit org-block :slant italic)))) (org-verse ((t (:inherit org-block :slant italic)))) (org-todo ((t (:bold t :foreground "Red")))) (org-done ((t (:bold t :foreground "ForestGreen")))) (anything-header ((t (:bold t :background "grey15" :foreground "#edd400")))) )))
Obviously you need to install and configure the color-theme Emacs extension to use it. You will find instructions on the dedicated EmacsWiki page. The setup I use is the following :
(require 'color-theme) (color-theme-initialize) (setq color-theme-is-global t) (setq color-theme-is-cumulative t) (setq color-theme-load-all-themes nil) (color-theme-tangotango) (add-hook 'message-mode-hook 'color-theme-tangotango) (add-hook 'gnus-article-mode-hook 'color-theme-tangotango) (add-hook 'after-make-frame-functions (lambda (frame) (set-variable 'color-theme-is-global nil) (select-frame frame) (if window-system (color-theme-tangotango) (color-theme-tty-dark))))
Here is a screenshot of the color theme with an emacs-lisp file :
One with a Gnus summary and article buffers :
And one with an org-mode buffer :
Feel free to give any feedback !
Commentaires
I love it, adopted.
pas mal!
had to add
(provide 'color-theme-tangotango)
to make it work, though...
Bonjour, j'aurais aimé utiliser ton thème mais je ne parviens pas à l'installer :/
J'y suis parvenu pour tango mais pour celui-ci j'ai eu beau retourner le problème dans tous les sens, je n'ai plus d'idée.
Pourquoi est-ce qu'on ne peut pas faire de require avec celui-ci ?
J'ai une erreur : Required feature `color-theme-tangotango' was not provided
Bonjour Ced,
Est-ce que tu as utilisé le code que j'ai indiqué, ou bien tu as tout mis dans un fichier à part ?
À mon avis ça devrait passer en ajoutant le (provide 'color-theme-tangotango) indiqué dans le commentaire précédent...
Bonsoir :),
J'ai placé la fonction color-theme-tangotango() dans un fichier color-theme-tangotango.el placé dans ~/.emacs.d/themes et j'ai inséré le code qui suit dans mon fichier .emacs.el :
;; Color-theme
(add-to-list 'load-path "~/.emacs.d/themes")
(require 'color-theme)
(color-theme-initialize)
(setq color-theme-is-global t)
(setq color-theme-is-cumulative t)
(setq color-theme-load-all-themes nil)
(color-theme-tangotango)
(add-hook 'message-mode-hook 'color-theme-tangotango)
(add-hook 'gnus-article-mode-hook 'color-theme-tangotango)
(add-hook 'after-make-frame-functions
(lambda (frame)
(set-variable 'color-theme-is-global nil)
(select-frame frame)
(if window-system
(color-theme-tangotango)
(color-theme-tty-dark))))
Cependant chez moi la fonction color-theme-initialize n'existe pas donc j'ai enlevé cette ligne du coup j'ai l'erreur Symbol's function definition is void: color-theme-tangotango.
(provide 'color-theme-tangotango) c'est à la fin du fichier color-theme-tangotango que je dois le placer ?
Merci d'avance
D'abord ça ne me semble pas logique que la fonction (color-theme-initialize) ne soit pas présente. Tu as bien installé color-theme.el ?
Sinon une solution serait d'utiliser load-file à la place de require, quelque chose du genre (load-file "color-theme-tangotango.el"), en copiant le code de mon billet dans ton fichier color-theme-tangotango.el.
Et sinon encore, regarder là :
http://www.emacswiki.org/emacs/Colo...
Pfiou okay ça fonctionne bien maintenant, j'avais ajouté le dossier contenant les themes a mon loadpath mais pas celui contenant color-theme.el -.-
Merci pour tout, je suis content j'ai enfin un joli theme pour mon emacs :D.
Bonne journée
wonderful,but I noticed that I must install color-theme-tango before or it will go wrong.
So good ! I love it. So great for scripting and email ! I've to use the org-mode :D