2012-10-12 15:23:36 +02:00
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; THEME
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
2013-09-30 19:11:22 +02:00
|
|
|
;; I've tried to group colors with some consistency:
|
2013-07-29 13:13:41 +02:00
|
|
|
;; * doc, here-doc, comments, strings
|
2015-05-07 19:28:31 +02:00
|
|
|
;; * variables, types, functions
|
|
|
|
;; * preprocessor, constants, keywords, builtins
|
2013-07-29 13:13:41 +02:00
|
|
|
;; * search highlight, search lazy
|
|
|
|
|
2013-01-08 23:57:55 +01:00
|
|
|
;; To find the variable associated to a currently used color, place the cursor
|
2013-07-29 13:13:41 +02:00
|
|
|
;; on it and call 'describe-face'.
|
2013-01-08 23:57:55 +01:00
|
|
|
|
2013-03-02 19:34:12 +01:00
|
|
|
;; General
|
2013-05-25 13:43:22 +02:00
|
|
|
(set-face-foreground 'default "white" )
|
|
|
|
(set-face-background 'default "black" )
|
2013-06-26 23:54:50 +02:00
|
|
|
;; Font size
|
|
|
|
(if (fboundp 'tool-bar-mode)
|
2013-06-27 17:06:07 +02:00
|
|
|
;; (set-face-attribute 'default nil :height 100)
|
|
|
|
(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10")))
|
2013-06-28 00:10:51 +02:00
|
|
|
(if (string-match "^23.*" emacs-version )
|
|
|
|
(set-face-background 'modeline "white")
|
|
|
|
(set-face-background 'mode-line "white"))
|
2013-05-24 11:44:23 +02:00
|
|
|
|
2013-05-25 13:43:22 +02:00
|
|
|
(set-face-foreground 'link "#00ffff" )
|
2013-03-02 19:34:12 +01:00
|
|
|
(set-face-underline-p 'link t)
|
2013-05-24 12:03:48 +02:00
|
|
|
(set-face-foreground 'minibuffer-prompt "#00ffff" )
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-background 'region "#191970")
|
|
|
|
(set-face-background 'isearch "#8b0000" )
|
|
|
|
(set-face-foreground 'isearch "white" )
|
|
|
|
(set-face-background 'isearch-lazy-highlight-face "#8b4500" )
|
|
|
|
(set-face-foreground 'isearch-lazy-highlight-face "white" )
|
2013-07-09 13:22:19 +02:00
|
|
|
(when (>= emacs-major-version 24)
|
2013-05-22 17:35:54 +02:00
|
|
|
(set-face-foreground 'error "red")
|
2013-07-09 13:22:19 +02:00
|
|
|
(set-face-bold-p 'error t))
|
2013-03-02 19:34:12 +01:00
|
|
|
|
2013-09-30 19:11:22 +02:00
|
|
|
;; Blinking cursor is on only when Emacs is not daemonized.
|
2015-04-19 12:18:54 +02:00
|
|
|
(unless (getenv "EMACS_SERVER")
|
2013-09-30 19:11:22 +02:00
|
|
|
(blink-cursor-mode -1))
|
|
|
|
|
2013-05-24 17:23:01 +02:00
|
|
|
;; Line numbers. Graphic version has a gray bar separating text from line
|
|
|
|
;; numbers, so we can leave the background black.
|
|
|
|
(if (display-graphic-p)
|
|
|
|
(set-face-background 'shadow "black" )
|
2013-07-09 13:22:19 +02:00
|
|
|
(set-face-background 'shadow "#1c1c1c" ))
|
2013-05-24 17:23:01 +02:00
|
|
|
|
2014-10-26 18:04:11 +01:00
|
|
|
;; Whitespace mode
|
|
|
|
(add-hook
|
|
|
|
'whitespace-load-hook
|
|
|
|
(lambda ()
|
2014-11-12 15:09:14 +01:00
|
|
|
(set-face-background 'whitespace-space-after-tab "#a9a9a9")
|
|
|
|
(set-face-background 'whitespace-indentation "#696969")))
|
2014-10-26 18:04:11 +01:00
|
|
|
|
2013-03-02 19:34:12 +01:00
|
|
|
;; Programming
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-foreground 'font-lock-builtin-face "#d2691e" )
|
2013-03-02 19:34:12 +01:00
|
|
|
(set-face-bold-p 'font-lock-builtin-face t )
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-foreground 'font-lock-comment-delimiter-face "#008b8b" )
|
|
|
|
(set-face-foreground 'font-lock-comment-face "#008b8b" )
|
2015-05-07 19:28:31 +02:00
|
|
|
(set-face-foreground 'font-lock-constant-face "#9400d3" )
|
|
|
|
;; (set-face-foreground 'font-lock-constant-face "#1e90ff" )
|
|
|
|
;; (set-face-bold-p 'font-lock-constant-face t )
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-foreground 'font-lock-doc-face "#00bfff" )
|
2015-05-07 19:28:31 +02:00
|
|
|
(set-face-foreground 'font-lock-function-name-face "#d2691e" )
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-foreground 'font-lock-keyword-face "#3cb371" )
|
2012-10-12 15:23:36 +02:00
|
|
|
(set-face-bold-p 'font-lock-keyword-face t )
|
2013-07-29 13:13:41 +02:00
|
|
|
(set-face-foreground 'font-lock-preprocessor-face "#9400d3" )
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-foreground 'font-lock-string-face "#0080d4" )
|
|
|
|
(set-face-foreground 'font-lock-type-face "#aa2a00" )
|
2013-05-24 12:03:48 +02:00
|
|
|
(set-face-foreground 'font-lock-variable-name-face "#ffff00" )
|
2013-03-02 19:34:12 +01:00
|
|
|
(set-face-foreground 'font-lock-warning-face "DarkOrange" )
|
2012-10-12 15:23:36 +02:00
|
|
|
|
2013-07-29 13:13:41 +02:00
|
|
|
;; Sh-mode
|
|
|
|
(add-hook
|
|
|
|
'sh-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(set-face-foreground 'sh-heredoc "#00bfff")
|
|
|
|
(set-face-bold-p 'sh-heredoc nil)))
|
|
|
|
|
2013-07-25 23:26:41 +02:00
|
|
|
;; Eshell
|
|
|
|
(add-hook
|
|
|
|
'eshell-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(set-face-foreground 'eshell-prompt "#008b8b")))
|
|
|
|
|
2013-07-29 13:13:41 +02:00
|
|
|
(add-hook
|
|
|
|
'compilation-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(set-face-foreground 'compilation-column-number "cyan")
|
|
|
|
(set-face-foreground 'compilation-line-number "cyan")
|
|
|
|
(set-face-foreground 'compilation-error "red")
|
|
|
|
(set-face-foreground 'compilation-info "green")
|
|
|
|
))
|
|
|
|
|
|
|
|
;; C additional keywords.
|
2015-05-07 19:28:31 +02:00
|
|
|
(mapcar
|
|
|
|
(lambda (mode)
|
|
|
|
(font-lock-add-keywords
|
|
|
|
mode
|
|
|
|
'(("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)
|
|
|
|
; ("&" . font-lock-keyword-face)
|
|
|
|
;; Colour function calls.
|
|
|
|
("\\<\\(\\sw+\\)(" 1 'font-lock-function-name-face)
|
|
|
|
("\\<\\(\\sw+\\)<\\sw+>(" 1 'font-lock-function-name-face))))
|
|
|
|
'(c-mode c++-mode))
|
2013-07-25 23:26:41 +02:00
|
|
|
|
2013-01-08 23:57:55 +01:00
|
|
|
;; Ediff
|
|
|
|
(add-hook
|
|
|
|
'ediff-mode-hook
|
|
|
|
(lambda ()
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-fine-diff-A "#2a0000")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-fine-diff-A nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-fine-diff-B "#2a0000")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-fine-diff-B nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-fine-diff-C "#2a0000")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-fine-diff-C nil)
|
2013-02-17 21:35:32 +01:00
|
|
|
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-current-diff-A "#00002a")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-current-diff-A nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-current-diff-B "#00002a")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-current-diff-B nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-current-diff-C "#00002a")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-current-diff-C nil)
|
2013-02-17 21:35:32 +01:00
|
|
|
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-even-diff-A "#303030")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-even-diff-A nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-even-diff-B "#303030")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-even-diff-B nil)
|
2013-05-24 11:44:23 +02:00
|
|
|
(set-face-background 'ediff-even-diff-C "#303030")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-even-diff-C nil)
|
2013-02-17 21:35:32 +01:00
|
|
|
|
2015-09-10 09:57:58 +02:00
|
|
|
(set-face-background 'ediff-odd-diff-A "#696969")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-odd-diff-A nil)
|
2015-09-10 09:57:58 +02:00
|
|
|
(set-face-background 'ediff-odd-diff-B "#696969")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-odd-diff-B nil)
|
2015-09-10 09:57:58 +02:00
|
|
|
(set-face-background 'ediff-odd-diff-C "#696969")
|
2013-03-15 22:38:01 +01:00
|
|
|
(set-face-foreground 'ediff-odd-diff-C nil)))
|
2012-10-12 15:23:36 +02:00
|
|
|
|
2013-01-10 15:57:07 +01:00
|
|
|
;; Show paren.
|
2013-07-09 13:22:19 +02:00
|
|
|
(when (boundp 'show-paren-delay)
|
2015-04-17 16:15:27 +02:00
|
|
|
;; (set-face-background 'show-paren-match-face (face-background 'default)) ; Disable background color.
|
2015-04-17 16:34:30 +02:00
|
|
|
(set-face-background 'show-paren-match-face "#555555")
|
2013-07-09 11:25:15 +02:00
|
|
|
(set-face-foreground 'show-paren-match-face "#def")
|
|
|
|
(set-face-attribute 'show-paren-match-face nil :weight 'extra-bold))
|
2012-10-12 15:23:36 +02:00
|
|
|
|
2013-01-08 23:57:55 +01:00
|
|
|
;; Make Emacs and Mutt colors fit.
|
2012-10-12 15:23:36 +02:00
|
|
|
(font-lock-add-keywords
|
|
|
|
'mail-mode
|
|
|
|
'(
|
|
|
|
("^From:" . font-lock-preprocessor-face)
|
|
|
|
("^Subject:" . font-lock-warning-face)
|
2013-07-29 13:56:35 +02:00
|
|
|
("^Reply-To:" . font-lock-type-face)
|
2012-10-12 15:23:36 +02:00
|
|
|
("^In-Reply-To:" . font-lock-builtin-face)
|
|
|
|
;; Mail addresses.
|
2013-02-05 22:32:30 +01:00
|
|
|
("\\([[:alnum:]._-]+@[[:alnum:]._-]+\.[[:alnum:]._-]+\\)" 1 font-lock-string-face)
|
2012-10-12 15:23:36 +02:00
|
|
|
;; Quote
|
|
|
|
("^\> *\\([^\> ]\\).*$" . font-lock-doc-face)
|
2013-07-29 13:56:35 +02:00
|
|
|
;; Quote+
|
2012-10-12 15:23:36 +02:00
|
|
|
("^\> *\> *\\([^\> ]\\).*$" . font-lock-constant-face)
|
|
|
|
("^\> *\> *\> *\\([^\> ]\\).*$" . font-lock-type-face)
|
|
|
|
("^\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-variable-name-face)
|
|
|
|
("^\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
|
|
|
|
("^\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
|
|
|
|
("^\> *\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
|
|
|
|
("^\> *\> *\> *\> *\> *\> *\> *\> *\\([^\> ]\\).*$" . font-lock-comment-face)
|
|
|
|
;; Signature
|
2013-07-31 08:35:25 +02:00
|
|
|
;; TODO: mail signature face does not work properly.
|
2013-03-02 19:34:12 +01:00
|
|
|
("^--.*\\(\n.*\\)*" . font-lock-comment-face)))
|
2012-10-12 15:23:36 +02:00
|
|
|
|
2013-03-02 19:34:12 +01:00
|
|
|
;; Key notes highlighting. We need to apply it to the mode hook since
|
|
|
|
;; font-lock-add-keywords has no inheritance support.
|
2012-10-12 15:23:36 +02:00
|
|
|
(mapcar
|
2013-03-02 19:34:12 +01:00
|
|
|
(lambda (mode-hook)
|
|
|
|
(add-hook
|
|
|
|
mode-hook
|
|
|
|
(lambda () (interactive)
|
|
|
|
(font-lock-add-keywords
|
|
|
|
nil
|
|
|
|
'(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
|
|
|
|
("\\<\\(TODO\\):" 1 font-lock-warning-face prepend)
|
|
|
|
("\\<\\(WARNING\\):" 1 font-lock-warning-face prepend))))))
|
2014-03-09 12:24:26 +01:00
|
|
|
'(prog-mode-hook tex-mode-hook texinfo-mode-hook))
|
2013-03-02 19:34:12 +01:00
|
|
|
;; Digits regex are not perfect, and may make emacs slow. Sure?
|
|
|
|
;; ("[^[:digit:][:space:]][[:space:]]*\\(-\\)[[:digit:]]+" 1 font-lock-constant-face)
|
|
|
|
;; ("\\(0x[[:digit:]a-fA-F]+\\)[^[:alnum:]_]" 1 font-lock-constant-face)
|
|
|
|
;; ("[^[:alnum:]_]\\([[:digit:]]*\\.?[[:digit:]]+\\)[^[:alnum:]_.]" 1 font-lock-constant-face)
|
|
|
|
|
2014-10-08 11:05:31 +02:00
|
|
|
;; Man pages
|
|
|
|
(add-hook
|
|
|
|
'Man-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(set-face-foreground 'Man-underline "yellow")
|
|
|
|
(set-face-foreground 'Man-overstrike "cyan")
|
|
|
|
(set-face-bold-p 'Man-overstrike nil)))
|
|
|
|
|
|
|
|
|
2014-03-08 11:48:35 +01:00
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(provide 'theme)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
2014-10-08 11:05:31 +02:00
|
|
|
;; Old attempts.
|
2014-03-08 11:48:35 +01:00
|
|
|
|
2012-10-12 15:23:36 +02:00
|
|
|
;; C-mode printf highlight.
|
2014-10-31 13:06:03 +01:00
|
|
|
;; (defvar font-lock-format-specifier-face 'font-lock-format-specifier-face
|
2013-01-10 15:57:07 +01:00
|
|
|
;; "Face name to use for format specifiers.")
|
|
|
|
;; (defface font-lock-format-specifier-face
|
|
|
|
;; '((t (:foreground "OrangeRed1")))
|
|
|
|
;; "Font Lock mode face used to highlight format specifiers."
|
|
|
|
;; :group 'font-lock-faces)
|
2013-02-26 18:30:31 +01:00
|
|
|
;; TODO: disable highlighting outside of string.
|
2013-01-10 15:57:07 +01:00
|
|
|
;; (add-hook
|
|
|
|
;; 'c-mode-common-hook
|
|
|
|
;; (lambda ()
|
|
|
|
;; (font-lock-add-keywords
|
|
|
|
;; nil
|
|
|
|
;; '(("[^%]\\(%\\([[:digit:]]+\\$\\)?[-+' #0*]*\\([[:digit:]]*\\|\\*\\|\\*[[:digit:]]+\\$\\)\\(\\.\\([[:digit:]]*\\|\\*\\|\\*[[:digit:]]+\\$\\)\\)?\\([hlLjzt]\\|ll\\|hh\\)?\\([aAbdiuoxXDOUfFeEgGcCsSpn]\\|\\[\\^?.[^]]*\\]\\)\\)"
|
|
|
|
;; 1 font-lock-format-specifier-face t)
|
2013-03-02 19:34:12 +01:00
|
|
|
;; ("\\(%%\\)"
|
2013-01-10 15:57:07 +01:00
|
|
|
;; 1 font-lock-format-specifier-face t)) )))
|