diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..063a5e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.recentf +.smex-items +session* +elpa/ +backups/ +auto-save-list/ +eln-cache/ +transient/ +url/ +tramp/ +tramp diff --git a/customizations/editing.el b/customizations/editing.el new file mode 100644 index 0000000..82cf1bf --- /dev/null +++ b/customizations/editing.el @@ -0,0 +1,75 @@ +;; Customizations relating to editing a buffer. + +;; Key binding to use "hippie expand" for text autocompletion +;; http://www.emacswiki.org/emacs/HippieExpand +(global-set-key (kbd "M-/") 'hippie-expand) + +;; Lisp-friendly hippie expand +(setq hippie-expand-try-functions-list + '(try-expand-dabbrev + try-expand-dabbrev-all-buffers + try-expand-dabbrev-from-kill + try-complete-lisp-symbol-partially + try-complete-lisp-symbol)) + +;; Highlights matching parenthesis +(show-paren-mode 1) + +;; Highlight current line +(global-hl-line-mode 1) + +;; Interactive search key bindings. By default, C-s runs +;; isearch-forward, so this swaps the bindings. +(global-set-key (kbd "C-s") 'isearch-forward-regexp) +(global-set-key (kbd "C-r") 'isearch-backward-regexp) +(global-set-key (kbd "C-M-s") 'isearch-forward) +(global-set-key (kbd "C-M-r") 'isearch-backward) + +;; Don't use hard tabs +(setq-default indent-tabs-mode nil) + +;; When you visit a file, point goes to the last place where it +;; was when you previously visited the same file. +;; http://www.emacswiki.org/emacs/SavePlace +(require 'saveplace) +(setq-default save-place t) +;; keep track of saved places in ~/.emacs.d/places +(setq save-place-file (concat user-emacs-directory "places")) + +;; Emacs can automatically create backup files. This tells Emacs to +;; put all backups in ~/.emacs.d/backups. More info: +;; http://www.gnu.org/software/emacs/manual/html_node/elisp/Backup-Files.html +(setq backup-directory-alist `(("." . ,(concat user-emacs-directory + "backups")))) +(setq auto-save-default nil) + + +;; comments +(defun toggle-comment-on-line () + "comment or uncomment current line" + (interactive) + (comment-or-uncomment-region (line-beginning-position) (line-end-position))) +(global-set-key (kbd "C-;") 'toggle-comment-on-line) + +;; use 2 spaces for tabs +(defun die-tabs () + (interactive) + (set-variable 'tab-width 2) + (mark-whole-buffer) + (untabify (region-beginning) (region-end)) + (keyboard-quit)) + +;; fix weird os x kill error +(defun ns-get-pasteboard () + "Returns the value of the pasteboard, or nil for unsupported formats." + (condition-case nil + (ns-get-selection-internal 'CLIPBOARD) + (quit nil))) + +(setq electric-indent-mode nil) + +;; +;; https://emacs.stackexchange.com/questions/30221/wrap-lines-at-80-characters +;; +(add-hook 'text-mode-hook #'auto-fill-mode) +(setq-default fill-column 80) diff --git a/customizations/elisp-editing.el b/customizations/elisp-editing.el new file mode 100644 index 0000000..717634b --- /dev/null +++ b/customizations/elisp-editing.el @@ -0,0 +1,15 @@ +;; Automatically load paredit when editing a lisp file +;; More at http://www.emacswiki.org/emacs/ParEdit +(autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t) +(add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode) +(add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode) +(add-hook 'ielm-mode-hook #'enable-paredit-mode) +(add-hook 'lisp-mode-hook #'enable-paredit-mode) +(add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode) +(add-hook 'scheme-mode-hook #'enable-paredit-mode) + +;; eldoc-mode shows documentation in the minibuffer when writing code +;; http://www.emacswiki.org/emacs/ElDoc +(add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode) +(add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode) +(add-hook 'ielm-mode-hook 'turn-on-eldoc-mode) diff --git a/customizations/misc.el b/customizations/misc.el new file mode 100644 index 0000000..2e9f261 --- /dev/null +++ b/customizations/misc.el @@ -0,0 +1,26 @@ +;; Changes all yes/no questions to y/n type +(fset 'yes-or-no-p 'y-or-n-p) + +;; shell scripts +(setq-default sh-basic-offset 2) +(setq-default sh-indentation 2) + +;; No need for ~ files when editing +(setq create-lockfiles nil) + +;; Go straight to scratch buffer on startup +(setq inhibit-startup-message t) + +(setq inferior-lisp-program "sbcl") + +;; +;; https://news.ycombinator.com/item?id=33359329 +;; + +(defun new-note () + (interactive) + (insert "-------------------\n") + (insert (shell-command-to-string "echo -n $(date \"+%Y-%m-%d %T\")")) + (insert "\n")) + +(global-set-key (kbd "C-c C-n") 'new-note) diff --git a/customizations/navigation.el b/customizations/navigation.el new file mode 100644 index 0000000..1d22037 --- /dev/null +++ b/customizations/navigation.el @@ -0,0 +1,62 @@ +;; These customizations make it easier for you to navigate files, +;; switch buffers, and choose options from the minibuffer. + + +;; "When several buffers visit identically-named files, +;; Emacs must give the buffers distinct names. The usual method +;; for making buffer names unique adds ‘<2>’, ‘<3>’, etc. to the end +;; of the buffer names (all but one of them). +;; The forward naming method includes part of the file's directory +;; name at the beginning of the buffer name +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html +(require 'uniquify) +(setq uniquify-buffer-name-style 'forward) + +;; Turn on recent file mode so that you can more easily switch to +;; recently edited files when you first start emacs +(setq recentf-save-file (concat user-emacs-directory ".recentf")) +(require 'recentf) +(recentf-mode 1) +(setq recentf-max-menu-items 40) + + +;; ido-mode allows you to more easily navigate choices. For example, +;; when you want to switch buffers, ido presents you with a list +;; of buffers in the the mini-buffer. As you start to type a buffer's +;; name, ido will narrow down the list of buffers to match the text +;; you've typed in +;; http://www.emacswiki.org/emacs/InteractivelyDoThings +(ido-mode t) + +;; This allows partial matches, e.g. "tl" will match "Tyrion Lannister" +(setq ido-enable-flex-matching t) + +;; Turn this behavior off because it's annoying +(setq ido-use-filename-at-point nil) + +;; Don't try to match file across all "work" directories; only match files +;; in the current directory displayed in the minibuffer +(setq ido-auto-merge-work-directories-length -1) + +;; Includes buffer names of recently open files, even if they're not +;; open now +(setq ido-use-virtual-buffers t) + +;; This enables ido in all contexts where it could be useful, not just +;; for selecting buffer and file names +(ido-ubiquitous-mode t) +(ido-everywhere t) + +;; Shows a list of buffers +(global-set-key (kbd "C-x C-b") 'ibuffer) + + +;; Enhances M-x to allow easier execution of commands. Provides +;; a filterable list of possible commands in the minibuffer +;; http://www.emacswiki.org/emacs/Smex +(setq smex-save-file (concat user-emacs-directory ".smex-items")) +(smex-initialize) +(global-set-key (kbd "M-x") 'smex) + +;; projectile everywhere! +(projectile-global-mode) diff --git a/customizations/setup-clojure.el b/customizations/setup-clojure.el new file mode 100644 index 0000000..1b03126 --- /dev/null +++ b/customizations/setup-clojure.el @@ -0,0 +1,83 @@ +;;;; +;; Clojure +;;;; + +;; Enable paredit for Clojure +(add-hook 'clojure-mode-hook 'enable-paredit-mode) + +;; This is useful for working with camel-case tokens, like names of +;; Java classes (e.g. JavaClassName) +(add-hook 'clojure-mode-hook 'subword-mode) + +;; A little more syntax highlighting +(require 'clojure-mode-extra-font-locking) + +;; syntax hilighting for midje +(add-hook 'clojure-mode-hook + (lambda () + (setq inferior-lisp-program "lein repl") + (font-lock-add-keywords + nil + '(("(\\(facts?\\)" + (1 font-lock-keyword-face)) + ("(\\(background?\\)" + (1 font-lock-keyword-face)))) + (define-clojure-indent (fact 1)) + (define-clojure-indent (facts 1)) + (rainbow-delimiters-mode))) + +;;;; +;; Cider +;;;; + +;; provides minibuffer documentation for the code you're typing into the repl +(add-hook 'cider-mode-hook 'eldoc-mode) + +;; go right to the REPL buffer when it's finished connecting +(setq cider-repl-pop-to-buffer-on-connect t) + +;; When there's a cider error, show its buffer and switch to it +(setq cider-show-error-buffer t) +(setq cider-auto-select-error-buffer t) + +;; Where to store the cider history. +(setq cider-repl-history-file "~/.emacs.d/cider-history") + +;; Wrap when navigating history. +(setq cider-repl-wrap-history t) + +;; enable paredit in your REPL +(add-hook 'cider-repl-mode-hook 'paredit-mode) + +;; Use clojure mode for other extensions +(add-to-list 'auto-mode-alist '("\\.edn$" . clojure-mode)) +(add-to-list 'auto-mode-alist '("\\.boot$" . clojure-mode)) +(add-to-list 'auto-mode-alist '("\\.cljs.*$" . clojure-mode)) +(add-to-list 'auto-mode-alist '("lein-env" . enh-ruby-mode)) + + +;; key bindings +;; these help me out with the way I usually develop web apps +(defun cider-start-http-server () + (interactive) + (cider-load-current-buffer) + (let ((ns (cider-current-ns))) + (cider-repl-set-ns ns) + (cider-interactive-eval (format "(println '(def server (%s/start))) (println 'server)" ns)) + (cider-interactive-eval (format "(def server (%s/start)) (println server)" ns)))) + + +(defun cider-refresh () + (interactive) + (cider-interactive-eval (format "(user/reset)"))) + +(defun cider-user-ns () + (interactive) + (cider-repl-set-ns "user")) + +(eval-after-load 'cider + '(progn + (define-key clojure-mode-map (kbd "C-c C-v") 'cider-start-http-server) + (define-key clojure-mode-map (kbd "C-M-r") 'cider-refresh) + (define-key clojure-mode-map (kbd "C-c u") 'cider-user-ns) + (define-key cider-mode-map (kbd "C-c u") 'cider-user-ns))) diff --git a/customizations/setup-js.el b/customizations/setup-js.el new file mode 100644 index 0000000..896c093 --- /dev/null +++ b/customizations/setup-js.el @@ -0,0 +1,22 @@ +;; javascript / html +(add-to-list 'auto-mode-alist '("\\.js$" . js-mode)) +(add-hook 'js-mode-hook 'subword-mode) +(add-hook 'html-mode-hook 'subword-mode) +(setq js-indent-level 2) +(eval-after-load "sgml-mode" + '(progn + (require 'tagedit) + (tagedit-add-paredit-like-keybindings) + (add-hook 'html-mode-hook (lambda () (tagedit-mode 1))))) + + +;; coffeescript +(add-to-list 'auto-mode-alist '("\\.coffee.erb$" . coffee-mode)) +(add-hook 'coffee-mode-hook 'subword-mode) +(add-hook 'coffee-mode-hook 'highlight-indentation-current-column-mode) +(add-hook 'coffee-mode-hook + (defun coffee-mode-newline-and-indent () + (define-key coffee-mode-map "\C-j" 'coffee-newline-and-indent) + (setq coffee-cleanup-whitespace nil))) +(custom-set-variables + '(coffee-tab-width 2)) diff --git a/customizations/shell-integration.el b/customizations/shell-integration.el new file mode 100644 index 0000000..7460b0c --- /dev/null +++ b/customizations/shell-integration.el @@ -0,0 +1,6 @@ +;; Sets up exec-path-from shell +;; https://github.com/purcell/exec-path-from-shell +(when (memq window-system '(mac ns)) + (exec-path-from-shell-initialize) + (exec-path-from-shell-copy-envs + '("PATH"))) diff --git a/customizations/ui.el b/customizations/ui.el new file mode 100644 index 0000000..42a619a --- /dev/null +++ b/customizations/ui.el @@ -0,0 +1,72 @@ +;; These customizations change the way emacs looks and disable/enable +;; some user interface elements. Some useful customizations are +;; commented out, and begin with the line "CUSTOMIZE". These are more +;; a matter of preference and may require some fiddling to match your +;; preferences + +;; Turn off the menu bar at the top of each frame because it's distracting +(menu-bar-mode -1) + +;; Show line numbers +(global-linum-mode) + +;; You can uncomment this to remove the graphical toolbar at the top. After +;; awhile, you won't need the toolbar. +;; (when (fboundp 'tool-bar-mode) +;; (tool-bar-mode -1)) + +;; Don't show native OS scroll bars for buffers because they're redundant +(when (fboundp 'scroll-bar-mode) + (scroll-bar-mode -1)) + +;; Color Themes +;; Read http://batsov.com/articles/2012/02/19/color-theming-in-emacs-reloaded/ +;; for a great explanation of emacs color themes. +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-Themes.html +;; for a more technical explanation. +(add-to-list 'custom-theme-load-path "~/.emacs.d/themes") +(add-to-list 'load-path "~/.emacs.d/themes") +(load-theme 'tomorrow-night-bright t) + +;; make line numbers more visible +(set-face-foreground 'linum "yellow") + +;; increase font size for better readability +(set-face-attribute 'default nil :height 105) + +;; Uncomment the lines below by removing semicolons and play with the +;; values in order to set the width (in characters wide) and height +;; (in lines high) Emacs will have whenever you start it +(setq initial-frame-alist '((top . 0) (left . 0) (width . 157) (height . 41))) + +;; These settings relate to how emacs interacts with your operating system +(setq ;; makes killing/yanking interact with the clipboard + x-select-enable-clipboard t + + ;; I'm actually not sure what this does but it's recommended? + x-select-enable-primary t + + ;; Save clipboard strings into kill ring before replacing them. + ;; When one selects something in another program to paste it into Emacs, + ;; but kills something in Emacs before actually pasting it, + ;; this selection is gone unless this variable is non-nil + save-interprogram-paste-before-kill t + + ;; Shows all options when running apropos. For more info, + ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html + apropos-do-all t + + ;; Mouse yank commands yank at point instead of at click. + mouse-yank-at-point t) + +;; No cursor blinking, it's distracting +(blink-cursor-mode 0) + +;; full path in title bar +(setq-default frame-title-format "%b (%f)") + +;; don't pop up font menu +(global-set-key (kbd "s-t") '(lambda () (interactive))) + +;; no bell +(setq ring-bell-function 'ignore) diff --git a/ido.last b/ido.last new file mode 100644 index 0000000..5e1e9d9 --- /dev/null +++ b/ido.last @@ -0,0 +1,175 @@ +;;; -*- coding: utf-8 -*- + +;; ----- ido-last-directory-list ----- +( + ("/home/clewis/quicklisp/dists/quicklisp/software/hunchentoot-v1.3.0/" . "www/") + ("/home/clewis/quicklisp/dists/quicklisp/software/" . "hunchentoot-v1.3.0/") + ("/home/clewis/quicklisp/dists/quicklisp/" . "software/") + ("/home/clewis/quicklisp/dists/" . "quicklisp/") + ("/home/clewis/quicklisp/local-projects/test-web/templates/" . "layouts/") + ("/home/clewis/quicklisp/local-projects/test-web/" . "templates/") + ("/home/clewis/quicklisp/local-projects/hello-caveman/static/" . "css/") + ("/home/clewis/quicklisp/local-projects/hello-caveman/" . "static/") + ("/home/clewis/quicklisp/local-projects/" . "retro-games/") + ("/home/clewis/quicklisp/" . "local-projects/") + ("/ssh:lewserver@node01:/node01/share/backups/daily/" . "2022/") + ("/ssh:lewserver@node01:/node01/share/backups/" . "daily/") + ("/ssh:lewserver@node01:/node01/share/" . "backups/") + ("/ssh:lewserver@node01:/node01/" . "share/") + ("/ssh:lewserver@node01:/" . "node01/") + ("/home/clewis/prog/lisp/" . "LispForTheWeb/") + ("/ssh:lewserver@node02:/home/lewserver/node02/" . "notes/") + ("/ssh:lewserver@node02:/home/lewserver/node02/daily/2020/" . "03/") + ("/ssh:lewserver@node02:/home/lewserver/node02/daily/" . "2020/") + ("/ssh:lewserver@node02:node02/daily/2022/" . "02/") + ("/ssh:lewserver@node02:node02/daily/" . "2023/") + ("/ssh:lewserver@node02:node02/" . "daily/") + ("/ssh:lewserver@node02:" . "node02/") + ("/home/clewis/prog/" . "lisp/") + ("/home/" . "clewis/") + ("/usr/local/" . "share/") + ("/usr/" . "local/") + ("/" . "home/") + ("/home/clewis/.emacs.d/" . "customizations/") + ("/home/clewis/" . "quicklisp/") +) + +;; ----- ido-work-directory-list ----- +( + "/home/clewis/quicklisp/local-projects/retro-games/" + "/ssh:lewserver@node02:node02/daily/2023/" + "/home/clewis/prog/lisp/" + "/home/clewis/quicklisp/dists/quicklisp/software/hunchentoot-v1.3.0/www/" + "/home/clewis/quicklisp/dists/quicklisp/software/hunchentoot-v1.3.0/" + "/home/clewis/quicklisp/local-projects/chacha20/" + "/home/clewis/Documents/" + "/ssh:lewserver@node02:node02/daily/2022/" + "/home/clewis/quicklisp/local-projects/bleep/" + "/home/clewis/quicklisp/local-projects/gtk-example/" + "/home/clewis/quicklisp/local-projects/gtk-tut/" + "/home/clewis/" + "/home/clewis/fsl_files/" + "/home/clewis/fossil/" + "/ssh:lewserver@node02:/home/lewserver/node02/daily/2022/" + "/home/clewis/quicklisp/local-projects/test-web/templates/layouts/" + "/home/clewis/quicklisp/local-projects/test-web/templates/" + "/home/clewis/quicklisp/local-projects/test-web/src/" + "/home/clewis/quicklisp/local-projects/test-web/" + "/home/clewis/quicklisp/local-projects/test-project/" + "/home/clewis/test-project/" + "/home/clewis/prog/lisp/paip/" + "/home/clewis/prog/lisp/debug-tut/" + "/home/clewis/quicklisp/local-projects/hello-caveman/templates/" + "/home/clewis/quicklisp/local-projects/hello-caveman/static/css/" + "/home/clewis/quicklisp/local-projects/hello-caveman/src/" + "/ssh:lewserver@node02:node02/notes/" + "/home/clewis/prog/lisp/web/" + "/home/clewis/.ssh/" + "/ssh:lewserver@node01:/node01/share/backups/daily/2022/" + "/home/clewis/prog/lisp/piap/" + "/home/clewis/.emacs.d/customizations/" + "/ssh:lewserver@node02:/home/lewserver/node02/notes/" + "/home/clewis/.emacs.d/" + "/ssh:lewserver@node02:/node02/daily/2022/" + "/home/clewis/ssh:lewserver@node01:/node01/share/" +) + +;; ----- ido-work-file-list ----- +( + "retro-games.lisp" + "2023-01.txt" + "retro-games.asd" + "package.lisp" + "notes.md" + "index.html" + "acceptor.lisp" + "chacha20.lisp" + "2023-01-08.txt" + "2022-12.txt" +) + +;; ----- ido-dir-file-cache ----- +( + ("/home/clewis/quicklisp/local-projects/retro-games/" (25540 2779 675 754000) "./" "retro-games.fasl" "README.md" "../" "retro-games.lisp" "static/" "package.lisp" "retro-games.asd") + + ("/home/clewis/quicklisp/local-projects/" (25539 61540 492568 255000) "./" "chacha20/" "tecgraf-libs/" "../" "chacha20_copy/" "system-index.txt" "bleep/" "test-project/" "gtk-example/" "test-web/" "retro-games/" "hello-caveman/") + + ("/home/clewis/prog/lisp/LispForTheWeb/" (25540 2468 201995 308000) "web_with_persistent_backend.lisp" "./" ".git/" "README.md" "../" "static/" "LICENSE" "map_reduce_in_mongo.lisp" "doc/" "web_with_proto_backend.lisp") + + ("/home/clewis/prog/lisp/web/" (25459 26136 115876 666000) "./" "../" "server.lisp" "caveman/" "hello.lisp" "hello.fasl") + + ("/home/clewis/prog/lisp/" (25540 2467 274011 293000) "./" "ex_11_22.fasl" "tecgraf-libs/" "../" "ex_7_11.lisp" "debug-tut/" "ex_11_22.lisp" "ex_7_10.fasl" "ex_8_60.fasl" "types.lisp" "mapcar_ex_01.lisp" "LispForTheWeb/" "ex_9_2.lisp" "ex_7_29.lisp" "pkgs/" "hello.lisp" "let_over_lambda_refs.lisp" "ex_7_10.lisp" "web/" "hello.fasl" "practical-common-lisp-master/" "ex_8_60.lisp" "paip/" "break.lisp" "types.fasl" "notes.md") + + ("/home/clewis/" (25541 9655 685702 207000) ".xsession-errors.old" ".vimrc" ".local/" "Public/" ".Xauthority" "Downloads/" ".sbclrc" ".bash_logout" "quicklisp.lisp" ".dmrc" "Desktop/" ".bash_history" "./" ".dbus/" ".profile" "Videos/" ".inputrc" ".mozilla/" "prog/" ".emacs.d/" "Music/" ".vim/" "chacha20.lisp" ".gnupg/" ".ssh/" ".cache/" ".slime-history.eld" ".config/" "fossil-repo/" ".bashrc" ".conky/" ".ICEauthority" "quicklisp.lisp.asc" "Pictures/" ".xsession-errors" "Documents/" "quicklisp/" "Templates/" "../" ".slime/") + + ("/home/clewis/quicklisp/dists/quicklisp/software/hunchentoot-v1.3.0/www/" (25538 35123 991336 457000) "favicon.ico" "hunchentoot-doc.html" "./" "hunchentoot.gif" "errors/" "img/" "index.html" "../") + + ("/home/clewis/quicklisp/dists/quicklisp/software/hunchentoot-v1.3.0/" (25538 35123 999336 394000) ".gitignore" "acceptor.lisp" "compat.lisp" "hunchentoot.asd" "release-checklist.txt" "docs/" "make-docstrings.lisp" "./" "reply.lisp" "CHANGELOG_TBNL" ".pre-release.sh" "run-test.lisp" "README.md" "set-timeouts.lisp" "session.lisp" "url-rewrite/" "lispworks.lisp" "misc.lisp" "www/" "conditions.lisp" "headers.lisp" "easy-handlers.lisp" "cookie.lisp" "util.lisp" "request.lisp" "log.lisp" "taskmaster.lisp" "CHANGELOG" "mime-types.lisp" "test/" "packages.lisp" "ssl.lisp" "specials.lisp" "../") + + ("/home/clewis/quicklisp/dists/quicklisp/software/" (25538 35494 255434 85000) "md5-20210630-git/" "hunchentoot-v1.3.0/" "trivial-features-20211209-git/" "html-template-20171227-git/" "./" "trivial-backtrace-20200610-git/" "bit-smasher-20221106-git/" "split-sequence-v2.0.1/" "cl-base64-20201016-git/" "bordeaux-threads-v0.8.8/" "usocket-0.8.5/" "chipz-20220220-git/" "iterate-release-b0f9a9c6-git/" "puri-20201016-git/" "cl-ppcre-20220220-git/" "trivial-gray-streams-20210124-git/" "flexi-streams-20220220-git/" "rfc2388-20180831-git/" "babel-20200925-git/" "alexandria-20220707-git/" "quickproject-1.4.1/" "cl-cffi-gtk-20201220-git/" "cffi-20221106-git/" "drakma-v2.0.9/" "closer-mop-20221106-git/" "cl-who-20220331-git/" "cl+ssl-20221106-git/" "chunga-20221106-git/" "cl-fad-20220220-git/" "cl-base58-20150113-git/" "trivial-garbage-20211230-git/" "../") + + ("/home/clewis/quicklisp/dists/quicklisp/" (25503 38921 261561 463000) "distinfo.txt" "enabled.txt" "releases.txt" "./" "preference.txt" "systems.cdb" "systems.txt" "archives/" "software/" "releases.cdb" "installed/" "../") + + ("/home/clewis/quicklisp/dists/" (25503 35492 61571 749000) "./" "quicklisp/" "../") + + ("/home/clewis/quicklisp/local-projects/chacha20/" (25537 12760 879847 511000) "chacha20.lisp" "./" "README.md" "../" "package.lisp" "dev-notes.md" "chacha20.fasl" "chacha20.asd") + + ("/home/clewis/Documents/" (25530 40053 426843 37000) "./" "2023-01-08.txt" "../") + + ("/home/clewis/quicklisp/local-projects/gtk-example/" (25506 62848 542820 605000) "./" "README.md" "../" "package.lisp" "gtk-example.lisp" "gtk-example.asd") + + ("/home/clewis/quicklisp/local-projects/bleep/" (25506 61288 343302 78000) "bleep.lisp" "./" "README.md" "bleep.asd" "../" "package.lisp" "bleep.fasl") + + ("/home/clewis/quicklisp/local-projects/gtk-tut/" (25506 18935 938555 345000) "bleep.lisp" "./" "README.md" "gtk-window.fasl" "gtk-window.lisp" "../" "gtk-example.lisp" "gtk-tut.asd" "simple-window.lisp" "simple-window.fasl" "bleep.fasl" "gtk-tut.lisp") + + ("/home/" (14928 4325 672000 0) "clewis/" "./" "../") + + ("/home/clewis/quicklisp/" (25503 35884 113069 740000) "asdf.lisp" "./" "setup.lisp" "tmp/" "local-projects/" "client-info.sexp" "dists/" "quicklisp/" "../") + + ("/home/clewis/fsl_files/" (25495 7167 411398 409000) "./" "README.md" "../" "amber_skin.conf" ".fslckout" "amber_skin_css.txt") + + ("/home/clewis/fossil/" (25492 36980 568192 835000) "fsl_files.fossil" "./" "../" "vim.fossil" "template.fossil" "amber_skin.conf" "fossil" "css.txt" "repo_user.conf" "amber_skin_css.txt") + + ("/home/clewis/prog/lisp/tecgraf-libs/" (25472 52435 582661 717000) "./" "README.org" ".git/" "../" ".projectile" "LICENSE" "libs/" "tecgraf-libs.asd" "update.sh" ".gitattributes" ".gitignore" ".editorconfig") + + ("/home/clewis/prog/" (25471 36584 608191 37000) "./" "lisp/" "../" "vim/") + + ("/home/clewis/quicklisp/local-projects/test-web/templates/layouts/" (25471 29264 854612 467000) "./" "../" "default.html") + + ("/home/clewis/quicklisp/local-projects/test-web/templates/" (25471 29264 854612 467000) "./" "../" "index.html" "layouts/" "_errors/") + + ("/home/clewis/quicklisp/local-projects/test-web/src/" (25471 30175 992300 417000) "./" "../" "main.lisp" "web.lisp" "db.lisp" "config.lisp" "view.lisp") + + ("/home/clewis/quicklisp/local-projects/test-web/" (25471 29264 858612 406000) "./" "tests/" "../" "db/" "static/" "src/" "test-web-test.asd" "app.lisp" "test-web.asd" "README.markdown" "templates/" ".gitignore") + + ("/home/clewis/quicklisp/local-projects/test-project/" (25471 27275 58321 852000) "test-project.asd" "./" "README.md" "../" "test-project.fasl" "package.lisp" "test-project.lisp") + + ("/home/clewis/test-project/" (25471 22726 665101 168000) "test-project.asd" "./" "README.md" "../" "package.lisp" "test-project.lisp") + + ("/home/clewis/prog/lisp/paip/" (25463 26835 321715 947000) "./" "gps2.fasl" "gps.fasl" "../" "p57_determine_winner.lisp" "gps.lisp" "p57_determine_winner.fasl" "gps2.lisp" "grammar.lisp" "grammar.fasl") + + ("/home/clewis/quicklisp/local-projects/hello-caveman/static/css/" (25459 27830 488606 744000) "./" "../" "main.css") + + ("/home/clewis/quicklisp/local-projects/hello-caveman/static/" (25459 26692 955265 918000) "./" "../" "css/") + + ("/home/clewis/quicklisp/local-projects/hello-caveman/templates/" (25459 27773 377546 393000) "./" "../" "about2.html" "index.html" "layouts/" "_errors/" "about.html") + + ("/home/clewis/quicklisp/local-projects/hello-caveman/src/" (25459 27136 504139 180000) "./" "../" "main.lisp" "web.lisp" "db.lisp" "config.lisp" "view.lisp") + + ("/home/clewis/quicklisp/local-projects/hello-caveman/" (25459 26692 971265 666000) "./" "tests/" "../" "db/" "static/" "src/" "hello-caveman.asd" "app.lisp" "README.markdown" "templates/" ".gitignore" "hello-caveman-test.asd") + + ("/home/clewis/.ssh/" (25455 63299 352028 744000) "./" "../" "config" "known_hosts" "mx_mbp" "mx_mbp.pub") + + ("/home/clewis/.emacs.d/customizations/" (25436 64581 701682 725000) "./" "setup-js.el" "editing.el" "../" "misc.el" "ui.el" "shell-integration.el" "navigation.el" "setup-clojure.el" "elisp-editing.el") + + ("/home/clewis/.emacs.d/" (25437 12074 730844 316000) "./" "elpa/" "ido.last" "../" "auto-save-list/" "customizations/" "transient/" "init.el" ".recentf" "backups/" "session.2eb8106be-50cb-42df-8780-4ef1fc9f44c0" ".smex-items" "tramp" "themes/" "projectile-bookmarks.eld") + + ("/usr/local/share/" (25410 65006 752909 441000) "info/" "./" "fonts/" "sgml/" "../" "icons/" "cli-aptiX/" "ca-certificates/" "live-files/" "boot-menus/" "emacs/" "xml/" "doc/" "man/" "excludes/") + + ("/usr/local/" (25379 22566 0 0) "./" "../" "games/" "src/" "etc/" "sbin/" "share/" "man/" "bin/" "lib/" "include/") + + ("/usr/" (25379 22566 0 0) "./" "../" "local/" "games/" "lib64/" "libx32/" "src/" "lib32/" "sbin/" "share/" "bin/" "libexec/" "lib/" "include/") +) + +;; ----- ido-unc-hosts-cache ----- +t diff --git a/init.el b/init.el new file mode 100644 index 0000000..0288a7d --- /dev/null +++ b/init.el @@ -0,0 +1,128 @@ +;; Use Emacs package system +(require 'package) +;; Add MELPA repository +(add-to-list 'package-archives + '("tromey" . "https://tromey.com/elpa/") t) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t) +(add-to-list 'package-archives + '("melpa-stable" . "https://stable.melpa.org/packages/") t) + +;; Reload package list +(package-initialize) + +;; Download the ELPA archive description if needed. +;; This informs Emacs about the latest versions of all packages, and +;; makes them available for download. +(when (not package-archive-contents) + (package-refresh-contents)) + +(unless package-archive-contents + (package-refresh-contents)) +;; List of packages to install: +;(setq package-list +; '(auto-complete ; auto complete (RECOMMENDED) +; auto-complete-pcmp ; programmable completion + ; idle-highlight-mode ; highlight words in programming buffer (OPTIONAL) +; rainbow-delimiters ; highlight parenthesis (OPTIONAL) + ; ac-slime ; auto-complete for SLIME +; slime ; SLIME itself +; eval-sexp-fu ; Highlight evaluated form (OPTIONAL) +; smartparens ; Help with many parentheses (OPTIONAL) +; )) +(defvar my-packages + '(;; makes handling lisp expressions much, much easier + ;; Cheatsheet: http://www.emacswiki.org/emacs/PareditCheatsheet + paredit + + auto-complete + auto-complete-pcmp + ac-slime + slime + + ;; allow ido usage in as many contexts as possible. see + ;; customizations/navigation.el line 23 for a description + ;; of ido + ido-completing-read+ + + ;; Enhances M-x to allow easier execution of commands. Provides + ;; a filterable list of possible commands in the minibuffer + ;; http://www.emacswiki.org/emacs/Smex + smex + + ;; project navigation + projectile + + ;; colorful parenthesis matching + rainbow-delimiters + + ;; edit html tags like sexps + tagedit + + ;; git integration + magit)) + +;; Install if are not installed + +(dolist (p my-packages) + (when (not (package-installed-p p)) + (package-install p))) + + +;; MAIN Slime setup +;; Choose lisp implementation: +;; The first option uses roswell with default sbcl +;; the second option - uses ccl directly +;(setq slime-lisp-implementations +; '((roswell ("ros" "-L" "sbcl-bin" "run")) +; (ccl ("ccl64" +; "-K" "utf-8")))) +;; Other settings... + +;(setq inferior-lisp-program "/usr/local/bin/sbcl") +;;;; +;; Customization +;;;; + +;; Add a directory to our load path so that when you `load` things +;; below, Emacs knows where to look for the corresponding file. +(add-to-list 'load-path "~/.emacs.d/customizations") + +;; Sets up exec-path-from-shell so that Emacs will use the correct +;; environment variables +(load "shell-integration.el") + +;; These customizations make it easier for you to navigate files, +;; switch buffers, and choose options from the minibuffer. +(load "navigation.el") + +;; These customizations change the way emacs looks and disable/enable +;; some user interface elements +(load "ui.el") + +;; These customizations make editing a bit nicer. +(load "editing.el") + +;; Hard-to-categorize customizations +(load "misc.el") + +;; For editing lisps +(load "elisp-editing.el") + +;; Langauage-specific + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(coffee-tab-width 2) + '(package-selected-packages + '(slime-repl slime magit tagedit rainbow-delimiters projectile smex ido-completing-read+ paredit exec-path-from-shell))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + diff --git a/projectile-bookmarks.eld b/projectile-bookmarks.eld new file mode 100644 index 0000000..c672dae --- /dev/null +++ b/projectile-bookmarks.eld @@ -0,0 +1 @@ +("~/hdd1tb/docs/lisp_notes/") \ No newline at end of file diff --git a/themes/color-theme-tomorrow.el b/themes/color-theme-tomorrow.el new file mode 100644 index 0000000..8696e35 --- /dev/null +++ b/themes/color-theme-tomorrow.el @@ -0,0 +1,610 @@ +;;; color-theme-tomorrow.el --- GNU Emacs port of the Tomorrow Theme. + +;;; Commentary: +;; +;;; Tomorrow Theme +;; +;; Originally by Chris Kempson https://github.com/ChrisKempson/Tomorrow-Theme +;; Ported to GNU Emacs by Chris Charles +;; Rewritten by Steve Purcell for compatibility +;; Update to match master by Donald Curtis + + +;;; Code: + +(defconst color-theme-tomorrow-colors + '((night . ((background . "#1d1f21") + (current-line . "#282a2e") + (selection . "#373b41") + (foreground . "#c5c8c6") + (comment . "#969896") + (red . "#cc6666") + (orange . "#de935f") + (yellow . "#f0c674") + (green . "#b5bd68") + (aqua . "#8abeb7") + (blue . "#81a2be") + (purple . "#b294bb"))) + (day . ((background . "#ffffff") + (current-line . "#efefef") + (selection . "#d6d6d6") + (foreground . "#4d4d4c") + (comment . "#8e908c") + (red . "#c82829") + (orange . "#f5871f") + (yellow . "#eab700") + (green . "#718c00") + (aqua . "#3e999f") + (blue . "#4271ae") + (purple . "#8959a8"))) + (night-eighties . ((background . "#2d2d2d") + (current-line . "#393939") + (selection . "#515151") + (foreground . "#cccccc") + (comment . "#999999") + (red . "#f2777a") + (orange . "#f99157") + (yellow . "#ffcc66") + (green . "#99cc99") + (aqua . "#66cccc") + (blue . "#6699cc") + (purple . "#cc99cc"))) + (night-blue . ((background . "#002451") + (current-line . "#00346e") + (selection . "#003f8e") + (foreground . "#ffffff") + (comment . "#7285b7") + (red . "#ff9da4") + (orange . "#ffc58f") + (yellow . "#ffeead") + (green . "#d1f1a9") + (aqua . "#99ffff") + (blue . "#bbdaff") + (purple . "#ebbbff"))) + (night-bright . ((background . "#000000") + (current-line . "#2a2a2a") + (selection . "#424242") + (foreground . "#eaeaea") + (comment . "#969896") + (red . "#d54e53") + (orange . "#e78c45") + (yellow . "#e7c547") + (green . "#b9ca4a") + (aqua . "#70c0b1") + (blue . "#7aa6da") + (purple . "#c397d8"))))) + + + +(defmacro color-theme-tomorrow--with-colors (mode &rest body) + "Execute `BODY' in a scope with variables bound to the various tomorrow colors. + +`MODE' should be set to either 'day, 'night, 'night-eighties, 'night-blue or 'night-bright." + `(let* ((colors (or (cdr (assoc ,mode color-theme-tomorrow-colors)) + (error "no such theme flavor"))) + (background (cdr (assoc 'background colors))) + (current-line (cdr (assoc 'current-line colors))) + (selection (cdr (assoc 'selection colors))) + (foreground (cdr (assoc 'foreground colors))) + (comment (cdr (assoc 'comment colors))) + (red (cdr (assoc 'red colors))) + (orange (cdr (assoc 'orange colors))) + (yellow (cdr (assoc 'yellow colors))) + (green (cdr (assoc 'green colors))) + (aqua (cdr (assoc 'aqua colors))) + (blue (cdr (assoc 'blue colors))) + (purple (cdr (assoc 'purple colors))) + (class '((class color) (min-colors 89)))) + ,@body)) + +(defmacro color-theme-tomorrow--face-specs () + "Return a backquote which defines a list of face specs. + +It expects to be evaluated in a scope in which the various color +names to which it refers are bound." + (quote + `(;; Standard font lock faces + (default ((,class (:foreground ,foreground :background ,background)))) + (bold ((,class (:weight bold)))) + (bold-italic ((,class (:slant italic :weight bold)))) + (underline ((,class (:underline t)))) + (italic ((,class (:slant italic)))) + (shadow ((,class (:foreground ,comment)))) + (success ((,class (:foreground ,green)))) + (error ((,class (:foreground ,red)))) + (warning ((,class (:foreground ,orange)))) + (outline-4 ((,class (:slant normal :foreground ,comment)))) + + ;; Font-lock stuff + (font-lock-builtin-face ((,class (:foreground ,aqua)))) + (font-lock-comment-delimiter-face ((,class (:foreground ,comment :slant italic)))) + (font-lock-comment-face ((,class (:foreground ,comment :slant italic)))) + (font-lock-constant-face ((,class (:foreground ,aqua)))) + (font-lock-doc-face ((,class (:foreground ,comment)))) + (font-lock-doc-string-face ((,class (:foreground ,yellow)))) + (font-lock-function-name-face ((,class (:foreground ,blue)))) + (font-lock-keyword-face ((,class (:foreground ,purple)))) + (font-lock-negation-char-face ((,class (:foreground ,green)))) + (font-lock-preprocessor-face ((,class (:foreground ,purple)))) + (font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow)))) + (font-lock-regexp-grouping-construct ((,class (:foreground ,purple)))) + (font-lock-string-face ((,class (:foreground ,green)))) + (font-lock-type-face ((,class (:foreground ,yellow)))) + (font-lock-variable-name-face ((,class (:foreground ,orange)))) + (font-lock-warning-face ((,class (:weight bold :foreground ,red)))) + + ;; Flymake + (flymake-warnline ((,class (:underline ,orange :background ,background)))) + (flymake-errline ((,class (:underline ,red :background ,background)))) + + ;; Clojure errors + (clojure-test-failure-face ((,class (:background nil :inherit flymake-warnline)))) + (clojure-test-error-face ((,class (:background nil :inherit flymake-errline)))) + (clojure-test-success-face ((,class (:background nil :foreground nil :underline ,green)))) + + ;; For Brian Carper's extended clojure syntax table + (clojure-keyword ((,class (:foreground ,yellow)))) + (clojure-parens ((,class (:foreground ,foreground)))) + (clojure-braces ((,class (:foreground ,green)))) + (clojure-brackets ((,class (:foreground ,yellow)))) + (clojure-double-quote ((,class (:foreground ,aqua :background nil)))) + (clojure-special ((,class (:foreground ,blue)))) + (clojure-java-call ((,class (:foreground ,purple)))) + + ;; Rainbow-delimiters + (rainbow-delimiters-depth-1-face ((,class (:foreground ,purple)))) + (rainbow-delimiters-depth-2-face ((,class (:foreground ,blue)))) + (rainbow-delimiters-depth-3-face ((,class (:foreground ,aqua)))) + (rainbow-delimiters-depth-4-face ((,class (:foreground ,green)))) + (rainbow-delimiters-depth-5-face ((,class (:foreground ,yellow)))) + (rainbow-delimiters-depth-6-face ((,class (:foreground ,orange)))) + (rainbow-delimiters-depth-7-face ((,class (:foreground ,red)))) + (rainbow-delimiters-depth-8-face ((,class (:foreground ,comment)))) + (rainbow-delimiters-depth-9-face ((,class (:foreground ,foreground)))) + (rainbow-delimiters-unmatched-face ((,class (:foreground ,red)))) + + ;; MMM-mode + (mmm-code-submode-face ((,class (:background ,current-line)))) + (mmm-comment-submode-face ((,class (:inherit font-lock-comment-face)))) + (mmm-output-submode-face ((,class (:background ,current-line)))) + + ;; Search + (match ((,class (:foreground ,blue :background ,background :inverse-video t)))) + (isearch ((,class (:foreground ,yellow :background ,background :inverse-video t)))) + (isearch-lazy-highlight-face ((,class (:foreground ,aqua :background ,background :inverse-video t)))) + (isearch-fail ((,class (:background ,background :inherit font-lock-warning-face :inverse-video t)))) + + ;; IDO + (ido-subdir ((,class (:foreground ,comment)))) + (ido-first-match ((,class (:foreground ,orange :weight bold)))) + (ido-only-match ((,class (:foreground ,red :weight bold)))) + (ido-indicator ((,class (:foreground ,red :background ,background)))) + (ido-virtual ((,class (:foreground ,comment)))) + + ;; which-function + (which-func ((,class (:foreground ,blue :background nil :weight bold)))) + + ;; Emacs interface + (cursor ((,class (:background ,red)))) + (fringe ((,class (:background ,current-line)))) + ;;(linum ((,class (:background ,current-line)))) + (linum ((,class (:foreground ,current-line)))) + (hl-line ((,class (:background ,current-line)))) + (border ((,class (:background ,current-line)))) + (border-glyph ((,class (nil)))) + (highlight ((,class (:background ,green)))) + (link ((,class (:foreground ,blue)))) + (link-visited ((,class (:foreground ,purple)))) + (gui-element ((,class (:background ,current-line :foreground ,foreground)))) + (mode-line ((,class (:background ,selection :foreground ,foreground)))) + (mode-line-inactive ((,class (:background ,current-line :foreground ,foreground)))) + (mode-line-buffer-id ((,class (:foreground ,purple :background nil)))) + (mode-line-emphasis ((,class (:foreground ,foreground :slant italic)))) + (mode-line-highlight ((,class (:foreground ,purple :box nil :weight bold)))) + (minibuffer-prompt ((,class (:foreground ,blue)))) + (region ((,class (:background ,selection)))) + (secondary-selection ((,class (:background ,current-line)))) + + (header-line ((,class (:inherit mode-line :foreground ,purple :background nil)))) + + (trailing-whitespace ((,class (:background ,red :foreground ,yellow)))) + (whitespace-empty ((,class (:foreground ,red :background ,yellow)))) + (whitespace-hspace ((,class (:background ,selection :foreground ,comment)))) + (whitespace-indentation ((,class (:background ,yellow :foreground ,red)))) + (whitespace-line ((,class (:background ,current-line :foreground ,purple)))) + (whitespace-newline ((,class (:foreground ,comment)))) + (whitespace-space ((,class (:background ,current-line :foreground ,comment)))) + (whitespace-space-after-tab ((,class (:background ,yellow :foreground ,red)))) + (whitespace-space-before-tab ((,class (:background ,orange :foreground ,red)))) + (whitespace-tab ((,class (:background ,selection :foreground ,comment)))) + (whitespace-trailing ((,class (:background ,red :foreground ,yellow)))) + + ;; Parenthesis matching (built-in) + (show-paren-match ((,class (:background ,blue :foreground ,current-line)))) + (show-paren-mismatch ((,class (:background ,orange :foreground ,current-line)))) + + ;; Parenthesis matching (mic-paren) + (paren-face-match ((,class (:foreground nil :background nil :inherit show-paren-match)))) + (paren-face-mismatch ((,class (:foreground nil :background nil :inherit show-paren-mismatch)))) + (paren-face-no-match ((,class (:foreground nil :background nil :inherit show-paren-mismatch)))) + + ;; Parenthesis dimming (parenface) + (paren-face ((,class (:foreground ,comment :background nil)))) + + (sh-heredoc ((,class (:foreground nil :inherit font-lock-string-face :weight normal)))) + (sh-quoted-exec ((,class (:foreground nil :inherit font-lock-preprocessor-face)))) + (slime-highlight-edits-face ((,class (:weight bold)))) + (slime-repl-input-face ((,class (:weight normal :underline nil)))) + (slime-repl-prompt-face ((,class (:underline nil :weight bold :foreground ,purple)))) + (slime-repl-result-face ((,class (:foreground ,green)))) + (slime-repl-output-face ((,class (:foreground ,blue :background ,background)))) + + (csv-separator-face ((,class (:foreground ,orange)))) + + (diff-added ((,class (:foreground ,green)))) + (diff-changed ((,class (:foreground ,yellow)))) + (diff-removed ((,class (:foreground ,red)))) + (diff-header ((,class (:background ,current-line)))) + (diff-file-header ((,class (:background ,selection)))) + (diff-hunk-header ((,class (:background ,current-line :foreground ,purple)))) + + (ediff-even-diff-A ((,class (:foreground nil :background nil :inverse-video t)))) + (ediff-even-diff-B ((,class (:foreground nil :background nil :inverse-video t)))) + (ediff-odd-diff-A ((,class (:foreground ,comment :background nil :inverse-video t)))) + (ediff-odd-diff-B ((,class (:foreground ,comment :background nil :inverse-video t)))) + + (eldoc-highlight-function-argument ((,class (:foreground ,green :weight bold)))) + + ;; undo-tree + (undo-tree-visualizer-default-face ((,class (:foreground ,foreground)))) + (undo-tree-visualizer-current-face ((,class (:foreground ,green :weight bold)))) + (undo-tree-visualizer-active-branch-face ((,class (:foreground ,red)))) + (undo-tree-visualizer-register-face ((,class (:foreground ,yellow)))) + + ;; auctex + (font-latex-bold-face ((,class (:foreground ,green)))) + (font-latex-doctex-documentation-face ((,class (:background ,current-line)))) + (font-latex-italic-face ((,class (:foreground ,green)))) + (font-latex-math-face ((,class (:foreground ,orange)))) + (font-latex-sectioning-0-face ((,class (:foreground ,yellow)))) + (font-latex-sectioning-1-face ((,class (:foreground ,yellow)))) + (font-latex-sectioning-2-face ((,class (:foreground ,yellow)))) + (font-latex-sectioning-3-face ((,class (:foreground ,yellow)))) + (font-latex-sectioning-4-face ((,class (:foreground ,yellow)))) + (font-latex-sectioning-5-face ((,class (:foreground ,yellow)))) + (font-latex-sedate-face ((,class (:foreground ,aqua)))) + (font-latex-string-face ((,class (:foreground ,yellow)))) + (font-latex-verbatim-face ((,class (:foreground ,orange)))) + (font-latex-warning-face ((,class (:foreground ,red)))) + + ;; dired+ + (diredp-compressed-file-suffix ((,class (:foreground ,blue)))) + (diredp-dir-heading ((,class (:foreground nil :background nil :inherit heading)))) + (diredp-dir-priv ((,class (:foreground ,aqua :background nil)))) + (diredp-exec-priv ((,class (:foreground ,blue :background nil)))) + (diredp-executable-tag ((,class (:foreground ,red :background nil)))) + (diredp-file-name ((,class (:foreground ,yellow)))) + (diredp-file-suffix ((,class (:foreground ,green)))) + (diredp-flag-mark-line ((,class (:background nil :inherit highlight)))) + (diredp-ignored-file-name ((,class (:foreground ,comment)))) + (diredp-link-priv ((,class (:background nil :foreground ,purple)))) + (diredp-mode-line-flagged ((,class (:foreground ,red)))) + (diredp-mode-line-marked ((,class (:foreground ,green)))) + (diredp-no-priv ((,class (:background nil)))) + (diredp-number ((,class (:foreground ,yellow)))) + (diredp-other-priv ((,class (:background nil :foreground ,purple)))) + (diredp-rare-priv ((,class (:foreground ,red :background nil)))) + (diredp-read-priv ((,class (:foreground ,green :background nil)))) + (diredp-symlink ((,class (:foreground ,purple)))) + (diredp-write-priv ((,class (:foreground ,yellow :background nil)))) + + ;; Magit (a patch is pending in magit to make these standard upstream) + (magit-branch ((,class (:foreground ,green)))) + (magit-header ((,class (:inherit nil :weight bold)))) + (magit-item-highlight ((,class (:inherit highlight :background nil)))) + (magit-log-graph ((,class (:foreground ,comment)))) + (magit-log-sha1 ((,class (:foreground ,purple)))) + (magit-log-head-label-bisect-bad ((,class (:foreground ,red)))) + (magit-log-head-label-bisect-good ((,class (:foreground ,green)))) + (magit-log-head-label-default ((,class (:foreground ,yellow :box nil :weight bold)))) + (magit-log-head-label-local ((,class (:foreground ,blue)))) + (magit-log-head-label-remote ((,class (:foreground ,green)))) + (magit-log-head-label-tags ((,class (:foreground ,aqua :box nil :weight bold)))) + (magit-section-title ((,class (:inherit diff-hunk-header)))) + + (link ((,class (:foreground nil :underline t)))) + (widget-button ((,class (:underline t)))) + (widget-field ((,class (:background ,current-line :box (:line-width 1 :color ,foreground))))) + + ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) + (compilation-column-number ((,class (:foreground ,yellow)))) + (compilation-line-number ((,class (:foreground ,yellow)))) + (compilation-message-face ((,class (:foreground ,blue)))) + (compilation-mode-line-exit ((,class (:foreground ,green)))) + (compilation-mode-line-fail ((,class (:foreground ,red)))) + (compilation-mode-line-run ((,class (:foreground ,blue)))) + + ;; Grep + (grep-context-face ((,class (:foreground ,comment)))) + (grep-error-face ((,class (:foreground ,red :weight bold :underline t)))) + (grep-hit-face ((,class (:foreground ,blue)))) + (grep-match-face ((,class (:foreground nil :background nil :inherit match)))) + + (regex-tool-matched-face ((,class (:foreground nil :background nil :inherit match)))) + + ;; mark-multiple + (mm/master-face ((,class (:inherit region :foreground nil :background nil)))) + (mm/mirror-face ((,class (:inherit region :foreground nil :background nil)))) + + (org-agenda-structure ((,class (:foreground ,purple)))) + (org-agenda-date ((,class (:foreground ,blue :underline nil)))) + (org-agenda-done ((,class (:foreground ,green)))) + (org-agenda-dimmed-todo-face ((,class (:foreground ,comment)))) + (org-block ((,class (:foreground ,orange)))) + (org-code ((,class (:foreground ,yellow)))) + (org-column ((,class (:background ,current-line)))) + (org-column-title ((,class (:inherit org-column :weight bold :underline t)))) + (org-date ((,class (:foreground ,purple :underline t)))) + (org-document-info ((,class (:foreground ,aqua)))) + (org-document-info-keyword ((,class (:foreground ,green)))) + (org-document-title ((,class (:weight bold :foreground ,orange :height 1.44)))) + (org-done ((,class (:foreground ,green)))) + (org-ellipsis ((,class (:foreground ,comment)))) + (org-footnote ((,class (:foreground ,aqua)))) + (org-formula ((,class (:foreground ,red)))) + (org-hide ((,class (:foreground ,current-line)))) + (org-link ((,class (:foreground ,blue)))) + (org-scheduled ((,class (:foreground ,green)))) + (org-scheduled-previously ((,class (:foreground ,orange)))) + (org-scheduled-today ((,class (:foreground ,green)))) + (org-special-keyword ((,class (:foreground ,orange)))) + (org-table ((,class (:foreground ,purple)))) + (org-todo ((,class (:foreground ,red)))) + (org-upcoming-deadline ((,class (:foreground ,orange)))) + (org-warning ((,class (:weight bold :foreground ,red)))) + + (markdown-url-face ((,class (:inherit link)))) + (markdown-link-face ((,class (:foreground ,blue :underline t)))) + + (hl-sexp-face ((,class (:background ,current-line)))) + (highlight-80+ ((,class (:background ,current-line)))) + + ;; Python-specific overrides + (py-builtins-face ((,class (:foreground ,orange :weight normal)))) + + ;; js2-mode + (js2-warning-face ((,class (:underline ,orange)))) + (js2-error-face ((,class (:foreground nil :underline ,red)))) + (js2-external-variable-face ((,class (:foreground ,purple)))) + (js2-function-param-face ((,class (:foreground ,blue)))) + (js2-instance-member-face ((,class (:foreground ,blue)))) + (js2-private-function-call-face ((,class (:foreground ,red)))) + + ;; js3-mode + (js3-warning-face ((,class (:underline ,orange)))) + (js3-error-face ((,class (:foreground nil :underline ,red)))) + (js3-external-variable-face ((,class (:foreground ,purple)))) + (js3-function-param-face ((,class (:foreground ,blue)))) + (js3-jsdoc-tag-face ((,class (:foreground ,orange)))) + (js3-jsdoc-type-face ((,class (:foreground ,aqua)))) + (js3-jsdoc-value-face ((,class (:foreground ,yellow)))) + (js3-jsdoc-html-tag-name-face ((,class (:foreground ,blue)))) + (js3-jsdoc-html-tag-delimiter-face ((,class (:foreground ,green)))) + (js3-instance-member-face ((,class (:foreground ,blue)))) + (js3-private-function-call-face ((,class (:foreground ,red)))) + + ;; nxml + (nxml-name-face ((,class (:foreground unspecified :inherit font-lock-constant-face)))) + (nxml-attribute-local-name-face ((,class (:foreground unspecified :inherit font-lock-variable-name-face)))) + (nxml-ref-face ((,class (:foreground unspecified :inherit font-lock-preprocessor-face)))) + (nxml-delimiter-face ((,class (:foreground unspecified :inherit font-lock-keyword-face)))) + (nxml-delimited-data-face ((,class (:foreground unspecified :inherit font-lock-string-face)))) + (rng-error-face ((,class (:underline ,red)))) + + ;; RHTML + (erb-delim-face ((,class (:background ,current-line)))) + (erb-exec-face ((,class (:background ,current-line :weight bold)))) + (erb-exec-delim-face ((,class (:background ,current-line)))) + (erb-out-face ((,class (:background ,current-line :weight bold)))) + (erb-out-delim-face ((,class (:background ,current-line)))) + (erb-comment-face ((,class (:background ,current-line :weight bold :slant italic)))) + (erb-comment-delim-face ((,class (:background ,current-line)))) + + ;; Message-mode + (message-header-other ((,class (:foreground nil :background nil :weight normal)))) + (message-header-subject ((,class (:inherit message-header-other :weight bold :foreground ,yellow)))) + (message-header-to ((,class (:inherit message-header-other :weight bold :foreground ,orange)))) + (message-header-cc ((,class (:inherit message-header-to :foreground nil)))) + (message-header-name ((,class (:foreground ,blue :background nil)))) + (message-header-newsgroups ((,class (:foreground ,aqua :background nil :slant normal)))) + (message-separator ((,class (:foreground ,purple)))) + + ;; Jabber + (jabber-chat-prompt-local ((,class (:foreground ,yellow)))) + (jabber-chat-prompt-foreign ((,class (:foreground ,orange)))) + (jabber-chat-prompt-system ((,class (:foreground ,yellow :weight bold)))) + (jabber-chat-text-local ((,class (:foreground ,yellow)))) + (jabber-chat-text-foreign ((,class (:foreground ,orange)))) + (jabber-chat-text-error ((,class (:foreground ,red)))) + + (jabber-roster-user-online ((,class (:foreground ,green)))) + (jabber-roster-user-xa ((,class :foreground ,comment))) + (jabber-roster-user-dnd ((,class :foreground ,yellow))) + (jabber-roster-user-away ((,class (:foreground ,orange)))) + (jabber-roster-user-chatty ((,class (:foreground ,purple)))) + (jabber-roster-user-error ((,class (:foreground ,red)))) + (jabber-roster-user-offline ((,class (:foreground ,comment)))) + + (jabber-rare-time-face ((,class (:foreground ,comment)))) + (jabber-activity-face ((,class (:foreground ,purple)))) + (jabber-activity-personal-face ((,class (:foreground ,aqua)))) + + ;; Gnus + (gnus-cite-1 ((,class (:inherit outline-1 :foreground nil)))) + (gnus-cite-2 ((,class (:inherit outline-2 :foreground nil)))) + (gnus-cite-3 ((,class (:inherit outline-3 :foreground nil)))) + (gnus-cite-4 ((,class (:inherit outline-4 :foreground nil)))) + (gnus-cite-5 ((,class (:inherit outline-5 :foreground nil)))) + (gnus-cite-6 ((,class (:inherit outline-6 :foreground nil)))) + (gnus-cite-7 ((,class (:inherit outline-7 :foreground nil)))) + (gnus-cite-8 ((,class (:inherit outline-8 :foreground nil)))) + ;; there are several more -cite- faces... + (gnus-header-content ((,class (:inherit message-header-other)))) + (gnus-header-subject ((,class (:inherit message-header-subject)))) + (gnus-header-from ((,class (:inherit message-header-other-face :weight bold :foreground ,orange)))) + (gnus-header-name ((,class (:inherit message-header-name)))) + (gnus-button ((,class (:inherit link :foreground nil)))) + (gnus-signature ((,class (:inherit font-lock-comment-face)))) + + (gnus-summary-normal-unread ((,class (:foreground ,blue :weight normal)))) + (gnus-summary-normal-read ((,class (:foreground ,foreground :weight normal)))) + (gnus-summary-normal-ancient ((,class (:foreground ,aqua :weight normal)))) + (gnus-summary-normal-ticked ((,class (:foreground ,orange :weight normal)))) + (gnus-summary-low-unread ((,class (:foreground ,comment :weight normal)))) + (gnus-summary-low-read ((,class (:foreground ,comment :weight normal)))) + (gnus-summary-low-ancient ((,class (:foreground ,comment :weight normal)))) + (gnus-summary-high-unread ((,class (:foreground ,yellow :weight normal)))) + (gnus-summary-high-read ((,class (:foreground ,green :weight normal)))) + (gnus-summary-high-ancient ((,class (:foreground ,green :weight normal)))) + (gnus-summary-high-ticked ((,class (:foreground ,orange :weight normal)))) + (gnus-summary-cancelled ((,class (:foreground ,red :background nil :weight normal)))) + + (gnus-group-mail-low ((,class (:foreground ,comment)))) + (gnus-group-mail-low-empty ((,class (:foreground ,comment)))) + (gnus-group-mail-1 ((,class (:foreground nil :weight normal :inherit outline-1)))) + (gnus-group-mail-2 ((,class (:foreground nil :weight normal :inherit outline-2)))) + (gnus-group-mail-3 ((,class (:foreground nil :weight normal :inherit outline-3)))) + (gnus-group-mail-4 ((,class (:foreground nil :weight normal :inherit outline-4)))) + (gnus-group-mail-5 ((,class (:foreground nil :weight normal :inherit outline-5)))) + (gnus-group-mail-6 ((,class (:foreground nil :weight normal :inherit outline-6)))) + (gnus-group-mail-1-empty ((,class (:inherit gnus-group-mail-1 :foreground ,comment)))) + (gnus-group-mail-2-empty ((,class (:inherit gnus-group-mail-2 :foreground ,comment)))) + (gnus-group-mail-3-empty ((,class (:inherit gnus-group-mail-3 :foreground ,comment)))) + (gnus-group-mail-4-empty ((,class (:inherit gnus-group-mail-4 :foreground ,comment)))) + (gnus-group-mail-5-empty ((,class (:inherit gnus-group-mail-5 :foreground ,comment)))) + (gnus-group-mail-6-empty ((,class (:inherit gnus-group-mail-6 :foreground ,comment)))) + (gnus-group-news-1 ((,class (:foreground nil :weight normal :inherit outline-5)))) + (gnus-group-news-2 ((,class (:foreground nil :weight normal :inherit outline-6)))) + (gnus-group-news-3 ((,class (:foreground nil :weight normal :inherit outline-7)))) + (gnus-group-news-4 ((,class (:foreground nil :weight normal :inherit outline-8)))) + (gnus-group-news-5 ((,class (:foreground nil :weight normal :inherit outline-1)))) + (gnus-group-news-6 ((,class (:foreground nil :weight normal :inherit outline-2)))) + (gnus-group-news-1-empty ((,class (:inherit gnus-group-news-1 :foreground ,comment)))) + (gnus-group-news-2-empty ((,class (:inherit gnus-group-news-2 :foreground ,comment)))) + (gnus-group-news-3-empty ((,class (:inherit gnus-group-news-3 :foreground ,comment)))) + (gnus-group-news-4-empty ((,class (:inherit gnus-group-news-4 :foreground ,comment)))) + (gnus-group-news-5-empty ((,class (:inherit gnus-group-news-5 :foreground ,comment)))) + (gnus-group-news-6-empty ((,class (:inherit gnus-group-news-6 :foreground ,comment)))) + + (erc-direct-msg-face ((,class (:foreground ,orange)))) + (erc-error-face ((,class (:foreground ,red)))) + (erc-header-face ((,class (:foreground ,foreground :background ,selection)))) + (erc-input-face ((,class (:foreground ,green)))) + (erc-keyword-face ((,class (:foreground ,yellow)))) + (erc-current-nick-face ((,class (:foreground ,green)))) + (erc-my-nick-face ((,class (:foreground ,green)))) + (erc-nick-default-face ((,class (:weight normal :foreground ,purple)))) + (erc-nick-msg-face ((,class (:weight normal :foreground ,yellow)))) + (erc-notice-face ((,class (:foreground ,comment)))) + (erc-pal-face ((,class (:foreground ,orange)))) + (erc-prompt-face ((,class (:foreground ,blue)))) + (erc-timestamp-face ((,class (:foreground ,aqua)))) + + (custom-variable-tag ((,class (:foreground ,blue)))) + (custom-group-tag ((,class (:foreground ,blue)))) + (custom-state ((,class (:foreground ,green)))) + ))) + +(defmacro color-theme-tomorrow--frame-parameter-specs () + "Return a backquote which defines a list of frame parameter specs. + +These are required by color-theme's `color-theme-install', but +not by the new `deftheme' mechanism. It expects to be evaluated +in a scope in which the various color names to which it refers +are bound." + (quote + `(((background-color . ,background) + (background-mode . light) + (border-color . ,foreground) + (cursor-color . ,purple) + (foreground-color . ,foreground) + (mouse-color . ,aqua))))) + +(defun color-theme-tomorrow--theme-name (mode) + (intern (format "tomorrow-%s" (symbol-name mode)))) + +(defmacro color-theme-tomorrow--define-theme (mode) + "Define a theme for the tomorrow variant `MODE'." + (let ((name (color-theme-tomorrow--theme-name mode)) + (doc (format "tomorrow-%s" mode))) + `(progn + (deftheme ,name ,doc) + (color-theme-tomorrow--with-colors + ',mode + (apply 'custom-theme-set-faces ',name + (color-theme-tomorrow--face-specs)) + (custom-theme-set-variables + ',name + `(fci-rule-color ,current-line) + `(ansi-color-names-vector (vector ,foreground ,red ,green ,yellow ,blue ,purple ,aqua ,background)) + '(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold]))) + (provide-theme ',name)))) + + +(defun color-theme-tomorrow-real (mode) + "Apply the tomorrow variant theme." + (if (fboundp 'load-theme) + (let ((name (color-theme-tomorrow--theme-name mode))) + (if (> emacs-major-version 23) + (load-theme name t) + (load-theme name))) + (progn + (require 'color-theme) + (color-theme-tomorrow--with-colors + mode + (color-theme-install + `(,(intern (concat "color-theme-tomorrow-" (symbol-name mode))) + ,@(color-theme-tomorrow--frame-parameter-specs) + ,@(color-theme-tomorrow--face-specs))) + ;; ansi-color - comint and other modes that handle terminal color escape sequences + (setq ansi-color-names-vector (vector foreground red green yellow blue purple aqua background)) + (setq ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold]))))) + +;;;###autoload +(when (boundp 'custom-theme-load-path) + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +;;;###autoload +(defun color-theme-tomorrow-night () + (interactive) + (color-theme-tomorrow-real 'night)) + +;;;###autoload +(defun color-theme-tomorrow () + (interactive) + (color-theme-tomorrow-real 'day)) + +;;;###autoload +(defun color-theme-tomorrow-night-bright () + (interactive) + (color-theme-tomorrow-real 'night-bright)) + +;;;###autoload +(defun color-theme-tomorrow-night-eighties () + (interactive) + (color-theme-tomorrow-real 'night-eighties)) + +;;;###autoload +(defun color-theme-tomorrow-night-blue () + (interactive) + (color-theme-tomorrow-real 'night-blue)) + + +(provide 'color-theme-tomorrow) + +;; Local Variables: +;; byte-compile-warnings: (not cl-functions) +;; End: + +;;; color-theme-tomorrow.el ends here diff --git a/themes/tomorrow-night-blue-theme.el b/themes/tomorrow-night-blue-theme.el new file mode 100644 index 0000000..32ffdde --- /dev/null +++ b/themes/tomorrow-night-blue-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-blue) diff --git a/themes/tomorrow-night-bright-theme.el b/themes/tomorrow-night-bright-theme.el new file mode 100644 index 0000000..c1be97e --- /dev/null +++ b/themes/tomorrow-night-bright-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-bright) diff --git a/themes/tomorrow-night-eighties-theme.el b/themes/tomorrow-night-eighties-theme.el new file mode 100644 index 0000000..4818341 --- /dev/null +++ b/themes/tomorrow-night-eighties-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-eighties) diff --git a/themes/tomorrow-night-theme.el b/themes/tomorrow-night-theme.el new file mode 100644 index 0000000..67c9a25 --- /dev/null +++ b/themes/tomorrow-night-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night) diff --git a/themes/tomorrow-theme.el b/themes/tomorrow-theme.el new file mode 100644 index 0000000..58761dd --- /dev/null +++ b/themes/tomorrow-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme day) diff --git a/themes/zenburn-theme.el b/themes/zenburn-theme.el new file mode 100644 index 0000000..5395d28 --- /dev/null +++ b/themes/zenburn-theme.el @@ -0,0 +1,474 @@ +;;; zenburn-theme.el --- A low contrast color theme for Emacs. + +;; Copyright (C) 2011 Bozhidar Batsov + +;; Author: Bozhidar Batsov +;; URL: http://github.com/bbatsov/zenburn-emacs +;; Version: 0.1 + +;; This program 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. + +;; This program 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 this program. If not, see . + +;;; Commentary: +;; +;; A port of the popular Vim theme Zenburn for Emacs 24, built on top of +;; the new built-in theme support in Emacs 24. There exists one other version of the +;; theme by Daniel Brockman. My version was originally based on it, +;; but it was in such a disarray, that I decided to rewrite it from +;; scratch in a more maintainable manner (hopefully). +;; +;;; Installation: +;; +;; Drop the theme in a folder that is on `custom-theme-load-path' +;; and enjoy! +;; +;; Don't forget that the theme requires Emacs 24. +;; +;;; Bugs +;; +;; None that I'm aware of. +;; +;;; Credits +;; +;; Jani Nurminen created the original theme for vim on such this port +;; is based. +;; +;;; Code +(deftheme zenburn "The Zenburn color theme") + +(let ((class '((class color) (min-colors 89))) + ;; Zenburn palette + ;; colors with +x are lighter, colors with -x are darker + (zenburn-fg "#dcdccc") + (zenburn-fg-1 "#656555") + (zenburn-bg-1 "#2b2b2b") + (zenburn-bg-05 "#383838") + (zenburn-bg "#3f3f3f") + (zenburn-bg+1 "#4f4f4f") + (zenburn-bg+2 "#5f5f5f") + (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")) + (custom-theme-set-faces + 'zenburn + '(button ((t (:underline t)))) + `(link ((,class (:foreground ,zenburn-yellow :underline t :weight bold)))) + `(link-visited ((,class (:foreground ,zenburn-yellow-2 :underline t :weight normal)))) + + ;;; define some reusable zenburn faces that we can inherit from afterwards + `(zenburn-strong-1-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(zenburn-strong-2-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(zenburn-warning-face ((,class (:foreground ,zenburn-yellow-1 :weight bold :underline t)))) + `(zenburn-error-face ((,class (:foreground ,zenburn-red-1 :weight bold :underline t)))) + + ;;; basic coloring + `(default ((,class (:foreground ,zenburn-fg :background ,zenburn-bg)))) + `(cursor ((,class (:foreground ,zenburn-fg)))) + `(escape-glyph-face ((,class (:foreground ,zenburn-red)))) + `(fringe ((,class (:foreground ,zenburn-fg :background ,zenburn-bg+1)))) + `(header-line ((,class (:foreground ,zenburn-yellow + :background ,zenburn-bg-1 + :box (:line-width -1 :style released-button))))) + `(highlight ((,class (:background ,zenburn-bg-05)))) + + ;;; compilation + `(compilation-column-face ((,class (:foreground ,zenburn-yellow)))) + `(compilation-enter-directory-face ((,class (:foreground ,zenburn-green)))) + `(compilation-error-face ((,class (:foreground ,zenburn-red-1 :weight bold :underline t)))) + `(compilation-face ((,class (:foreground ,zenburn-fg)))) + `(compilation-info-face ((,class (:foreground ,zenburn-blue)))) + `(compilation-info ((,class (:foreground ,zenburn-green+4 :underline t)))) + `(compilation-leave-directory-face ((,class (:foreground ,zenburn-green)))) + `(compilation-line-face ((,class (:foreground ,zenburn-yellow)))) + `(compilation-line-number ((,class (:foreground ,zenburn-yellow)))) + `(compilation-message-face ((,class (:foreground ,zenburn-blue)))) + `(compilation-warning-face ((,class (:foreground ,zenburn-yellow-1 :weight bold :underline t)))) + + ;;; grep + `(grep-context-face ((,class (:foreground ,zenburn-fg)))) + `(grep-error-face ((,class (:foreground ,zenburn-red-1 :weight bold :underline t)))) + `(grep-hit-face ((,class (:foreground ,zenburn-blue)))) + `(grep-match-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(match ((,class (:background ,zenburn-bg-1 :foreground ,zenburn-orange :weight bold)))) + + ;; faces used by isearch + `(isearch ((,class (:foreground ,zenburn-yellow :background ,zenburn-bg-1)))) + `(isearch-fail ((,class (:foreground ,zenburn-fg :background ,zenburn-red-4)))) + `(lazy-highlight ((,class (:foreground ,zenburn-yellow :background ,zenburn-bg+2)))) + + `(menu ((,class (:foreground ,zenburn-fg :background ,zenburn-bg)))) + `(minibuffer-prompt ((,class (:foreground ,zenburn-yellow)))) + `(mode-line + ((,class (:foreground ,zenburn-green+1 + :background ,zenburn-bg-1 + :box (:line-width -1 :style released-button))))) + `(mode-line-buffer-id ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(mode-line-inactive + ((,class (:foreground ,zenburn-green-1 + :background ,zenburn-bg-05 + :box (:line-width -1 :style released-button))))) + `(region ((,class (:background ,zenburn-bg-1)))) + `(secondary-selection ((,class (:background ,zenburn-bg+2)))) + `(trailing-whitespace ((,class (:background ,zenburn-red)))) + `(vertical-border ((,class (:foreground ,zenburn-fg)))) + + ;;; font lock + `(font-lock-builtin-face ((,class (:foreground ,zenburn-blue)))) + `(font-lock-comment-face ((,class (:foreground ,zenburn-green)))) + `(font-lock-comment-delimiter-face ((,class (:foreground ,zenburn-green)))) + `(font-lock-constant-face ((,class (:foreground ,zenburn-green+4)))) + `(font-lock-doc-face ((,class (:foreground ,zenburn-green+1)))) + `(font-lock-doc-string-face ((,class (:foreground ,zenburn-blue+1)))) + `(font-lock-function-name-face ((,class (:foreground ,zenburn-blue)))) + `(font-lock-keyword-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(font-lock-negation-char-face ((,class (:foreground ,zenburn-fg)))) + `(font-lock-preprocessor-face ((,class (:foreground ,zenburn-blue)))) + `(font-lock-string-face ((,class (:foreground ,zenburn-red)))) + `(font-lock-type-face ((,class (:foreground ,zenburn-blue)))) + `(font-lock-variable-name-face ((,class (:foreground ,zenburn-orange)))) + `(font-lock-warning-face ((,class (:foreground ,zenburn-yellow-1 :weight bold :underline t)))) + + `(c-annotation-face ((,class (:inherit font-lock-constant-face)))) + + ;;; external + + ;; diff + `(diff-added ((,class (:foreground ,zenburn-green+4)))) + `(diff-changed ((,class (:foreground ,zenburn-yellow)))) + `(diff-removed ((,class (:foreground ,zenburn-red)))) + `(diff-header ((,class (:background ,zenburn-bg+1)))) + `(diff-file-header + ((,class (:background ,zenburn-bg+2 :foreground ,zenburn-fg :bold t)))) + + ;; eshell + `(eshell-prompt ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(eshell-ls-archive ((,class (:foreground ,zenburn-red-1 :weight bold)))) + `(eshell-ls-backup ((,class (:inherit font-lock-comment)))) + `(eshell-ls-clutter ((,class (:inherit font-lock-comment)))) + `(eshell-ls-directory ((,class (:foreground ,zenburn-blue+1 :weight bold)))) + `(eshell-ls-executable ((,class (:foreground ,zenburn-red+1 :weight bold)))) + `(eshell-ls-unreadable ((,class (:foreground ,zenburn-fg)))) + `(eshell-ls-missing ((,class (:inherit font-lock-warning)))) + `(eshell-ls-product ((,class (:inherit font-lock-doc)))) + `(eshell-ls-special ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(eshell-ls-symlink ((,class (:foreground ,zenburn-cyan :weight bold)))) + + ;; flymake + `(flymake-errline ((,class (:foreground ,zenburn-red-1 :weight bold :underline t)))) + `(flymake-warnline ((,class (:foreground ,zenburn-yellow-1 :weight bold :underline t)))) + + ;; flyspell + `(flyspell-duplicate ((,class (:foreground ,zenburn-yellow-1 :weight bold :underline t)))) + `(flyspell-incorrect ((,class (:foreground ,zenburn-red-1 :weight bold :underline t)))) + + ;; erc + `(erc-action-face ((,class (:inherit erc-default-face)))) + `(erc-bold-face ((,class (:weight bold)))) + `(erc-current-nick-face ((,class (:foreground ,zenburn-blue :weight bold)))) + `(erc-dangerous-host-face ((,class (:inherit font-lock-warning)))) + `(erc-default-face ((,class (:foreground ,zenburn-fg)))) + `(erc-direct-msg-face ((,class (:inherit erc-default)))) + `(erc-error-face ((,class (:inherit font-lock-warning)))) + `(erc-fool-face ((,class (:inherit erc-default)))) + `(erc-highlight-face ((,class (:inherit hover-highlight)))) + `(erc-input-face ((,class (:foreground ,zenburn-yellow)))) + `(erc-keyword-face ((,class (:foreground ,zenburn-blue :weight bold)))) + `(erc-nick-default-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(erc-my-nick-face ((,class (:foreground ,zenburn-red :weigth bold)))) + `(erc-nick-msg-face ((,class (:inherit erc-default)))) + `(erc-notice-face ((,class (:foreground ,zenburn-green)))) + `(erc-pal-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(erc-prompt-face ((,class (:foreground ,zenburn-orange :background ,zenburn-bg :weight bold)))) + `(erc-timestamp-face ((,class (:foreground ,zenburn-green+1)))) + `(erc-underline-face ((t (:underline t)))) + + ;; gnus + `(gnus-group-mail-1-face ((,class (:bold t :inherit gnus-group-mail-1-empty)))) + `(gnus-group-mail-1-empty-face ((,class (:inherit gnus-group-news-1-empty)))) + `(gnus-group-mail-2-face ((,class (:bold t :inherit gnus-group-mail-2-empty)))) + `(gnus-group-mail-2-empty-face ((,class (:inherit gnus-group-news-2-empty)))) + `(gnus-group-mail-3-face ((,class (:bold t :inherit gnus-group-mail-3-empty)))) + `(gnus-group-mail-3-empty-face ((,class (:inherit gnus-group-news-3-empty)))) + `(gnus-group-mail-4-face ((,class (:bold t :inherit gnus-group-mail-4-empty)))) + `(gnus-group-mail-4-empty-face ((,class (:inherit gnus-group-news-4-empty)))) + `(gnus-group-mail-5-face ((,class (:bold t :inherit gnus-group-mail-5-empty)))) + `(gnus-group-mail-5-empty-face ((,class (:inherit gnus-group-news-5-empty)))) + `(gnus-group-mail-6-face ((,class (:bold t :inherit gnus-group-mail-6-empty)))) + `(gnus-group-mail-6-empty-face ((,class (:inherit gnus-group-news-6-empty)))) + `(gnus-group-mail-low-face ((,class (:bold t :inherit gnus-group-mail-low-empty)))) + `(gnus-group-mail-low-empty-face ((,class (:inherit gnus-group-news-low-empty)))) + `(gnus-group-news-1-face ((,class (:bold t :inherit gnus-group-news-1-empty)))) + `(gnus-group-news-2-face ((,class (:bold t :inherit gnus-group-news-2-empty)))) + `(gnus-group-news-3-face ((,class (:bold t :inherit gnus-group-news-3-empty)))) + `(gnus-group-news-4-face ((,class (:bold t :inherit gnus-group-news-4-empty)))) + `(gnus-group-news-5-face ((,class (:bold t :inherit gnus-group-news-5-empty)))) + `(gnus-group-news-6-face ((,class (:bold t :inherit gnus-group-news-6-empty)))) + `(gnus-group-news-low-face ((,class (:bold t :inherit gnus-group-news-low-empty)))) + `(gnus-header-content-face ((,class (:inherit message-header-other)))) + `(gnus-header-from-face ((,class (:inherit message-header-from)))) + `(gnus-header-name-face ((,class (:inherit message-header-name)))) + `(gnus-header-newsgroups-face ((,class (:inherit message-header-other)))) + `(gnus-header-subject-face ((,class (:inherit message-header-subject)))) + `(gnus-summary-cancelled-face ((,class (:foreground ,zenburn-orange)))) + `(gnus-summary-high-ancient-face ((,class (:foreground ,zenburn-blue)))) + `(gnus-summary-high-read-face ((,class (:foreground ,zenburn-green :weight bold)))) + `(gnus-summary-high-ticked-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(gnus-summary-high-unread-face ((,class (:foreground ,zenburn-fg :weight bold)))) + `(gnus-summary-low-ancient-face ((,class (:foreground ,zenburn-blue)))) + `(gnus-summary-low-read-face ((t (:foreground ,zenburn-green)))) + `(gnus-summary-low-ticked-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(gnus-summary-low-unread-face ((,class (:foreground ,zenburn-fg)))) + `(gnus-summary-normal-ancient-face ((,class (:foreground ,zenburn-blue)))) + `(gnus-summary-normal-read-face ((,class (:foreground ,zenburn-green)))) + `(gnus-summary-normal-ticked-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(gnus-summary-normal-unread-face ((,class (:foreground ,zenburn-fg)))) + `(gnus-summary-selected-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(gnus-cite-1-face ((,class (:foreground ,zenburn-blue)))) + `(gnus-cite-10-face ((,class (:foreground ,zenburn-yellow-1)))) + `(gnus-cite-11-face ((,class (:foreground ,zenburn-yellow)))) + `(gnus-cite-2-face ((,class (:foreground ,zenburn-blue-1)))) + `(gnus-cite-3-face ((,class (:foreground ,zenburn-blue-2)))) + `(gnus-cite-4-face ((,class (:foreground ,zenburn-green+2)))) + `(gnus-cite-5-face ((,class (:foreground ,zenburn-green+1)))) + `(gnus-cite-6-face ((,class (:foreground ,zenburn-green)))) + `(gnus-cite-7-face ((,class (:foreground ,zenburn-red)))) + `(gnus-cite-8-face ((,class (:foreground ,zenburn-red-1)))) + `(gnus-cite-9-face ((,class (:foreground ,zenburn-red-2)))) + `(gnus-group-news-1-empty-face ((,class (:foreground ,zenburn-yellow)))) + `(gnus-group-news-2-empty-face ((,class (:foreground ,zenburn-green+3)))) + `(gnus-group-news-3-empty-face ((,class (:foreground ,zenburn-green+1)))) + `(gnus-group-news-4-empty-face ((,class (:foreground ,zenburn-blue-2)))) + `(gnus-group-news-5-empty-face ((,class (:foreground ,zenburn-blue-3)))) + `(gnus-group-news-6-empty-face ((,class (:foreground ,zenburn-bg+2)))) + `(gnus-group-news-low-empty-face ((,class (:foreground ,zenburn-bg+2)))) + `(gnus-signature-face ((,class (:foreground ,zenburn-yellow)))) + `(gnus-x-face ((,class (:background ,zenburn-fg :foreground ,zenburn-bg)))) + + ;; hl-line-mode + `(hl-line-face ((,class (:background ,zenburn-bg-1)))) + + ;; ido-mode + `(ido-first-match ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(ido-only-match ((,class (:foreground ,zenburn-orange :weight bold)))) + `(ido-subdir ((,class (:foreground ,zenburn-yellow)))) + + ;; linum-mode + `(linum ((,class (:foreground ,zenburn-fg-1 :background ,zenburn-bg-1)))) + + ;; magit + `(magit-section-title ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(magit-branch ((,class (:foreground ,zenburn-orange :weight bold)))) + + ;; message-mode + `(message-cited-text-face ((,class (:inherit font-lock-comment)))) + `(message-header-name-face ((,class (:foreground ,zenburn-green+1)))) + `(message-header-other-face ((,class (:foreground ,zenburn-green)))) + `(message-header-to-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(message-header-from-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(message-header-cc-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(message-header-newsgroups-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(message-header-subject-face ((,class (:foreground ,zenburn-orange :weight bold)))) + `(message-header-xheader-face ((,class (:foreground ,zenburn-green)))) + `(message-mml-face ((,class (:foreground ,zenburn-yellow :weight bold)))) + `(message-separator-face ((,class (:inherit font-lock-comment)))) + + ;; mew + `(mew-face-header-subject ((,class (:foreground ,zenburn-orange)))) + `(mew-face-header-from ((,class (:foreground ,zenburn-yellow)))) + `(mew-face-header-date ((,class (:foreground ,zenburn-green)))) + `(mew-face-header-to ((,class (:foreground ,zenburn-red)))) + `(mew-face-header-key ((,class (:foreground ,zenburn-green)))) + `(mew-face-header-private ((,class (:foreground ,zenburn-green)))) + `(mew-face-header-important ((,class (:foreground ,zenburn-blue)))) + `(mew-face-header-marginal ((,class (:foreground ,zenburn-fg :weight bold)))) + `(mew-face-header-warning ((,class (:foreground ,zenburn-red)))) + `(mew-face-header-xmew ((,class (:foreground ,zenburn-green)))) + `(mew-face-header-xmew-bad ((,class (:foreground ,zenburn-red)))) + `(mew-face-body-url ((,class (:foreground ,zenburn-orange)))) + `(mew-face-body-comment ((,class (:foreground ,zenburn-fg :slant italic)))) + `(mew-face-body-cite1 ((,class (:foreground ,zenburn-green)))) + `(mew-face-body-cite2 ((,class (:foreground ,zenburn-blue)))) + `(mew-face-body-cite3 ((,class (:foreground ,zenburn-orange)))) + `(mew-face-body-cite4 ((,class (:foreground ,zenburn-yellow)))) + `(mew-face-body-cite5 ((,class (:foreground ,zenburn-red)))) + `(mew-face-mark-review ((,class (:foreground ,zenburn-blue)))) + `(mew-face-mark-escape ((,class (:foreground ,zenburn-green)))) + `(mew-face-mark-delete ((,class (:foreground ,zenburn-red)))) + `(mew-face-mark-unlink ((,class (:foreground ,zenburn-yellow)))) + `(mew-face-mark-refile ((,class (:foreground ,zenburn-green)))) + `(mew-face-mark-unread ((,class (:foreground ,zenburn-red-2)))) + `(mew-face-eof-message ((,class (:foreground ,zenburn-green)))) + `(mew-face-eof-part ((,class (:foreground ,zenburn-yellow)))) + + ;; nav + `(nav-face-heading ((,class (:foreground ,zenburn-yellow)))) + `(nav-face-button-num ((,class (:foreground ,zenburn-cyan)))) + `(nav-face-dir ((,class (:foreground ,zenburn-green)))) + `(nav-face-hdir ((,class (:foreground ,zenburn-red)))) + `(nav-face-file ((,class (:foreground ,zenburn-fg)))) + `(nav-face-hfile ((,class (:foreground ,zenburn-red-4)))) + + ;; org-mode + `(org-agenda-date-today + ((,class (:foreground "white" :slant italic :weight bold))) t) + `(org-agenda-structure + ((,class (:inherit font-lock-comment-face)))) + `(org-archived ((,class (:foreground ,zenburn-fg :weight bold)))) + `(org-checkbox ((,class (:background ,zenburn-bg+2 :foreground "white" + :box (:line-width 1 :style released-button))))) + `(org-date ((,class (:foreground ,zenburn-blue :underline t)))) + `(org-deadline-announce ((,class (:foreground ,zenburn-red-1)))) + `(org-done ((,class (:bold t :weight bold :foreground ,zenburn-green+3)))) + `(org-formula ((,class (:foreground ,zenburn-yellow-2)))) + `(org-headline-done ((,class (:foreground ,zenburn-green+3)))) + `(org-hide ((,class (:foreground ,zenburn-bg-1)))) + `(org-level-1 ((,class (:foreground ,zenburn-orange)))) + `(org-level-2 ((,class (:foreground ,zenburn-green+1)))) + `(org-level-3 ((,class (:foreground ,zenburn-blue-1)))) + `(org-level-4 ((,class (:foreground ,zenburn-yellow-2)))) + `(org-level-5 ((,class (:foreground ,zenburn-cyan)))) + `(org-level-6 ((,class (:foreground ,zenburn-green-1)))) + `(org-level-7 ((,class (:foreground ,zenburn-red-4)))) + `(org-level-8 ((,class (:foreground ,zenburn-blue-4)))) + `(org-link ((,class (:foreground ,zenburn-yellow-2 :underline t)))) + `(org-scheduled ((,class (:foreground ,zenburn-green+4)))) + `(org-scheduled-previously ((,class (:foreground ,zenburn-red-4)))) + `(org-scheduled-today ((,class (:foreground ,zenburn-blue+1)))) + `(org-special-keyword ((,class (:foreground ,zenburn-yellow-1)))) + `(org-table ((,class (:foreground ,zenburn-green+2)))) + `(org-tag ((,class (:bold t :weight bold)))) + `(org-time-grid ((,class (:foreground ,zenburn-orange)))) + `(org-todo ((,class (:bold t :foreground ,zenburn-red :weight bold)))) + `(org-upcoming-deadline ((,class (:inherit font-lock-keyword-face)))) + `(org-warning ((,class (:bold t :foreground ,zenburn-red :weight bold)))) + + ;; outline + `(outline-8 ((,class (:inherit default)))) + `(outline-7 ((,class (:inherit outline-8 :height 1.0)))) + `(outline-6 ((,class (:inherit outline-7 :height 1.0)))) + `(outline-5 ((,class (:inherit outline-6 :height 1.0)))) + `(outline-4 ((,class (:inherit outline-5 :height 1.0)))) + `(outline-3 ((,class (:inherit outline-4 :height 1.0)))) + `(outline-2 ((,class (:inherit outline-3 :height 1.0)))) + `(outline-1 ((,class (:inherit outline-2 :height 1.0)))) + + ;; rainbow-delimiters + `(rainbow-delimiters-depth-1-face ((,class (:foreground ,zenburn-cyan)))) + `(rainbow-delimiters-depth-2-face ((,class (:foreground ,zenburn-yellow)))) + `(rainbow-delimiters-depth-3-face ((,class (:foreground ,zenburn-blue+1)))) + `(rainbow-delimiters-depth-4-face ((,class (:foreground ,zenburn-red+1)))) + `(rainbow-delimiters-depth-5-face ((,class (:foreground ,zenburn-orange)))) + `(rainbow-delimiters-depth-6-face ((,class (:foreground ,zenburn-blue-1)))) + `(rainbow-delimiters-depth-7-face ((,class (:foreground ,zenburn-green+4)))) + `(rainbow-delimiters-depth-8-face ((,class (:foreground ,zenburn-red-3)))) + `(rainbow-delimiters-depth-9-face ((,class (:foreground ,zenburn-yellow-2)))) + `(rainbow-delimiters-depth-10-face ((,class (:foreground ,zenburn-green+2)))) + `(rainbow-delimiters-depth-11-face ((,class (:foreground ,zenburn-blue+1)))) + `(rainbow-delimiters-depth-12-face ((,class (:foreground ,zenburn-red-4)))) + + ;; rpm-mode + `(rpm-spec-dir-face ((,class (:foreground ,zenburn-green)))) + `(rpm-spec-doc-face ((,class (:foreground ,zenburn-green)))) + `(rpm-spec-ghost-face ((,class (:foreground ,zenburn-red)))) + `(rpm-spec-macro-face ((,class (:foreground ,zenburn-yellow)))) + `(rpm-spec-obsolete-tag-face ((,class (:foreground ,zenburn-red)))) + `(rpm-spec-package-face ((,class (:foreground ,zenburn-red)))) + `(rpm-spec-section-face ((,class (:foreground ,zenburn-yellow)))) + `(rpm-spec-tag-face ((,class (:foreground ,zenburn-blue)))) + `(rpm-spec-var-face ((,class (:foreground ,zenburn-red)))) + + ;; show-paren + `(show-paren-mismatch ((,class (:foreground ,zenburn-red-3 :background ,zenburn-bg :weight bold)))) + `(show-paren-match ((,class (:foreground ,zenburn-blue-1 :background ,zenburn-bg :weight bold)))) + + ;; SLIME + `(slime-repl-inputed-output-face ((,class (:foreground ,zenburn-red)))) + + ;; whitespace-mode + `(whitespace-space ((,class (:background ,zenburn-bg :foreground ,zenburn-bg+1)))) + `(whitespace-hspace ((,class (:background ,zenburn-bg :foreground ,zenburn-bg+1)))) + `(whitespace-tab ((,class (:background ,zenburn-bg :foreground ,zenburn-red)))) + `(whitespace-newline ((,class (:foreground ,zenburn-bg+1)))) + `(whitespace-trailing ((,class (:foreground ,zenburn-red :background ,zenburn-bg)))) + `(whitespace-line ((,class (:background ,zenburn-bg-05 :foreground ,zenburn-magenta)))) + `(whitespace-space-before-tab ((,class (:background ,zenburn-orange :foreground ,zenburn-orange)))) + `(whitespace-indentation ((,class (:background ,zenburn-yellow, :foreground ,zenburn-red)))) + `(whitespace-empty ((,class (:background ,zenburn-yellow :foreground ,zenburn-red)))) + `(whitespace-space-after-tab ((,class (:background ,zenburn-yellow :foreground ,zenburn-red)))) + + ;; wanderlust + `(wl-highlight-folder-few-face ((,class (:foreground ,zenburn-red-2)))) + `(wl-highlight-folder-many-face ((,class (:foreground ,zenburn-red-1)))) + `(wl-highlight-folder-path-face ((,class (:foreground ,zenburn-orange)))) + `(wl-highlight-folder-unread-face ((,class (:foreground ,zenburn-blue)))) + `(wl-highlight-folder-zero-face ((,class (:foreground ,zenburn-fg)))) + `(wl-highlight-folder-unknown-face ((,class (:foreground ,zenburn-blue)))) + `(wl-highlight-message-citation-header ((,class (:foreground ,zenburn-red-1)))) + `(wl-highlight-message-cited-text-1 ((,class (:foreground ,zenburn-red)))) + `(wl-highlight-message-cited-text-2 ((,class (:foreground ,zenburn-green+2)))) + `(wl-highlight-message-cited-text-3 ((,class (:foreground ,zenburn-blue)))) + `(wl-highlight-message-cited-text-4 ((,class (:foreground ,zenburn-blue+1)))) + `(wl-highlight-message-header-contents-face ((,class (:foreground ,zenburn-green)))) + `(wl-highlight-message-headers-face ((,class (:foreground ,zenburn-red+1)))) + `(wl-highlight-message-important-header-contents ((,class (:foreground ,zenburn-green+2)))) + `(wl-highlight-message-header-contents ((,class (:foreground ,zenburn-green+1)))) + `(wl-highlight-message-important-header-contents2 ((,class (:foreground ,zenburn-green+2)))) + `(wl-highlight-message-signature ((,class (:foreground ,zenburn-green)))) + `(wl-highlight-message-unimportant-header-contents ((,class (:foreground ,zenburn-fg)))) + `(wl-highlight-summary-answered-face ((,class (:foreground ,zenburn-blue)))) + `(wl-highlight-summary-disposed-face ((,class (:foreground ,zenburn-fg + :slant italic)))) + `(wl-highlight-summary-new-face ((,class (:foreground ,zenburn-blue)))) + `(wl-highlight-summary-normal-face ((,class (:foreground ,zenburn-fg)))) + `(wl-highlight-summary-thread-top-face ((,class (:foreground ,zenburn-yellow)))) + `(wl-highlight-thread-indent-face ((,class (:foreground ,zenburn-magenta)))) + `(wl-highlight-summary-refiled-face ((,class (:foreground ,zenburn-fg)))) + `(wl-highlight-summary-displaying-face ((,class (:underline t :weight bold)))) + + ;; which-func-mode + `(which-func ((,class (:foreground ,zenburn-green+1)))))) + +(custom-theme-set-variables + 'zenburn + '(ansi-color-names-vector [zenburn-bg zenburn-red zenburn-green zenburn-yellow + zenburn-blue zenburn-magenta zenburn-cyan zenburn-fg])) + +(provide-theme 'zenburn) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; zenburn-theme.el ends here.