261 lines
10 KiB
EmacsLisp
261 lines
10 KiB
EmacsLisp
;;; Code:
|
|
|
|
(deftheme barak "Barak's Theme")
|
|
|
|
;;; Color Palette
|
|
|
|
(defvar zenburn-colors-alist
|
|
'(("zenburn-fg+1" . "#FFFFEF")
|
|
("zenburn-fg" . "#DCDCCC")
|
|
("zenburn-fg-1" . "#656555")
|
|
("zenburn-bg-2" . "#000000")
|
|
("zenburn-bg-1" . "#2B2B2B")
|
|
("zenburn-bg-05" . "#383838")
|
|
("zenburn-bg" . "#3F3F3F")
|
|
("zenburn-bg+1" . "#4F4F4F")
|
|
("zenburn-bg+2" . "#5F5F5F")
|
|
("zenburn-bg+3" . "#6F6F6F")
|
|
("zenburn-red+1" . "#DCA3A3")
|
|
("zenburn-red" . "#CC9393")
|
|
("zenburn-red-1" . "#BC8383")
|
|
("zenburn-red-2" . "#AC7373")
|
|
("zenburn-red-3" . "#9C6363")
|
|
("zenburn-red-4" . "#8C5353")
|
|
("zenburn-orange" . "#DFAF8F")
|
|
("zenburn-yellow" . "#F0DFAF")
|
|
("zenburn-yellow-1" . "#E0CF9F")
|
|
("zenburn-yellow-2" . "#D0BF8F")
|
|
("zenburn-green-1" . "#5F7F5F")
|
|
("zenburn-green" . "#7F9F7F")
|
|
("zenburn-green+1" . "#8FB28F")
|
|
("zenburn-green+2" . "#9FC59F")
|
|
("zenburn-green+3" . "#AFD8AF")
|
|
("zenburn-green+4" . "#BFEBBF")
|
|
("zenburn-cyan" . "#93E0E3")
|
|
("zenburn-blue+1" . "#94BFF3")
|
|
("zenburn-blue" . "#8CD0D3")
|
|
("zenburn-blue-1" . "#7CB8BB")
|
|
("zenburn-blue-2" . "#6CA0A3")
|
|
("zenburn-blue-3" . "#5C888B")
|
|
("zenburn-blue-4" . "#4C7073")
|
|
("zenburn-blue-5" . "#366060")
|
|
("zenburn-magenta" . "#DC8CC3")))
|
|
|
|
(defvar barak-colors-alist
|
|
'(("background" . "#000000")
|
|
("cursor" . "#A7A7A7")
|
|
("fg-default" . "#E0E0E0")
|
|
("mouse" . "sienna1")
|
|
("comment" . "#238E23")
|
|
("constant" . "#E3AC3D")
|
|
("docstring" . "DarkOrange")
|
|
("zenburn-fg+1" . "#FFFFEF")
|
|
("zenburn-fg" . "#DCDCCC")
|
|
("zenburn-fg-1" . "#656555")
|
|
("zenburn-bg-2" . "#000000")
|
|
("zenburn-bg-1" . "#2B2B2B")
|
|
("zenburn-bg-05" . "#383838")
|
|
("zenburn-bg" . "#3F3F3F")
|
|
("zenburn-bg+1" . "#4F4F4F")
|
|
("zenburn-bg+2" . "#5F5F5F")
|
|
("zenburn-bg+3" . "#6F6F6F")
|
|
("zenburn-red+1" . "#DCA3A3")
|
|
("zenburn-red" . "#CC9393")
|
|
("zenburn-red-1" . "#BC8383")
|
|
("zenburn-red-2" . "#AC7373")
|
|
("zenburn-red-3" . "#9C6363")
|
|
("zenburn-red-4" . "#8C5353")
|
|
("zenburn-orange" . "#DFAF8F")
|
|
("zenburn-yellow" . "#F0DFAF")
|
|
("zenburn-yellow-1" . "#E0CF9F")
|
|
("zenburn-yellow-2" . "#D0BF8F")
|
|
("zenburn-green-1" . "#5F7F5F")
|
|
("zenburn-green" . "#7F9F7F")
|
|
("zenburn-green+1" . "#8FB28F")
|
|
("zenburn-green+2" . "#9FC59F")
|
|
("zenburn-green+3" . "#AFD8AF")
|
|
("zenburn-green+4" . "#BFEBBF")
|
|
("zenburn-cyan" . "#93E0E3")
|
|
("zenburn-blue+1" . "#94BFF3")
|
|
("zenburn-blue" . "#8CD0D3")
|
|
("zenburn-blue-1" . "#7CB8BB")
|
|
("zenburn-blue-2" . "#6CA0A3")
|
|
("zenburn-blue-3" . "#5C888B")
|
|
("zenburn-blue-4" . "#4C7073")
|
|
("zenburn-blue-5" . "#366060")
|
|
("zenburn-magenta" . "#DC8CC3"))
|
|
"List of Zenburn colors.
|
|
Each element has the form (NAME . HEX).")
|
|
|
|
|
|
(defmacro barak-with-color-variables (&rest body)
|
|
"`let' bind all colors defined in `zenburn-colors-alist' around BODY.
|
|
Also bind `class' to ((class color) (min-colors 89))."
|
|
(declare (indent 0))
|
|
`(let ((class '((class color) (min-colors 89)))
|
|
,@(mapcar (lambda (cons)
|
|
(list (intern (car cons)) (cdr cons)))
|
|
barak-colors-alist))
|
|
,@body))
|
|
|
|
(defmacro zenburn-with-color-variables (&rest body)
|
|
"`let' bind all colors defined in `zenburn-colors-alist' around BODY.
|
|
Also bind `class' to ((class color) (min-colors 89))."
|
|
(declare (indent 0))
|
|
`(let ((class '((class color) (min-colors 89)))
|
|
,@(mapcar (lambda (cons)
|
|
(list (intern (car cons)) (cdr cons)))
|
|
zenburn-colors-alist))
|
|
,@body))
|
|
|
|
;;; Theme Faces
|
|
(barak-with-color-variables
|
|
(custom-theme-set-faces
|
|
'barak
|
|
;;;; Built-in
|
|
;;;;; basic coloring
|
|
'(button ((t (:underline t))))
|
|
`(link ((t (:foreground ,zenburn-yellow :underline t :weight bold))))
|
|
`(link-visited ((t (:foreground ,zenburn-yellow-2 :underline t :weight normal))))
|
|
`(default ((t (:foreground ,fg-default :background ,background))))
|
|
`(cursor ((t (:foreground ,cursor :background ,zenburn-fg+1))))
|
|
`(blue ((t (:foreground "blue"))))
|
|
`(bold ((t (:bold t))))
|
|
`(bold-italic ((t (:bold t))))
|
|
`(border-glyph ((t (nil))))
|
|
`(buffers-tab ((t (:background "#121212" :foreground "#E0E0E0"))))
|
|
`(font-lock-builtin-face ((t (:foreground "#E0E0E0"))))
|
|
`(font-lock-comment-face ((t (:foreground "#238E23"))))
|
|
`(font-lock-constant-face ((t (:foreground "#E3AC3D"))))
|
|
`(font-lock-doc-string-face ((t (:foreground "DarkOrange"))))
|
|
`(font-lock-function-name-face ((t (:foreground "#C5A6FF"))))
|
|
`(font-lock-keyword-face ((t (:bold t :foreground "#4876FF"))))
|
|
`(font-lock-preprocessor-face ((t (:foreground "#E9DFEF"))))
|
|
`(font-lock-reference-face ((t (:foreground "#E1634F"))))
|
|
`(font-lock-regexp-grouping-backslash ((t (:foreground "#E9C062"))))
|
|
`(font-lock-regexp-grouping-construct ((t (:foreground "red"))))
|
|
`(font-lock-string-face ((t (:foreground "#F05656"))))
|
|
`(font-lock-type-face ((t (:foreground "#73E1E6"))))
|
|
`(font-lock-variable-name-face ((t (:foreground "#00BFFF"))))
|
|
`(font-lock-warning-face ((t (:bold t :foreground "Pink"))))
|
|
`(gui-element ((t (:background "#A0A0A0" :foreground "black"))))
|
|
`(region ((t (:background "#364458"))))
|
|
`(mode-line ((t (:background "grey75" :foreground "black"))))
|
|
`(highlight ((t (:background "#222222"))))
|
|
`(highline-face ((t (:background "SeaGreen"))))
|
|
`(italic ((t (nil))))
|
|
`(left-margin ((t (nil))))
|
|
`(text-cursor ((t (:background "green" :foreground "black"))))
|
|
`(toolbar ((t (nil))))
|
|
`(tabbar-default ((t (:background "black" :foreground "grey75"))))
|
|
`(tabbar-selected ((t (:background "grey75" :foreground "black"))))
|
|
`(tabbar-highlight ((t (:bold t))))
|
|
`(underline ((nil (:underline nil))))
|
|
'(match ((t (:bold t :background nil))))
|
|
|
|
; company mode
|
|
`(company-tooltip ((t (:background "#303840" :foreground "#e0e0e0"))))
|
|
`(company-tooltip-annotation ((t (:bold t :background "#303840" :foreground "#cae682"))))
|
|
`(company-tooltip-selection ((t (:bold t :background "#505860" :foreground "#ffa000"))))
|
|
`(company-scrollbar-bg ((t (:background "#505860" :foreground "#505860"))))
|
|
`(company-scrollbar-fg ((t (:background "#808890" :foreground "#808890"))))
|
|
; powerline
|
|
`(powerline-active1 ((t (:background "#303840" :foreground "#e0e0e0"))))
|
|
`(powerline-active2 ((t (:background "#505860" :foreground "#ffa000"))))
|
|
; motion-face
|
|
`(spacemacs-motion-face ((t (:background "#5f87ff" :foreground "#ffffff"))))
|
|
`(spacemacs-normal-face ((t (:background "#5f87ff" :foreground "#ffffff"))))
|
|
`(spacemacs-replace-face ((t (:background "#870000" :foreground "#ffffff"))))
|
|
`(spacemacs-visual-face ((t (:background "#ffac00" :foreground "#ffffff"))))
|
|
))
|
|
|
|
;;; Theme Variables
|
|
(zenburn-with-color-variables
|
|
(custom-theme-set-variables
|
|
'barak
|
|
;;;;; ansi-color
|
|
`(ansi-color-names-vector [,zenburn-bg ,zenburn-red ,zenburn-green ,zenburn-yellow
|
|
,zenburn-blue ,zenburn-magenta ,zenburn-cyan ,zenburn-fg])
|
|
;;;;; fill-column-indicator
|
|
`(fci-rule-color ,zenburn-bg-05)
|
|
;;;;; vc-annotate
|
|
`(vc-annotate-color-map
|
|
'(( 20. . ,zenburn-red-1)
|
|
( 40. . ,zenburn-red)
|
|
( 60. . ,zenburn-orange)
|
|
( 80. . ,zenburn-yellow-2)
|
|
(100. . ,zenburn-yellow-1)
|
|
(120. . ,zenburn-yellow)
|
|
(140. . ,zenburn-green-1)
|
|
(160. . ,zenburn-green)
|
|
(180. . ,zenburn-green+1)
|
|
(200. . ,zenburn-green+2)
|
|
(220. . ,zenburn-green+3)
|
|
(240. . ,zenburn-green+4)
|
|
(260. . ,zenburn-cyan)
|
|
(280. . ,zenburn-blue-2)
|
|
(300. . ,zenburn-blue-1)
|
|
(320. . ,zenburn-blue)
|
|
(340. . ,zenburn-blue+1)
|
|
(360. . ,zenburn-magenta)))
|
|
`(vc-annotate-very-old-color ,zenburn-magenta)
|
|
`(vc-annotate-background ,zenburn-bg-1)
|
|
))
|
|
|
|
;;; Rainbow Support
|
|
|
|
;; (declare-function rainbow-mode 'rainbow-mode)
|
|
;; (declare-function rainbow-colorize-by-assoc 'rainbow-mode)
|
|
|
|
(defvar barak-add-font-lock-keywords nil
|
|
"Whether to add font-lock keywords for zenburn color names.
|
|
In buffers visiting library `zenburn-theme.el' the zenburn
|
|
specific keywords are always added. In all other Emacs-Lisp
|
|
buffers this variable controls whether this should be done.
|
|
This requires library `rainbow-mode'.")
|
|
|
|
(defvar barak-colors-font-lock-keywords nil)
|
|
|
|
;; (defadvice rainbow-turn-on (after zenburn activate)
|
|
;; "Maybe also add font-lock keywords for zenburn colors."
|
|
;; (when (and (derived-mode-p 'emacs-lisp-mode)
|
|
;; (or zenburn-add-font-lock-keywords
|
|
;; (equal (file-name-nondirectory (buffer-file-name))
|
|
;; "zenburn-theme.el")))
|
|
;; (unless zenburn-colors-font-lock-keywords
|
|
;; (setq zenburn-colors-font-lock-keywords
|
|
;; `((,(regexp-opt (mapcar 'car zenburn-colors-alist) 'words)
|
|
;; (0 (rainbow-colorize-by-assoc zenburn-colors-alist))))))
|
|
;; (font-lock-add-keywords nil zenburn-colors-font-lock-keywords)))
|
|
|
|
;; (defadvice rainbow-turn-off (after zenburn activate)
|
|
;; "Also remove font-lock keywords for zenburn colors."
|
|
;; (font-lock-remove-keywords nil zenburn-colors-font-lock-keywords))
|
|
|
|
;;; Footer
|
|
|
|
;;;###autoload
|
|
;; (and load-file-name
|
|
;; (boundp 'custom-theme-load-path)
|
|
;; (add-to-list 'custom-theme-load-path
|
|
;; (file-name-as-directory
|
|
;; (file-name-directory load-file-name))))
|
|
|
|
;(defun color-theme-barak-extras ()
|
|
;; Highlight numbers
|
|
;(add-hook 'after-change-major-mode-hook
|
|
;(lambda () (font-lock-add-keywords
|
|
;nil
|
|
;'(("\\<\\(\\(0[xX]\\|0[bB]\\)?-?[0-9a-fA-F]+\\.?[0-9]*?[fFlL]?\\)\\>" 1 '((t (:foreground "#E3AC3D")))))))))
|
|
|
|
(provide-theme 'barak)
|
|
|
|
;;;###autoload
|
|
;; (add-to-list 'safe-local-eval-forms
|
|
;; '(when (require 'rainbow-mode nil t) (rainbow-mode 1)))
|
|
|
|
;; Local Variables:
|
|
;; no-byte-compile: t
|
|
;; indent-tabs-mode: nil
|
|
;; eval: (when (require 'rainbow-mode nil t) (rainbow-mode 1))
|
|
;; End:
|