;;; 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: