修訂. | 68fee9ce6b1fb3f651614e02cd4b59bde819ee06 |
---|---|
大小 | 214,669 bytes |
時間 | 2024-06-11 01:12:02 |
作者 | Lorenzo Isella |
Log Message | I added the quarto mode package and I now load the library. |
;;; .emacs --- my Emacs Init File
;;
;; ___ _ __ ___ __ _ ___ ___
;; / _ \ '_ ` _ \ / _` |/ __/ __|
;; | __/ | | | | | (_| | (__\__ \
;; (_)___|_| |_| |_|\__,_|\___|___/
;;
;; no bells please
(setq ring-bell-function (lambda nil nil))
;; ;;I try using sylpheed to send emails
;; (autoload 'sylpheed-mode
;; "sylpheed-mode.el"
;; "Major mode for writing email with Sylpheed!" t)
;;-----------------------------------------------------------------
;; try-require: attempt to load a feature/library, failing silently
;;-----------------------------------------------------------------
(defvar missing-packages-list nil
"List of packages that `try-require' can't find.")
(defun try-require (feature)
"Attempt to load a library or module. Return true if the
library given as argument is successfully loaded. If not, instead
of an error, just add the package to a list of missing packages."
(condition-case err
;; protected form
(progn
(message "Checking for library `%s'..." feature)
(if (stringp feature)
(load-library feature)
(require feature))
(message "Checking for library `%s'... Found" feature))
;; error handler
(file-error ; condition
(progn
(message "Checking for library `%s'... Missing" feature)
(add-to-list 'missing-packages-list feature))
nil)))
;;-----------------------------------------------------------------
;; (setq package-enable-at-startup nil) (package-initialize)
;;----------------
;; AUTO-SAVE
;;----------------
(setq
auto-save-interval 300 ;auto-save every 5 minutes
auto-save-timeout nil
; version-control 'never
)
;; Save positions in files between sessions
(when (try-require 'saveplace)
(setq-default save-place t)
;; For server
(add-hook 'server-visit-hook 'save-place-find-file-hook t)
)
;; set a very long time before zone kicks in
(require 'zone)
;; (setq zone-idle (* 60 180)) ;; 3 hours
;; (zone-when-idle zone-idle)
(zone-leave-me-alone)
;**********************************************************
;*
;* Reload the .emacs file with a minimum of effort,
;* First saving histories with Persistent
;*
;**********************************************************
; see http://bit.ly/16IA11e
;; easy keys to split window. Key based on ErgoEmacs keybinding
(global-set-key (kbd "M-1") 'delete-other-windows) ; expand current pane
(global-set-key (kbd "M-2") 'split-window-vertically) ; split pane top/bottom
(global-set-key (kbd "M-4") 'delete-window) ; close current pane
(global-set-key (kbd "M-3") 'other-window) ; cursor to other pane
(defun reload () (interactive)
"Reload .emacs"
(persistent-session-save-alist-to-file)
(if (file-exists-p "~/.emacs")
(load-file "~/.emacs")))
;;; speedbar
;; (add-hook 'speedbar-load-hook
;; #'(lambda ()
;; ;; display minibuffer on speedbar frame
;; (defadvice speedbar-get-focus
;; (before change-default-minibuffer-frame activate)
;; "Change `default-minibuffer-frame' to now selected frame."
;; (interactive)
;; (setq default-minibuffer-frame (selected-frame)))
;; (or (eq (get 'speedbar-mode 'mode-class) 'special)
;; (put 'speedbar-mode 'mode-class 'special))))
;; (require 'sr-speedbar)
;; (global-set-key (kbd "C-c b") 'sr-speedbar-toggle)
;; (add-hook 'speedbar-mode-hook '(lambda() (toggle-truncate-lines nil)))
;; Saves the last 20 versions of each file I am editing in instead of the current
;; directory
(setq version-control t)
(setq kept-old-versions 0)
(setq kept-new-versions 20)
(setq delete-old-versions t)
(setq backup-directory-alist
'((".*" . "~/.emacs.d/backup-files/")))
;; macro to split windows and automatically take you to the new window.
(global-set-key (kbd "C-c 2") (kbd "C-x 2 C-x 4 b"))
;; macro to save register location
(global-set-key (kbd "C-c s") (kbd "C-x r SPC r"))
;; macro to jump to register location
(global-set-key (kbd "C-c j") (kbd "C-x r j r"))
;; Some functions to deal with line wrap in multiple buffers (e.g. C-x 3)
;; See http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_620.html
;; and http://www.gnu.org/software/emacs/manual/elisp.pdf
;; enable line wrap by default
(setq default-truncate-lines nil)
;; make side by side buffers function the same as the main window
;;(setq truncate-partial-width-windows nil)
;; Add F12 to toggle line wrap
(global-set-key [f12] 'toggle-truncate-lines)
;; make commenting easy ;)
(global-set-key (kbd "M-#") 'comment-region)
(global-set-key (kbd "C-#") 'comment-region)
;; toggle line numer display
(global-set-key (kbd "C-c n") 'global-linum-mode)
;; repeat simple and complex commands
(global-set-key (kbd "C-.") 'repeat)
;; select all
(global-set-key (kbd "C-x C-a") 'mark-whole-buffer)
;;function for easy formatting
(global-set-key [f9] 'shrink-whitespaces)
(defun shrink-whitespaces ()
"Collapse all white spaces around point, depending on context.
White space here includes space, tabs, and any end of line char.
This commands either calls just-one-space or delete-blank-lines."
(interactive)
(let (p1 p2 mytext)
(save-excursion
(skip-chars-backward "\t \n")
(setq p1 (point))
(skip-chars-forward "\t \n")
(setq p2 (point))
(setq mytext (buffer-substring-no-properties p1 p2))
)
(if (string-match "[\t ]*\n[\t ]*\n" mytext)
(progn (delete-blank-lines))
(progn (just-one-space))
)
)
)
;; ^E in Vi
(defun ctrl-e-in-vi (n)
(interactive "p")
(unless (eq (window-start) (point-min)) ; to avoid the beep of the beginning of the buffer
(scroll-down n)))
;; ^Y in Vi
(defun ctrl-y-in-vi (n)
(interactive "p")
(unless (eq (window-end) (point-max)) ; to avoid weird behaviour at the end of the buffer
(scroll-up n)))
(global-set-key [f1] 'ctrl-y-in-vi)
(global-set-key [f2] 'ctrl-e-in-vi)
;; (add-hook 'isearch-mode-hook
;; (lambda ()
;; (define-key isearch-mode-map (kbd "M-s") 'isearch-repeat-forward)
;; (define-key isearch-mode-map (kbd "M-S") 'isearch-repeat-backward)
;; )
;; )
;; to scroll the screen without moving the cursor
;; (global-set-key [down] (lambda ()
;; (interactive)
;; (next-line 1)
;; (unless (eq (window-end) (point-max))
;; (scroll-up 1))))
;; (global-set-key [up] (lambda ()
;; (interactive)
;; (previous-line 1)
;; (unless (eq (window-start) (point-min))
;; (scroll-down 1))))
;;cc mode for c/c++ files
(require 'cc-mode)
;; Choose a different tool for your buffer navigation
(defalias 'list-buffers 'ibuffer)
(global-set-key (kbd "C-c i") 'ibuffer)
;;(setq ibuffer-tree-truncate-lines nil)
;(setq ibuffer-eliding-string nil)
(setq ibuffer-truncate-lines nil)
(setq ibuffer-formats '((mark modified read-only " " (name 16 16) " "
(size 6 -1 :right) " " (mode 16 16 :center)
" " (process 8 -1) " " filename)
(mark " " (name 16 -1) " " filename))
ibuffer-elide-long-columns t
ibuffer-eliding-string "&")
;; Allow system copy in emacs
(setq x-select-enable-clipboard t)
;; IDO for autocompleting
(require 'ido)
(setq ido-confirm-unique-completion t)
;(setq ido-default-buffer-method 'samewindow)
(setq ido-use-filename-at-point t)
(ido-mode t)
(ido-everywhere t)
(set-face-background 'ido-first-match "red")
(set-face-foreground 'ido-subdir "blue3")
(icomplete-mode 1)
;; IDO extras
(defun my-icompleting-read(prompt choices)
(let ((ido-make-buffer-list-hook
(lambda ()
(setq ido-temp-list choices))))
(ido-read-buffer prompt)))
;(ido-buffer-internal ido-default-buffer-method nil nil nil "#")
(setq ido-execute-command-cache nil)
(defun ido-execute-command ()
(interactive)
(call-interactively
(intern
(ido-completing-read
"M-x "
(progn
(unless ido-execute-command-cache
(mapatoms (lambda (s)
(when (commandp s)
(setq ido-execute-command-cache
(cons (format "%S" s) ido-execute-command-cache))))))
ido-execute-command-cache)))))
(add-hook 'ido-setup-hook
(lambda ()
(setq ido-enable-flex-matching t)
(global-set-key "\M-x" 'ido-execute-command)))
;; Rectangle regions
(global-set-key (kbd "C-x r C-SPC") 'rm-set-mark)
(global-set-key (kbd "C-x r C-x") 'rm-exchange-point-and-mark)
(global-set-key (kbd "C-x r C-w") 'rm-kill-region)
(global-set-key (kbd "C-x r M-w") 'rm-kill-ring-save)
(autoload 'rm-set-mark "rect-mark"
"Set mark for rectangle." t)
(autoload 'rm-exchange-point-and-mark "rect-mark"
"Exchange point and mark for rectangle." t)
(autoload 'rm-kill-region "rect-mark"
"Kill a rectangular region and save it in the kill ring." t)
(autoload 'rm-kill-ring-save "rect-mark"
"Copy a rectangular region to the kill ring." t)
;; Some eshell stuff
(defun m-eshell-hook ()
; define control p, control n and the up/down arrow
(define-key eshell-mode-map [(control p)] 'eshell-previous-matching-input-from-input)
(define-key eshell-mode-map [(control n)] 'eshell-next-matching-input-from-input)
(define-key eshell-mode-map [up] 'previous-line)
(define-key eshell-mode-map [down] 'next-line)
)
(add-hook 'eshell-mode-hook 'm-eshell-hook)
(add-hook 'eshell-mode-hook #'rainbow-delimiters-mode)
(add-hook 'eshell-output-filter-functions
'eshell-postoutput-scroll-to-bottom) ;prevents annoying scrolling
; Put a space above eshell prompt
(setq eshell-prompt-function (lambda nil (concat "\n" (eshell/pwd) " $ ")))
; Make ls output RET and mouse-2 clickable
;(load-library "esh-clickable-ls.el")
; Type op file or op directory or op . in Eshell to open them in explorer, cool
;; (defun eshell/op (file)
;; (w32-shell-execute "Open" (substitute ?\\ ?/ (expand-file-name file))) nil)
;; eshell autocompletion for choosing directories
;; (defun eshell-get-dir-from-dir-ring (dir-name)
;; "Interactively select directory from eshell-last-dir-ring"
;; (interactive (list (flet ((iswitchb-make-buflist
;; (default)
;; (setq iswitchb-buflist (ring-elements eshell-last-dir-ring))))
;; (iswitchb-read-buffer "Change to directory: "))))
;; dir-name)
(defun eshell-electric-insert-dir ()
"Handy when copying and moving files to, or changing to a certain
directory. On the prompt, type a space, a colon (`:') and call this function,
preferably bound to the TAB key."
(interactive)
(if (save-excursion
(goto-char (- (point) 2))
(if (looking-at " :")
t
nil))
(let ((dir (call-interactively 'eshell-get-dir-from-dir-ring)))
(delete-char -1)
(insert (pcomplete-quote-argument dir)))
(pcomplete)))
(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.
'(TeX-PDF-mode t)
'(TeX-output-view-style
'(("^dvi$"
("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$")
"%(o?)dvips -t landscape %d -o && gv %f")
("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" "%(o?)dvips %d -o && gv %f")
("^dvi$"
("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "^landscape$")
"%(o?)xdvi %dS -paper a4r -s 0 %d")
("^dvi$" "^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "%(o?)xdvi %dS -paper a4 %d")
("^dvi$"
("^a5\\(?:comb\\|paper\\)$" "^landscape$")
"%(o?)xdvi %dS -paper a5r -s 0 %d")
("^dvi$" "^a5\\(?:comb\\|paper\\)$" "%(o?)xdvi %dS -paper a5 %d")
("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d")
("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d")
("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d")
("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d")
("^dvi$" "." "%(o?)xdvi %dS %d")
("^pdf$" "." "evince %o")
("^html?$" "." "netscape %o")))
'(TeX-view-program-selection
'(((output-dvi style-pstricks)
"dvips and gv")
(output-dvi "xdvi")
(output-pdf "Evince")
(output-html "xdg-open")))
'(blink-cursor-mode nil)
'(column-number-mode t)
'(comint-completion-addsuffix t)
'(comint-completion-autolist t)
'(comint-input-ignoredups t)
'(comint-move-point-for-output t)
'(comint-scroll-show-maximum-output t)
'(comint-scroll-to-bottom-on-input t)
'(custom-safe-themes
'("ab04c00a7e48ad784b52f34aa6bfa1e80d0c3fcacc50e1189af3651013eb0d58" "04dd0236a367865e591927a3810f178e8d33c372ad5bfef48b5ce90d4b476481" "a0feb1322de9e26a4d209d1cfa236deaf64662bb604fa513cca6a057ddf0ef64" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" "7cffb57df77c86686ca7f0486af3feb60d6502dd990fa4085245454bd2a77b04" "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" "8757381d23f0933ba03b350ed7fc225f2b2cef0e7bbaaa642105e3e346c1bf80" default))
'(display-time-24hr-format t)
'(display-time-mode t)
'(ecb-directories-menu-user-extension-function 'ignore)
'(ecb-display-image-icons-for-semantic-tags t)
'(ecb-fix-window-size 'width)
'(ecb-highlight-tag-with-point 'highlight-scroll)
'(ecb-history-item-name 'buffer-name)
'(ecb-history-menu-user-extension-function 'ignore)
'(ecb-kill-buffer-clears-history 'auto)
'(ecb-layout-name "left9")
'(ecb-method-non-semantic-face 'ecb-default-general-face)
'(ecb-methods-menu-user-extension-function 'ignore)
'(ecb-minor-mode-text "")
'(ecb-non-semantic-exclude-modes '(sh-mode fundamental-mode text-mode LaTeX-mode))
'(ecb-options-version "2.40")
'(ecb-primary-secondary-mouse-buttons 'mouse-1--C-mouse-1)
'(ecb-process-non-semantic-files t)
'(ecb-show-tags
'((default
(include expanded name)
(parent expanded name)
(type expanded name)
(variable expanded name)
(function expanded name)
(label expanded name)
(t expanded name))
(c++-mode
(include collapsed nil)
(parent collapsed nil)
(type flattened nil)
(variable collapsed access)
(function flattened access)
(function collapsed access)
(label hidden nil)
(t collapsed nil))
(c-mode
(include collapsed nil)
(parent collapsed nil)
(type flattened nil)
(variable collapsed access)
(function flattened access)
(function collapsed access)
(label hidden nil)
(t collapsed nil))
(bovine-grammar-mode
(keyword collapsed name)
(token collapsed name)
(nonterminal flattened name)
(rule flattened name)
(t collapsed nil))
(wisent-grammar-mode
(keyword collapsed name)
(token collapsed name)
(nonterminal flattened name)
(rule flattened name)
(t collapsed nil))
(texinfo-mode
(section flattened nil)
(def collapsed name)
(t collapsed nil))
(lua-mode
(t expanded name)
(function collapsed name))))
'(ecb-sources-sort-method 'extension)
'(ecb-tree-expand-symbol-before t)
'(ecb-truncate-long-names nil)
'(ecb-use-speedbar-instead-native-tree-buffer nil)
'(ecb-version-check t)
'(ecb-windows-width 0.25)
'(eshell-completion-addsuffix t)
'(eshell-completion-autolist t)
'(eshell-input-ignoredups t)
'(eshell-scroll-show-maximum-output t)
'(eshell-scroll-to-bottom-on-input t)
'(eshell-scroll-to-bottom-on-output t)
'(ibuffer-truncate-lines nil t)
'(package-selected-packages
'(quarto-mode fira-code-mode poly-R polymode zenburn-theme darktooth-theme monokai-alt-theme solarized-theme gruvbox-theme monokai-pro-theme alect-themes afternoon-theme rainbow-delimiters smartparens evil-smartparens tabbar session pod-mode muttrc-mode mutt-alias markdown-mode initsplit htmlize graphviz-dot-mode folding ess eproject diminish csv-mode browse-kill-ring boxquote bm bar-cursor apache-mode))
'(quote (ecb-sources-menu-user-extension-function 'ignore))
'(safe-local-variable-values
'((eval when
(require 'rainbow-mode nil t)
(rainbow-mode 1))))
'(screen-lines-mode t nil (screen-lines))
'(show-paren-mode t)
'(speedbar-frame-parameters
'((minibuffer)
(width . 20)
(border-width . 0)
(menu-bar-lines . 0)
(tool-bar-lines . 0)
(unsplittable . t)))
'(w3m-default-display-inline-images t)
'(w3m-display-inline-image t)
'(w3m-home-page "about:")
'(w3m-key-binding 'info)
'(w3m-view-this-url-new-session-in-background t)
'(warning-suppress-types '((comp))))
(require 'shell-command)
(shell-command-completion-mode)
;; ;;Now I add another customization for the shell-mode
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
(add-hook 'shell-mode-hook #'rainbow-delimiters-mode)
;; (comint-send-string (current-buffer) "alias ls='ls --color'")
; then do a
;; (comint-send-input)
;;; Shell mode
;; (setq ansi-color-names-vector ; better contrast colors
;; ["black" "red4" "green4" "yellow4"
;; "blue3" "magenta4" "cyan4" "white"])
;; (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; (add-hook 'shell-mode-hook '(lambda () (toggle-truncate-lines 1)))
;; (setq comint-prompt-read-only t)
;; ; interpret and use ansi color codes in shell output windows
;; (ansi-color-for-comint-mode-on)
;; Maybe it is NOT a good idea that such a buffer disappear quickly (it tends to take away any other second
;; buffer with it)
;; make completion buffers disappear after 3 seconds.
;; (add-hook 'completion-setup-hook
;; (lambda () (run-at-time 3 nil
;; (lambda () (delete-windows-on "*Completions*")))))
;; (add-hook 'shell-mode-hook '(lambda () (toggle-truncate-lines 1)))
(setq comint-prompt-read-only t)
;; improve visualization in ecb
(setq truncate-partial-width-windows nil)
(setq ecb-truncate-lines nil)
(setq ecb-tree-truncate-lines nil)
;;(setq ecb-deactivate 'tip-of-the-day)
;; ecb cache directories
(setq ecb-show-sources-in-directories-buffer nil)
(setq ecb-cache-directory-contents '((".*" . 500)) )
(setq ecb-cache-directory-contents-not nil )
;; kill tip of the day
(setq ecb-tip-of-the-day nil)
;; choose ecb layout
;;(ecb-change-layout 'left9)
;;hide interactor
(global-set-key (kbd "C-c C-z") 'ecb-toggle-ecb-windows)
;; macro for going to interactor
(fset 'go-to-interactor
"\C-c.gm")
(global-set-key (kbd "C-c e") 'go-to-interactor)
(fset 'go-to-buffer
"\C-c.gl")
(global-set-key (kbd "C-c w") 'go-to-buffer)
;; activate ecb ;;; it does not work!
;; (setq ecb-auto-activate t)
;; run a few shells.
;; (shell "*shell5*")
;; (shell "*shell6*")
;; (shell "*shell7*")
; C-5, 6, 7 to switch to shells
;; (global-set-key [(control 5)]
;; (lambda () (interactive) (switch-to-buffer "*shell5*")))
;; (global-set-key [(control 6)]
;; (lambda () (interactive) (switch-to-buffer "*shell6*")))
;; (global-set-key [(control 7)]
;; (lambda () (interactive) (switch-to-buffer "*shell7*")))
;; (custom-set-faces
;; ;; custom-set-faces was added by Custom — don’t edit or cut/paste it!
;; ;; Your init file should contain only one such instance.
;; ‘(comint-highlight-prompt ((t (:foreground “white”)))))
(show-paren-mode t) ;highlight matching parentheses
;; a function to search the selected text
;; (defun my-search-forward (begin end)
;; (interactive (list (point) (mark)))
;; (let ((text (filter-buffer-substring begin end nil t)))
;; (goto-char (max begin end))
;; (let ((found-pos (search-forward text nil t)))
;; ; (let ((found-pos (search text nil t)))
;; (if (not found-pos)
;; (progn
;; (goto-char begin)
;; (error "not found"))
;; (progn
;; (goto-char found-pos)
;; (set-mark (- found-pos (length text))))))))
;; ;; (define-key global-map [(shift down-mouse-1)] nil)
;; ;; (define-key global-map [(shift mouse-1)] 'mouse-search-forward)
;; ;(define-key global-map [(C-q )] nil)
;; (define-key global-map [(control q )] 'my-search-forward)
(require 'etags) ;; provides `find-tag-default' in Emacs 21.
(defun isearch-yank-regexp (regexp)
"Pull REGEXP into search regexp."
(let ((isearch-regexp nil)) ;; Dynamic binding of global.
(isearch-yank-string regexp))
(isearch-search-and-update))
(defun isearch-yank-symbol (&optional partialp)
"Put symbol at current point into search string.
If PARTIALP is non-nil, find all partial matches."
(interactive "P")
(let* ((sym (find-tag-default))
;; Use call of `re-search-forward' by `find-tag-default' to
;; retrieve the end point of the symbol.
(sym-end (match-end 0))
(sym-start (- sym-end (length sym))))
(if (null sym)
(message "No symbol at point")
(goto-char sym-start)
;; For consistent behavior, restart Isearch from starting point
;; (or end point if using `isearch-backward') of symbol.
(isearch-search)
(if partialp
(isearch-yank-string sym)
(isearch-yank-regexp
(concat "\\_<" (regexp-quote sym) "\\_>"))))))
(defun isearch-current-symbol (&optional partialp)
"Incremental search forward with symbol under point.
Prefixed with \\[universal-argument] will find all partial
matches."
(interactive "P")
(let ((start (point)))
(isearch-forward-regexp nil 1)
(isearch-yank-symbol partialp)))
(defun isearch-backward-current-symbol (&optional partialp)
"Incremental search backward with symbol under point.
Prefixed with \\[universal-argument] will find all partial
matches."
(interactive "P")
(let ((start (point)))
(isearch-backward-regexp nil 1)
(isearch-yank-symbol partialp)))
(global-set-key [f3] 'isearch-current-symbol)
(global-set-key [(control f3)] 'isearch-backward-current-symbol)
;; Subsequent hitting of the keys will increment to the next
;; match--duplicating `C-s' and `C-r', respectively.
(define-key isearch-mode-map [f3] 'isearch-repeat-forward)
(define-key isearch-mode-map [(control f3)] 'isearch-repeat-backward)
;; Functions to kill the buffers
;; Kills live buffers, leaves some emacs work buffers
;; optained from http://www.chrislott.org/geek/emacs/dotemacs.html
(defun nuke-some-buffers (&optional list)
"For each buffer in LIST, kill it silently if unmodified. Otherwise ask.
LIST defaults to all existing live buffers."
(interactive)
(if (null list)
(setq list (buffer-list)))
(while list
(let* ((buffer (car list))
(name (buffer-name buffer)))
(and (not (string-equal name ""))
(not (string-equal name "*Messages*"))
;; (not (string-equal name "*Buffer List*"))
(not (string-equal name "*buffer-selection*"))
(not (string-equal name "*Shell Command Output*"))
(not (string-equal name "*scratch*"))
(/= (aref name 0) ? )
(if (buffer-modified-p buffer)
(if (yes-or-no-p
(format "Buffer %s has been edited. Kill? " name))
(kill-buffer buffer))
(kill-buffer buffer))))
(setq list (cdr list))))
;; and its companion function
;; Kills all them buffers except scratch
;; optained from http://www.chrislott.org/geek/emacs/dotemacs.html
(defun nuke-all-buffers ()
"kill all buffers, leaving *scratch* only"
(interactive)
(mapcar (lambda (x) (kill-buffer x))
(buffer-list))
(delete-other-windows))
(global-set-key (kbd "C-x n a") 'nuke-all-buffers)
(global-set-key (kbd "C-x n s") 'nuke-some-buffers)
;; (global-set-key "\C-c\C-n\C-a" 'nuke-all-buffers)
;; (global-set-key "\C-c\C-n\C-s" 'nuke-some-buffers)
;; ;; point motion by screen lines (as opposed to text lines)
;; ;; TODO screen lines mode enabled by default for all buffers
;; (when (require 'screen-lines)
;; ;; following lines commented out for keeping the original `kill-line'
;; ;; in `screen-lines' minor mode
;; (add-hook 'screen-lines-load-hook
;; (lambda ()
;; (ad-disable-advice 'kill-line 'around 'screen-lines)
;; (ad-activate 'kill-line)))
;; ;; nothing should appear in the mode line, when the `screen-lines' mode
;; ;; is enabled in a buffer
;; (setq screen-lines-minor-mode-string ""))
(autoload 'screen-lines-mode "screen-lines"
"Toggle Screen Lines minor mode for the current buffer." t)
(autoload 'turn-on-screen-lines-mode "screen-lines"
"Turn on Screen Lines minor mode for the current buffer." t)
(autoload 'turn-off-screen-lines-mode "screen-lines"
"Turn off Screen Lines minor mode for the current buffer." t)
;; turn on recent files
(recentf-mode 1)
;; w3m initialization
;;(setq w3m-home-page "about:")
;; Use MELPA repository
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/"))
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line
;; maximize Emacs on startup
;; (setq initial-frame-alist
;; `((left . 0) (top . 0)
;; (width . 80) (height . 37)))
;; initial window
(setq initial-frame-alist
'(
(width . 80) ; character
(height . 35) ; lines
))
;; ;; default/sebsequent window
;; (setq default-frame-alist
;; '(
;; (width . 100) ; character
;; (height . 52) ; lines
;; ))
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
;; (add-to-list 'load-path "/usr/share/common-lisp/source/slime/")
;; (setq inferior-lisp-program "/usr/bin/sbcl")
;; (require 'slime)
;; (slime-setup)
;; ============================
;; Setup syntax, background, and foreground coloring
;; ============================
;; (set-background-color "Black")
;; (set-foreground-color "White")
;; (set-cursor-color "LightSkyBlue")
;; (set-mouse-color "LightSkyBlue")
;; (global-font-lock-mode t)
;; (setq font-lock-maximum-decoration t)
;; auctex stuff
;; bib-display bib-display-mouse (mouse-1)
;; - Display citation, \ref or \label under point
;; bib-find bib-find-mouse (mouse-2)
;; - Edit citation, \ref or \label under point
;; bib-make-bibliography - Make BiBTeX file containing only cite keys used.
;; bib-apropos - Search BiBTeX source files for keywords.
;; bib-etags - Refreshes (or builds) the TAGS files for
;; multi-file documents.
;; bib-create-auto-file - Used in bibtex-mode to create cite key
;; completion .el file for auctex.
;; bib-highlight-mouse - Highlight \cite, \ref and \label commands in
;; green when the mouse is over them.
(setq TeX-source-specials-mode t)
;; Preliminary setup for AUCTeX
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil) ;set up AUCTeX to deal with
;multiple file documents.
(add-hook 'LaTeX-mode-hook (lambda ()
(TeX-fold-mode 1))) ;turn on
;tex-fold-mode
;by default
(add-hook 'tex-mode-hook
(lambda ()
(define-key tex-mode-map (kbd [f1]) 'ctrl-y-in-vi)
(define-key tex-mode-map (kbd [f2]) 'ctrl-e-in-vi)
)
)
(add-hook 'LaTeX-mode-hook #'rainbow-delimiters-mode)
;; RefTeX
;;--------------------------------------------
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
(setq reftex-enable-partial-scans t)
(setq reftex-save-parse-info t)
(setq reftex-use-multiple-selection-buffers t)
(setq reftex-texpath-environment-variables
'("./inp:/PATH/TO/YOUR/TEX/DOCUMENTS//"))
(setq reftex-bibpath-environment-variables
'("/PATH/TO/YOUR/BIB/FILE/"))
;;;;;;;;;;
;; LaTeX
;; (add-to-list 'auto-mode-alist '("\\.tex$" . latex-mode))
(add-hook 'tex-mode-hook (define-key global-map [(control return)] 'switch-to-buffer))
(add-hook 'bibtex-mode-hook 'turn-on-auto-fill)
;; AUCTeX is a good mode for editing LaTeX code, see the AUCTeX manual
(require 'tex-site nil t)
(setq TeX-default-mode 'LaTeX-mode); never open a file in TeX-mode, use LaTeX
(setq
;; LaTeX-math-abbrev-prefix "!";I have an azerty keyboard, the default "`" is unconvenient
LaTeX-math-list '(;most useful for me, not necessarily for you
(?i "infty" nil) (?v "vee" nil)
(?q "quad" nil) (?Q "qquad" nil)
))
(add-hook 'tex-mode-hook #'rainbow-delimiters-mode)
;; other latex functions for superscripts/subscripts
;; see http://bruda.ca/emacs-prog/latex-bindings.el for more info
(defun latex-surround-by (empty beg end back-over-end)
;; "The main function implementing electric special characters
;; ($, ^,_, etc.; see for example `latex-subscript'). If region is
;; active, insert BEG before it and END after. Otherwise, insert EMPTY
;; and place point BACK-OVER-END characters before the end of EMPTY.
;; If `zmacs-regions' is nil, always behave as if region is *not*
;; active."
(if (and zmacs-regions (region-active-p))
(let ((text (buffer-substring (mark) (point))))
(delete-region (mark) (point))
(insert beg)
(insert text)
(insert end))
(progn
(insert empty)
(backward-char back-over-end))))
;; (defun latex-subscript ()
;; ;; "Electric subscript.
;; ;; If region is not active, inserts \"_{}\" and places cursor between
;; ;; braces. Otherwise, inserts \"_{\" before region and \"}\"
;; ;; after. Basically, just a call to `latex-surround-by' with appropriate
;; ;arguments."
;; (interactive)
;; (latex-surround-by "_{}" "_{" "}" 1))
;; (defun latex-superscript ()
;; ;; "Electric superscript.
;; ;; If region is not active, inserts \"^{}\" and places cursor between
;; ;; braces. Otherwise, inserts \"^{\" before region and \"}\"
;; ;; after. Basically, just a call to `latex-surround-by' with appropriate
;; ;arguments."
;; (interactive)
;; (latex-surround-by "^{}" "^{" "}" 1))
;; For some reason, the functions above do not work
;; LaTeX sectioning search.
(defun latex-next-section ()
"Moves cursor to the nearest sectioning command below point."
(interactive)
(unless (search-forward-regexp "\\(\\\\\\(sub\\)*section\\)\\|\\(\\\\chapter\\)" nil t)
(error "No more sectioning commands below.")))
(defun latex-previous-section ()
"Moves cursor to the nearest sectioning command above point."
(interactive)
(unless (search-backward-regexp "\\(\\\\\\(sub\\)*section\\)\\|\\(\\\\chapter\\)" nil t)
(error "No more sectioning commands above.")))
;; The actual bindings:
(defun my-latex-bindings ()
;; "Create new bindings in LaTeX mode.
;; See `latex-mathematicize', `latex-ldots', `latex-subscript',
;; `latex-superscript', `latex-smart-delete', `latex-next-section',
;; `latex-previous-section'."
;;(define-key LaTeX-mode-map [(control $)] 'latex-mathematicize)
;(define-key LaTeX-mode-map [$] 'latex-mathematicize)
;(define-key LaTeX-mode-map [\.] 'latex-ldots)
(define-key LaTeX-mode-map (kbd "_") 'latex-subscript)
(define-key LaTeX-mode-map (kbd "^") 'latex-superscript)
;(define-key LaTeX-mode-map [f10] 'latex-slides-hide)
;(define-key LaTeX-mode-map [(control c) (control v)] 'latex-verb)
;(define-key LaTeX-mode-map [backspace] 'latex-smart-delete)
(define-key LaTeX-mode-map [(control \`)]
(lambda ()
"Moves point after the next closing brace."
(interactive)
(if (equal (buffer-substring (point) (+ (point) 1))
"}")
(forward-char 1)
(search-forward "}" nil t))))
(define-key LaTeX-mode-map (kbd "<C-down>") 'latex-next-section)
(define-key LaTeX-mode-map (kbd "<C-up>") 'latex-previous-section)
)
;; Now I really activate the bindings
(add-hook 'LaTeX-mode-hook 'my-latex-bindings)
(add-hook 'LaTeX-mode-hook 'flyspell-mode) ;turn on flyspell mode by
;default
;; Use aspell for dictionaries
(setq ispell-program-name "aspell")
(setq ispell-really-aspell t)
(setq ispell-extra-args '("--sug-mode=fast"))
;; `aspell' extensions should *not* be used
(setq ispell-really-aspell nil)
;; dash character (`-') is considered as a word delimiter
(setq flyspell-consider-dash-as-word-delimiter-flag t)
(autoload 'flyspell-babel-setup "flyspell-babel")
(add-hook 'latex-mode-hook 'flyspell-babel-setup)
;;
(require 'ispell-multi)
(add-hook 'LaTeX-mode-hook '(lambda ()
;; (turn-on-auto-fill)
(turn-on-reftex) ;see the reftex man. Useful for labels and navigating among \section
(LaTeX-math-mode)
;; (setq
TeX-open-quote "``";text ed when you type a double quote : "
TeX-close-quote "''";idem, but at the end of a word. I'm french...
;; )
(setq LaTeX-section-hook;I don't want to put useless labels everywhere
'(LaTeX-section-heading
LaTeX-section-title
LaTeX-section-section))
(setq ispell-tex-skip-alists
(list
(append
(car ispell-tex-skip-alists) ;tell ispell to ignore content of this:
'(("\\\\cite" ispell-tex-arg-end)
("\\\\nocite" ispell-tex-arg-end)
("\\\\includegraphics" ispell-tex-arg-end)
("\\\\bibliography" ispell-tex-arg-end)
("\\\\ref" ispell-tex-arg-end)
("\\\\web" ispell-tex-arg-end) ;personal
("\\\\code" ispell-tex-arg-end) ;personal
("\\\\label" ispell-tex-arg-end)))
(cadr ispell-tex-skip-alists)))
;; ;; optionnaly add support for customized (not my fault!) versions of \section:
;; (setq reftex-section-levels (append
;; '(("partie" . -1) ("Partie" . -1) ("souspartie" . -2) ("question" . -3))
;; reftex-section-levels))
;; (setq LaTeX-section-list (append
;; '(("partie" 1) ("Partie" 1) ("souspartie" 2) ("question" 3))
;; LaTeX-section-list))
))
;; IMPORTANT
;; the previous 2 "))" are the conclusion of (add-hook 'LaTeX-mode-hook '(lambda ()
;; I can define functions and other stuff between that bit, but they would be restricted to
;; the Tex-Mode only
;; (setq font-latex-match-title-1-keywords '("partie" "Partie" ))
;; (setq font-latex-match-title-2-keywords '("souspartie" "question"))
;;;;;;;;;;
(defun insert-dollar () "custom redefined insert-dollar" (interactive)
(insert "$$") ;in LaTeX mode, typing "$" automatically insert "$$"
(backward-char 1)) ;and go between them: no more matching problems!
(defun insert-quote () "custom redefined insert-quote" (interactive)
(insert "``''") ;in LaTeX mode, typing "$" automatically insert "$$"
(backward-char 2)) ;and go between them: no more matching problems!
;; (defun insert-curly () "custom redefined insert-curly" (interactive)
;; (insert "{}") ;in LaTeX mode, typing "$" automatically insert "$$"
;; (backward-char 1)) ;and go between them: no more matching problems!
;; (defun insert-round () "custom redefined insert-round" (interactive)
;; (insert "()") ;in LaTeX mode, typing "$" automatically insert "$$"
;; (backward-char 1)) ;and go between them: no more matching problems!
;; (defun insert-square () "custom redefined insert-square" (interactive)
;; (insert "[]") ;in LaTeX mode, typing "$" automatically insert "$$"
;; (backward-char 1)) ;and go between them: no more matching problems!
(defun insert-equal () "custom redefined insert-square" (interactive)
(insert " <- ") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun insert-right () "custom redefined insert-square" (interactive)
(insert " -> ") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun insert-magrittr () "custom redefined insert-square" (interactive)
(insert " %>% ") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun insert-magrittr2 () "custom redefined insert-square" (interactive)
(insert " %<>% ") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun insert-magrittr3 () "custom redefined insert-square" (interactive)
(insert " |> ") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun insert-underscore () "custom redefined insert-square" (interactive)
(insert "_") ;in LaTeX mode, typing "$" automatically insert "$$"
) ;and go between them: no more matching problems!
(defun latex-subscript () "custom redefined insert-subscript" (interactive)
(insert "_{}") ;in LaTeX mode, typing "$" automatically insert "$$"
(backward-char 1)) ;and go between them: no more matching problems!
(defun latex-superscript () "custom redefined insert-superscript" (interactive)
(insert "^{}") ;in LaTeX mode, typing "$" automatically insert "$$"
(backward-char 1)) ;and go between them: no more matching problems!
(defun insert-double-quote () "custom redefined insert-square" (interactive)
(insert "\"" ) ;in LaTeX mode, typing "$" automatically insert "$$"
(insert "\"" ) ;in LaTeX mode, typing "$" automatically insert "$$"
(backward-char 1)) ;and go between them: no more matching problems!
(defun insert-latex-quote () "custom redefined insert-square" (interactive)
(insert "``") ;text ed when you type a double quote : "
(insert "''");idem, but at the end of a word. I'm french...
(backward-char 2)) ;and go between them: no more matching problems!
;; (defun insert-double-quote ()
;; "Insert a left or right double quote as appropriate. Left quotes are inserted after a space, newline, or >. Right quotes are inserted after any other character, except if the preceding character is a quote, cycles through the three quote styles."
;; (interactive)
;; (let ((ch (char-before)))
;; (cond
;; ((in-start-tag)
;; (insert "\""))
;; ((or (not ch)
;; (char-equal ch ?>)
;; (char-equal ch 32)
;; (char-equal ch 10))
;; (insert-xml-char "ldquo"))
;; ((char-equal ch emacs-ldquo)
;; (progn
;; (delete-backward-char 1)
;; (insert "\"")))
;; ((char-equal ch emacs-quot)
;; (progn
;; (delete-backward-char 1)
;; (insert-xml-char "rdquo")))
;; ((char-equal ch emacs-rdquo)
;; (progn
;; (delete-backward-char 1)
;; (insert-xml-char "ldquo")))
;; ((char-equal ch emacs-ldquo)
;; (progn
;; (delete-backward-char 1)
;; (insert-xml-char "rdquo")))
;; ((char-equal ch emacs-lsquo)
;; (insert-xml-char "ldquo"))
;; (t (insert-xml-char "rdquo")))))
;; insert a macro
(fset 'latex-compile
[?\C-x ?\C-s ?\C-c ?\C-c return])
;; backward-upcase
;,----
(defun backward-upcase (&optional arg)
; "Capitalize the previous word; with optional arg, capitalize
; the previous arg words"
(interactive "P")
(let ((words (if arg arg 1)))
(upcase-word (- 0 words))))
;`----
;; Now I associate keys to the previous functions.
;; (local-set-key "{" 'insert-curly)
;; (local-set-key "(" 'insert-round) ;;I do not need these lines as I am defining the local-set-key
;; directly in the mode-hook.
;; (local-set-key "[" 'insert-square)
;; (local-set-key "@@" 'backward-upcase)
(add-hook 'TeX-mode-hook #'rainbow-delimiters-mode)
(add-hook 'TeX-mode-hook
(lambda () (local-set-key "$" 'insert-dollar)))
;; Maybe I had better get rid of this
(add-hook 'TeX-mode-hook
(lambda () (local-set-key "\"" 'insert-latex-quote)))
;; (add-hook 'TeX-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'TeX-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'TeX-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'TeX-mode-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'TeX-mode-hook
(lambda () (local-set-key '[(f10)] 'latex-compile)))
;; The following line is useful if I want to use that key-binding for every mode
;; by defining a GLOBAL rather than a LOCAL key.
;;(global-set-key '[(f1)] 'latex-compile)
;; Now some customization for Python
; I have already defined the new functions and associated names to them.
; Now I make them available to Python-mode.
; NB: If I defined the same functions only within e.g. the TeX-mode, then they would
; not be available for Python mode.
;; (add-hook 'python-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'python-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'python-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'python-mode-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'python-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
(add-hook 'python-mode-hook #'rainbow-delimiters-mode)
;; Now some customization for haskell
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook #'rainbow-delimiters-mode)
;; (add-hook 'haskell-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'haskell-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'haskell-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'haskell-mode-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'haskell-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
(add-hook 'haskell-mode-hook
(lambda () (local-set-key ";" 'insert-equal)))
;; Now some customization for R
; I have already defined the new functions and associated names to them.
; Now I make them available to R-mode.
; NB: If I defined the same functions only within e.g. the TeX-mode, then they would
; not be available for Python mode.
;; (add-hook 'ess-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'ess-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'ess-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key ";" 'insert-equal)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "ù" 'insert-right)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "§" 'insert-magrittr)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "£" 'insert-magrittr2)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "?" 'insert-magrittr3)))
(add-hook 'ess-mode-hook #'rainbow-delimiters-mode)
(add-hook 'ess-mode-hook
(lambda () (local-set-key "_" 'insert-underscore)))
(add-hook 'ess-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
;; Now some customization for Fortran 90
;; (add-hook 'f90-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'f90-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'f90-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'f90-mode-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'f90-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
;; Now some customization for cc-mode
;; (add-hook 'c-mode-common-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'c-mode-common-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'c-mode-common-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'c-mode-common-hook
(lambda () (local-set-key "\M-1" 'backward-upcase)))
(add-hook 'c-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
(add-hook 'c-mode-hook #'rainbow-delimiters-mode)
;; Now some customization for Maxima
; I have already defined the new functions and associated names to them.
; Now I make them available to Maxima-mode.
; NB: If I defined the same functions only within e.g. the TeX-mode, then they would
; not be available for Maxima mode.
;; (add-hook 'maxima-mode-hook
;; (lambda () (local-set-key "{" 'insert-curly)))
;; (add-hook 'maxima-mode-hook
;; (lambda () (local-set-key "(" 'insert-round)))
;; (add-hook 'maxima-mode-hook
;; (lambda () (local-set-key "[" 'insert-square)))
(add-hook 'maxima-mode-hook
(lambda () (local-set-key "'" 'insert-double-quote)))
(setq auto-mode-alist (cons '("\\.max" . maxima-mode) auto-mode-alist))
;(setq load-path (cons "/usr/share/maxima/5.9.0/emacs" load-path ))
(autoload 'maxima "maxima" "Running Maxima interactively" t)
(autoload 'maxima-mode "maxima" "Maxima editing mode" t)
(add-hook 'maxima-mode-hook #'rainbow-delimiters-mode)
;;; add autoload of imaxima and maxima.
(autoload 'imaxima "imaxima" "Frontend for maxima with Image support" t)
(autoload 'maxima "maxima" "Frontend for maxima" t)
;;; add autoload of imath.
(autoload 'imath-mode "imath" "Imath mode for math formula input" t)
;;; Make the line effective if you want to use maxima mode with imaxima.
(setq imaxima-use-maxima-mode-flag t)
;; Mouse Settings
;; ============================
;; mouse button one drags the scroll bar
(global-set-key [vertical-scroll-bar down-mouse-1] 'scroll-bar-drag)
;; setup scroll mouse settings
(defun up-slightly () (interactive) (scroll-up 5))
(defun down-slightly () (interactive) (scroll-down 5))
(global-set-key [mouse-4] 'down-slightly)
(global-set-key [mouse-5] 'up-slightly)
(defun up-one () (interactive) (scroll-up 1))
(defun down-one () (interactive) (scroll-down 1))
(global-set-key [S-mouse-4] 'down-one)
(global-set-key [S-mouse-5] 'up-one)
(defun up-a-lot () (interactive) (scroll-up))
(defun down-a-lot () (interactive) (scroll-down))
(global-set-key [C-mouse-4] 'down-a-lot)
(global-set-key [C-mouse-5] 'up-a-lot)
;; ============================
;; Display
;; ============================
;; disable startup message
(setq inhibit-startup-message t)
;; setup font
;; (set-default-font
;; "-Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO8859-1")
;; The font above did not work well on a 4k monitor and did not scale
;; so I replaced it
;; setup font
;; (set-default-font "DejaVu Sans Mono-10" )
;; display the current time
(display-time)
;; Show column number at bottom of screen
(column-number-mode 1)
;; alias y to yes and n to no
(defalias 'yes-or-no-p 'y-or-n-p)
;; highlight matches from searches
(setq isearch-highlight t)
(setq search-highlight t)
(setq-default transient-mark-mode t)
(when (fboundp 'blink-cursor-mode)
(blink-cursor-mode -1))
;; ===========================
;; Behaviour
;; ===========================
;; Pgup/dn will return exactly to the starting point.
(setq scroll-preserve-screen-position 1)
;; don't automatically add new lines when scrolling down at
;; the bottom of a buffer
(setq next-line-add-newlines nil)
;; scroll just one line when hitting the bottom of the window
(setq scroll-step 1)
(setq scroll-conservatively 1)
;; format the title-bar to always include the buffer name
(setq frame-title-format "emacs - %b")
;; show a menu only when running within X (save real estate when
;; in console)
(menu-bar-mode (if window-system 1 -1))
;; turn on word wrapping in text mode
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(add-hook 'text-mode-hook #'rainbow-delimiters-mode)
;; replace highlighted text with what I type rather than just
;; inserting at a point
(delete-selection-mode t)
;; resize the mini-buffer when necessary
(setq resize-minibuffer-mode t)
;; highlight during searching
(setq query-replace-highlight t)
;; highlight incremental search
(setq search-highlight t)
;; kill trailing white space on save
;;(autoload 'nuke-trailing-whitespace "whitespace" nil t)
;;(add-hook 'write-file-hooks 'nuke-trailing-whitespace)
;; ;; ===========================
;; ;; Buffer Navigation
;; ;; ============================
;; ;; Iswitchb is much nicer for inter-buffer navigation.
;; (cond ((fboundp 'iswitchb-mode) ; GNU Emacs 21
;; (iswitchb-mode 1))
;; ((fboundp 'iswitchb-default-keybindings) ; Old-style activation
;; (iswitchb-default-keybindings))
;; (t nil)) ; Oh well.
;; ;; keys for buffer creation and navigation
;; (global-set-key [(control x) (control b)] 'iswitchb-buffer)
;; (global-set-key [(control x) (f)] 'find-file)
;; ==========================
;; C/C++ indentation
;; ==========================
(defun my-c-mode-common-hook ()
(turn-on-font-lock)
(c-set-offset 'substatement-open 0)
(c-set-offset 'case-label '+)
; (c-set-offset 'arglist-cont-nonempty c-lineup-arglist)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;; ===========================
;; HTML/CSS stuff
;; ===========================
(setq html-mode-hook 'turn-off-auto-fill)
(autoload 'css-mode "css-mode")
(setq auto-mode-alist
(cons '("\\.css\\'" . css-mode) auto-mode-alist))
;; take any buffer and turn it into an html file,
;; including syntax hightlighting
(require 'htmlize)
;; ===========================
;; Matlab Mode
;; ===========================
(autoload 'matlab-mode "matlab.elc" "Enter Matlab mode." t)
(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))
(autoload 'matlab-shell "matlab.elc" "Interactive Matlab mode." t)
;; ============================
;; Set up which modes to use for which file extensions
;; ============================
(setq auto-mode-alist
(append
'(
("\\.h$" . c++-mode)
("\\.dps$" . pascal-mode)
("\\.hs$" . haskell-mode)
("\\.py$" . python-mode)
("\\.Xdefaults$" . xrdb-mode)
("\\.Xenvironment$" . xrdb-mode)
("\\.Xresources$" . xrdb-mode)
("\\.tei$" . xml-mode)
("\\.php$" . php-mode)
;("\\.max$" . maxima-mode)
) auto-mode-alist))
;; ===========================
;; Custom Functions
;; ===========================
;; print an ascii table
(defun ascii-table ()
(interactive)
(switch-to-buffer "*ASCII*")
(erase-buffer)
(insert (format "ASCII characters up to number %d.\n" 254))
(let ((i 0))
(while (< i 254)
(setq i (+ i 1))
(insert (format "%4d %c\n" i i))))
(beginning-of-buffer))
;; insert functions
(global-unset-key "\C-t")
(global-set-key "\C-t\C-h" 'insert-function-header)
;; indent the entire buffer
(defun c-indent-buffer ()
"Indent entire buffer of C source code."
(interactive)
(save-excursion
(goto-char (point-min))
(while (< (point) (point-max))
(c-indent-command)
(end-of-line)
(forward-char 1))))
(defun insert-function-header () (interactive)
(insert " /**\n")
(insert " * \n")
(insert " * @param: \n")
(insert " * @return: \n")
(insert " */\n"))
(global-set-key "\C-t\C-g" 'insert-file-header)
(defun insert-file-header () (interactive)
(insert "/*////////////////////////////////////*/\n")
(insert "/**\n")
(insert " * \n")
(insert " * Author: Lorenzo Isella\n")
(insert " */\n")
(insert "/*////////////////////////////////////*/\n"))
;; set up the compiling options
(setq compile-command "make"
compilation-ask-about-save nil
compilation-window-height 10)
;; (global-set-key [f7] 'compile)
;; Change title bar to ~/file-directory if the current buffer is a
;; real file or buffer name if it is just a buffer.
(setq frame-title-format
'(:eval
(if buffer-file-name
(replace-regexp-in-string (getenv "HOME") "~"
(file-name-directory buffer-file-name))
(buffer-name))))
;; Preserve the owner and group of the file you're editing
(setq backup-by-copying-when-mismatch t)
;; turn on recent files
(recentf-mode 1)
;; Make scripts executable on Save (saves having to do the chmod every time)
(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
;; (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.
;; '(background "blue")
;; '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "Turquoise"))))
;; '(font-lock-comment-face ((t (:foreground "MediumAquamarine"))))
;; '(font-lock-constant-face ((((class color) (background dark)) (:bold t :foreground "DarkOrchid"))))
;; '(font-lock-doc-string-face ((t (:foreground "green2"))))
;; '(font-lock-function-name-face ((t (:foreground "SkyBlue"))))
;; '(font-lock-keyword-face ((t (:bold t :foreground "CornflowerBlue"))))
;; '(font-lock-preprocessor-face ((t (:italic nil :foreground "CornFlowerBlue"))))
;; '(font-lock-reference-face ((t (:foreground "DodgerBlue"))))
;; '(font-lock-string-face ((t (:foreground "LimeGreen"))))
;; '(font-lock-type-face ((t (:foreground "#9290ff"))))
;; '(font-lock-variable-name-face ((t (:foreground "PaleGreen"))))
;; '(font-lock-warning-face ((((class color) (background dark)) (:foreground "yellow" :background "red"))))
;; '(highlight ((t (:background "CornflowerBlue"))))
;; '(list-mode-item-selected ((t (:background "gold"))))
;; '(makefile-space-face ((t (:background "wheat"))))
;; '(mode-line ((t (:background "Navy"))))
;; '(paren-match ((t (:background "darkseagreen4"))))
;; '(region ((t (:background "DarkSlateBlue"))))
;; '(show-paren-match ((t (:foreground "black" :background "wheat"))))
;; '(show-paren-mismatch ((((class color)) (:foreground "white" :background "red"))))
;; '(speedbar-button-face ((((class color) (background dark)) (:foreground "green4"))))
;; '(speedbar-directory-face ((((class color) (background dark)) (:foreground "khaki"))))
;; '(speedbar-file-face ((((class color) (background dark)) (:foreground "cyan"))))
;; '(speedbar-tag-face ((((class color) (background dark)) (:foreground "Springgreen"))))
;; '(vhdl-speedbar-architecture-selected-face ((((class color) (background dark)) (:underline t :foreground "Blue"))))
;; '(vhdl-speedbar-entity-face ((((class color) (background dark)) (:foreground "darkGreen"))))
;; '(vhdl-speedbar-entity-selected-face ((((class color) (background dark)) (:underline t :foreground "darkGreen"))))
;; '(vhdl-speedbar-package-face ((((class color) (background dark)) (:foreground "black"))))
;; '(vhdl-speedbar-package-selected-face ((((class color) (background dark)) (:underline t :foreground "black"))))
;; '(widget-field ((((class grayscale color) (background light)) (:background "DarkBlue")))))
;; Make the buffer name unique
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward)
;;-----------------------------------------------------------------------------
;; Custom functions, keybindings, and aliases
;;-----------------------------------------------------------------------------
;; Commonly used files
(defun life () (interactive) (find-file "~/Documents/org/life.org"))
(defun caldera () (interactive) (find-file "~/Documents/org/caldera.org"))
(defun emacs () (interactive) (find-file "~/.emacs"))
(defun obsolescence () (interactive)
(find-file "~/.elisp/color-theme-colorful-obsolescence.el"))
;; Function keys
;(global-set-key [f1] 'life)
;(global-set-key [f2] 'caldera)
(global-set-key [f11] 'org-agenda-list)
(global-set-key [f4] 'kill-this-buffer)
(global-set-key [f5] 'eshell)
(global-set-key [f6] 'shell)
(global-set-key [f7] 'reload)
;; (global-set-key [f7] 'find-dired)
;;(global-set-key [f6] 'find-dired)
;;(global-set-key [f7] 'grep-find)
(global-set-key [f8] 'delete-other-windows)
;(global-set-key [f9] 'something)
; (global-set-key [f10] 'mpg123)
;; (global-set-key [f11] 'obsolescence)
;(global-set-key [f12] 'emacs)
;; Add:
;; call-last-kbd-macro
;; find-other-file
;; find-grep-dired
(define-key global-map [(meta s)] 'save-buffer) ; imitates Squeak Browser save
(global-set-key "\C-x\C-b" 'buffer-menu) ; better window management than default
(global-set-key "\M-h" 'backward-kill-word) ; alternative for backspace, cool
(global-set-key "\C-cc" 'comment-region)
(global-set-key "\C-cn" 'uncomment-region)
;;Function to refresh a buffer (i.e. reload the corresponding file from disk
(global-set-key "\C-c\C-r"
'(lambda () "Refresh the buffer from the disk (prompt of modified)."
(interactive)
(revert-buffer t (not (buffer-modified-p)) t)))
;; alternative for M-x, suggestion from Effective Emacs [I don't use these, yet]
(global-set-key "\C-x\C-m" 'execute-extended-command)
(global-set-key "\C-c\C-m" 'execute-extended-command)
;; Like C-k but from the end of line, cool
(defun backwards-kill-line () (interactive) (kill-region
(point) (progn (beginning-of-line) (point))))
(global-set-key "\C-cu" 'backwards-kill-line) ; C-u in zsh
;; Useful function for inserting date quickly
(defun my-insert-date ()
(interactive)
(insert (format-time-string "%a, %b %e, %Y")))
(global-set-key "\C-cd" 'my-insert-date)
(global-set-key "\C-ct" 'my-insert-date)
(defun my-insert-heading ()
(interactive)
(if (equal major-mode 'emacs-lisp-mode)
(insert ";;-----------------------------------------------------------------------------
;;
;;-----------------------------------------------------------------------------")
)
(if (equal major-mode 'python-mode)
(insert "#------------------------------------------------------------------------------
#
#------------------------------------------------------------------------------" ))
(if (or (equal major-mode 'css-mode) (equal major-mode 'javascript-mode))
(insert "/* ------------------------------
------------------------------ */"))
)
(global-set-key "\C-ch" 'my-insert-heading)
;; other-window (C-x b) in reverse
(defun other-window-reverse (&optional x)
(interactive "P")
(if (equal x nil)
(other-window -1)
(other-window (- 0 x)) ))
(global-set-key (kbd "C-x p") 'other-window-reverse)
;; ;; Press F3 in Dired to open file in Windows, cool
;; (defun w32-browser (file)
;; "Run default Windows application associated with FILE.
;; If no associated application, then `find-file' FILE."
;; (or (condition-case nil
;; (w32-shell-execute nil file) ; Use Windows file association
;; (error nil))
;; (find-file file))) ; E.g. no Windows file association
;; (eval-after-load "dired"
;; '(define-key dired-mode-map [f3] (lambda () (interactive)
;; (w32-browser (dired-replace-in-string
;; "/" "\\" (dired-get-filename))))))
(defun org-print (&optional region)
"Print current buffer using org-mode"
(interactive)
(color-theme-google)
(setq org-fontify-done-headline t)
(if region
(w32-print-print-region-htmlize)
(w32-print-print-buffer-htmlize))
(setq org-fontify-done-headline nil))
(global-set-key (kbd "\C-cp") 'org-print)
(defun org-print-region ()
"Print region using org-mode"
(interactive)
(org-print t))
(global-set-key (kbd "\C-cr") 'org-print-region)
(defun iwb ()
"indent whole buffer"
(interactive)
(delete-trailing-whitespace)
(indent-region (point-min) (point-max) nil)
(untabify (point-min) (point-max)))
;; Convert to Dos or Unix
(defun convert-unix-to-dos ()
(interactive)
(set-buffer-file-coding-system 'undecided-dos))
(defun convert-dos-to-unix ()
(interactive)
(set-buffer-file-coding-system 'undecided-unix))
(defun count-words (start end)
"Print number of words in the region."
(interactive "r")
(save-excursion
(save-restriction
(narrow-to-region start end)
(goto-char (point-min))
(count-matches "\\sw+"))))
(defun count-words-analysis (start end)
"Count how many times each word is used in the region.
Punctuation is ignored."
(interactive "r")
(let (words)
(save-excursion
(goto-char start)
(while (re-search-forward "\\w+" end t)
(let* ((word (intern (match-string 0)))
(cell (assq word words)))
(if cell
(setcdr cell (1+ (cdr cell)))
(setq words (cons (cons word 1) words))))))
(when (interactive-p)
(message "%S" words))
words))
(defun download-calendar-file (calUrl icsFilename)
(call-process-shell-command (concat "wget" " --no-check-certificate " calUrl " -O " icsFilename)))
;; Custom aliases
(defalias 'word-count 'count-words)
(defalias 'word-count-analysis 'count-words-analysis)
(defalias 'tt 'toggle-truncate-lines)
(defalias 'fa 'Footnote-add-footnote) ;M-x fa to add footnote
;; Mutt support.
(add-hook 'mail-mode-hook 'turn-on-auto-fill)
(setq auto-mode-alist (append '(("/tmp/mutt.*" . mail-mode)) auto-mode-alist))
;; ( setq
;; auto-mode-alist
;; ( cons '("/tmp/mutt.*$" . post-mode) auto-mode-alist )
;; )
;; (add-hook 'mail-mode-hook 'turn-on-auto-fill)
;; By an unknown contributor
(global-set-key "§" 'match-paren)
(defun match-paren (arg)
"Go to the matching paren if on a paren; otherwise insert §."
(interactive "p")
(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
((looking-at "\\s\)") (forward-char 1) (backward-list 1))
(t (self-insert-command (or arg 1)))))
;; Macro to quickly generate a new eshell
(fset 'aux
(kmacro-lambda-form [?\S-\C-u escape ?x ?e ?s ?h ?e ?l ?l return escape ?x ?r ?e ?n ?a ?m ?e ?- ?b ?u ?f ?f tab return ?a ?u ?x ?i ?l ?i ?a ?r ?y] 0 "%d"))
;; (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.
;; '(custom-enabled-themes (quote (solarized-dark)))
;; '(custom-safe-themes
;; (quote
;; ("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" default))))
;; (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.
;; )
;; (load-theme #'abyss t)
;; (load-theme 'ample t t)
;; (load-theme 'ample-flat t t)
;; (load-theme 'ample-light t t)
;; ;; choose one to enable
;; (enable-theme 'ample)
;; see https://stackoverflow.com/questions/2951797/wrapping-selecting-text-in-enclosing-characters-in-emacs
;; (global-set-key (kbd "M-[") 'insert-pair)
;; (global-set-key (kbd "M-{") 'insert-pair)
;; (global-set-key (kbd "M-\"") 'insert-pair)
;; Simpler to just enable the electric pair mode to be able to use "" around some text which I selected
(electric-pair-mode 1)
;; ;; make electric-pair-mode work on more brackets
;; (setq electric-pair-pairs
;; '(
;; (?\" . ?\")
;; (?\{ . ?\})))
;; remember cursor position, for emacs 25.1 or later
(save-place-mode 1)
;; ;; See http://ergoemacs.org/emacs/emacs_delete_backward_char_or_bracket_text.html
;; (defun xah-delete-backward-char-or-bracket-text ()
;; "Delete backward 1 character, but if it's a \"quote\" or bracket ()[]{}【】「」 etc, delete bracket and the inner text, push the deleted text to `kill-ring'.
;; What char is considered bracket or quote is determined by current syntax table.
;; If `universal-argument' is called first, do not delete inner text.
;; URL `http://ergoemacs.org/emacs/emacs_delete_backward_char_or_bracket_text.html'
;; Version 2017-07-02"
;; (interactive)
;; (if (and delete-selection-mode (region-active-p))
;; (delete-region (region-beginning) (region-end))
;; (cond
;; ((looking-back "\\s)" 1)
;; (if current-prefix-arg
;; (xah-delete-backward-bracket-pair)
;; (xah-delete-backward-bracket-text)))
;; ((looking-back "\\s(" 1)
;; (progn
;; (backward-char)
;; (forward-sexp)
;; (if current-prefix-arg
;; (xah-delete-backward-bracket-pair)
;; (xah-delete-backward-bracket-text))))
;; ((looking-back "\\s\"" 1)
;; (if (nth 3 (syntax-ppss))
;; (progn
;; (backward-char )
;; (xah-delete-forward-bracket-pairs (not current-prefix-arg)))
;; (if current-prefix-arg
;; (xah-delete-backward-bracket-pair)
;; (xah-delete-backward-bracket-text))))
;; (t
;; (delete-char -1)))))
;; (defun xah-delete-backward-bracket-text ()
;; "Delete the matching brackets/quotes to the left of cursor, including the inner text.
;; This command assumes the left of point is a right bracket, and there's a matching one before it.
;; What char is considered bracket or quote is determined by current syntax table.
;; URL `http://ergoemacs.org/emacs/emacs_delete_backward_char_or_bracket_text.html'
;; Version 2017-07-02"
;; (interactive)
;; (progn
;; (forward-sexp -1)
;; (mark-sexp)
;; (kill-region (region-beginning) (region-end))))
;; (defun xah-delete-backward-bracket-pair ()
;; "Delete the matching brackets/quotes to the left of cursor.
;; After the command, mark is set at the left matching bracket position, so you can `exchange-point-and-mark' to select it.
;; This command assumes the left of point is a right bracket, and there's a matching one before it.
;; What char is considered bracket or quote is determined by current syntax table.
;; URL `http://ergoemacs.org/emacs/emacs_delete_backward_char_or_bracket_text.html'
;; Version 2017-07-02"
;; (interactive)
;; (let (( $p0 (point)) $p1)
;; (forward-sexp -1)
;; (setq $p1 (point))
;; (goto-char $p0)
;; (delete-char -1)
;; (goto-char $p1)
;; (delete-char 1)
;; (push-mark (point) t)
;; (goto-char (- $p0 2))))
;; (defun xah-delete-forward-bracket-pairs ( &optional @delete-inner-text-p)
;; "Delete the matching brackets/quotes to the right of cursor.
;; If *delete-inner-text-p is true, also delete the inner text.
;; After the command, mark is set at the left matching bracket position, so you can `exchange-point-and-mark' to select it.
;; This command assumes the char to the right of point is a left bracket or quote, and have a matching one after.
;; What char is considered bracket or quote is determined by current syntax table.
;; URL `http://ergoemacs.org/emacs/emacs_delete_backward_char_or_bracket_text.html'
;; Version 2017-07-02"
;; (interactive)
;; (if @delete-inner-text-p
;; (progn
;; (mark-sexp)
;; (kill-region (region-beginning) (region-end)))
;; (let (($pt (point)))
;; (forward-sexp)
;; (delete-char -1)
;; (push-mark (point) t)
;; (goto-char $pt)
;; (delete-char 1))))
;; (global-set-key (kbd "C-x C-k") 'xah-delete-backward-char-or-bracket-text)
;; ;; See http://ergoemacs.org/emacs/elisp_insert_brackets_by_pair.html
;; (defun xah-insert-bracket-pair (@left-bracket @right-bracket &optional @wrap-method)
;; "Insert brackets around selection, word, at point, and maybe move cursor in between.
;; *left-bracket and *right-bracket are strings. *wrap-method must be either 'line or 'block. 'block means between empty lines.
;; • if there's a region, add brackets around region.
;; • If *wrap-method is 'line, wrap around line.
;; • If *wrap-method is 'block, wrap around block.
;; • if cursor is at beginning of line and its not empty line and contain at least 1 space, wrap around the line.
;; • If cursor is at end of a word or buffer, one of the following will happen:
;; xyz▮ → xyz(▮)
;; xyz▮ → (xyz▮) if in one of the lisp modes.
;; • wrap brackets around word if any. e.g. xy▮z → (xyz▮). Or just (▮)
;; URL `http://ergoemacs.org/emacs/elisp_insert_brackets_by_pair.html'
;; Version 2017-01-17"
;; (if (use-region-p)
;; (progn ; there's active region
;; (let (
;; ($p1 (region-beginning))
;; ($p2 (region-end)))
;; (goto-char $p2)
;; (insert @right-bracket)
;; (goto-char $p1)
;; (insert @left-bracket)
;; (goto-char (+ $p2 2))))
;; (progn ; no text selection
;; (let ($p1 $p2)
;; (cond
;; ((eq @wrap-method 'line)
;; (setq $p1 (line-beginning-position) $p2 (line-end-position))
;; (goto-char $p2)
;; (insert @right-bracket)
;; (goto-char $p1)
;; (insert @left-bracket)
;; (goto-char (+ $p2 (length @left-bracket))))
;; ((eq @wrap-method 'block)
;; (save-excursion
;; (progn
;; (if (re-search-backward "\n[ \t]*\n" nil 'move)
;; (progn (re-search-forward "\n[ \t]*\n")
;; (setq $p1 (point)))
;; (setq $p1 (point)))
;; (if (re-search-forward "\n[ \t]*\n" nil 'move)
;; (progn (re-search-backward "\n[ \t]*\n")
;; (setq $p2 (point)))
;; (setq $p2 (point))))
;; (goto-char $p2)
;; (insert @right-bracket)
;; (goto-char $p1)
;; (insert @left-bracket)
;; (goto-char (+ $p2 (length @left-bracket)))))
;; ( ; do line. line must contain space
;; (and
;; (eq (point) (line-beginning-position))
;; ;; (string-match " " (buffer-substring-no-properties (line-beginning-position) (line-end-position)))
;; (not (eq (line-beginning-position) (line-end-position))))
;; (insert @left-bracket )
;; (end-of-line)
;; (insert @right-bracket))
;; ((and
;; (or ; cursor is at end of word or buffer. i.e. xyz▮
;; (looking-at "[^-_[:alnum:]]")
;; (eq (point) (point-max)))
;; (not (or
;; (string-equal major-mode "xah-elisp-mode")
;; (string-equal major-mode "emacs-lisp-mode")
;; (string-equal major-mode "lisp-mode")
;; (string-equal major-mode "lisp-interaction-mode")
;; (string-equal major-mode "common-lisp-mode")
;; (string-equal major-mode "clojure-mode")
;; (string-equal major-mode "xah-clojure-mode")
;; (string-equal major-mode "scheme-mode"))))
;; (progn
;; (setq $p1 (point) $p2 (point))
;; (insert @left-bracket @right-bracket)
;; (search-backward @right-bracket )))
;; (t (progn
;; ;; wrap around “word”. basically, want all alphanumeric, plus hyphen and underscore, but don't want space or punctuations. Also want chinese chars
;; ;; 我有一帘幽梦,不知与谁能共。多少秘密在其中,欲诉无人能懂。
;; (skip-chars-backward "-_[:alnum:]")
;; (setq $p1 (point))
;; (skip-chars-forward "-_[:alnum:]")
;; (setq $p2 (point))
;; (goto-char $p2)
;; (insert @right-bracket)
;; (goto-char $p1)
;; (insert @left-bracket)
;; (goto-char (+ $p2 (length @left-bracket))))))))))
;; (defun xah-insert-paren ()
;; (interactive)
;; (xah-insert-bracket-pair "(" ")") )
;; (defun xah-insert-bracket ()
;; (interactive)
;; (xah-insert-bracket-pair "[" "]") )
;; (defun xah-insert-brace ()
;; (interactive)
;; (xah-insert-bracket-pair "{" "}") )
;; (setq skeleton-pair t)
;; (setq skeleton-pair-alist
;; '((?\( _ ?\))
;; (?[ _ ?])
;; (?{ _ ?})
;; (?\" _ ?\")))
;; (defadvice delete-backward-char (before autopair activate)
;; (when (and (char-after)
;; (eq this-command 'delete-backward-char)
;; (eq (char-after)
;; (car (last (assq (char-before) skeleton-pair-alist)))))
;; (delete-char 1)))
;; (global-set-key (kbd "DEL") 'delete-backward-char)
(require 'smartparens-config)
(global-set-key (kbd "M-p") 'sp-unwrap-sexp)
;; ;;; zenburn-theme.el --- Dark and clean theme
;; ;; Copyright (C) 2011 Free Software Foundation, Inc.
;; ;; Author: Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
;; ;; Created: 2011-05-02
;; ;; This file 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 file 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.
;; ;; <http://www.gnu.org/licenses/>.
;; ;; zenburn theme, a nice low-contrast theme
;; ### The version I was using
;; (deftheme zenburn
;; "The Zenburn theme.")
;; (let ( (zenburn-fg "#dcdccc")
;; (zenburn-bg-1 "#2b2b2b")
;; (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-4 "#2e3330")
;; (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
;; ;; setup for inheritance
;; `(zenburn-background ((t (:background ,zenburn-bg))))
;; `(zenburn-background-1 ((t (:background ,zenburn-bg+1))))
;; `(zenburn-background-2 ((t (:background ,zenburn-bg+2))))
;; `(zenburn-primary-1 ((t (:foreground ,zenburn-yellow-1 :weight bold))))
;; `(zenburn-primary-2 ((t (:foreground ,zenburn-orange :weight bold))))
;; '(zenburn-primary-3 ((t (:foreground "#dfdfbf" :weight bold))))
;; '(zenburn-primary-4 ((t (:foreground "#dca3a3" :weight bold))))
;; '(zenburn-primary-5 ((t (:foreground "#94bff3" :weight bold))))
;; '(zenburn-highlight-damp ((t (:foreground "#88b090" :background "#2e3330"))))
;; '(zenburn-highlight-alerting ((t (:foreground "#e37170" :background "#332323"))))
;; '(zenburn-highlight-subtle ((t (:background "#464646"))))
;; '(zenburn-lowlight-1 ((t (:foreground "#606060"))))
;; '(zenburn-lowlight-2 ((t (:foreground "#708070"))))
;; `(zenburn-yellow ((t (:foreground ,zenburn-yellow))))
;; `(zenburn-orange ((t (:foreground ,zenburn-orange))))
;; `(zenburn-red ((t (:foreground ,zenburn-red))))
;; `(zenburn-red-1 ((t (:foreground ,zenburn-red-1))))
;; `(zenburn-red-2 ((t (:foreground ,zenburn-red-2))))
;; `(zenburn-red-3 ((t (:foreground ,zenburn-red-3))))
;; `(zenburn-red-4 ((t (:foreground ,zenburn-red-4))))
;; `(zenburn-green-1 ((t (:foreground ,zenburn-green-1))))
;; `(zenburn-green ((t (:foreground ,zenburn-green))))
;; `(zenburn-green+1 ((t (:foreground ,zenburn-green+1))))
;; `(zenburn-green+2 ((t (:foreground ,zenburn-green+2))))
;; `(zenburn-green+3 ((t (:foreground ,zenburn-green+3))))
;; `(zenburn-green+4 ((t (:foreground ,zenburn-green+4))))
;; `(zenburn-blue ((t (:foreground ,zenburn-blue))))
;; `(zenburn-blue-1 ((t (:foreground ,zenburn-blue-1))))
;; `(zenburn-blue-2 ((t (:foreground ,zenburn-blue-2))))
;; `(zenburn-blue-3 ((t (:foreground ,zenburn-blue-3))))
;; `(zenburn-blue-4 ((t (:foreground ,zenburn-blue-4))))
;; '(zenburn-title ((t (:inherit 'variable-pitch :weight bold))))
;; ;; basics
;; '(Bold ((t (:weight bold))))
;; '(bold-italic ((t (:slant italic :weight bold))))
;; `(default ((t (:background ,zenburn-bg :foreground ,zenburn-fg))))
;; '(fixed-pitch ((t (:weight bold))))
;; '(italic ((t (:slant italic))))
;; '(underline ((t (:underline t))))
;; '(fringe ((t (:inherit 'default))))
;; '(header-line ((t (:inherit 'zenburn-highlight-damp
;; :box (:color "#2e3330" :line-width 2)))))
;; '(highlight ((t (:weight bold :underline t))))
;; '(hover-highlight ((t (:underline t :foreground "#f8f893"))))
;; '(match ((t (:weight bold))))
;; `(menu ((t (:background "#1e2320"))))
;; `(mode-line-inactive ((t (:background ,zenburn-green-4 :foreground "#88b090"
;; :box (:color "#2e3330" :line-width 2)))))
;; '(mouse ((t (:inherit 'zenburn-foreground))))
;; '(paren ((t (:inherit 'zenburn-lowlight-1))))
;; '(trailing-whitespace ((t (:inherit font-lock-warning))))
;; `(Buffer-menu-buffer ((t (:inherit 'zenburn-primary-1))))
;; `(border ((t (:background ,zenburn-bg))))
;; `(button ((t (:foreground ,zenburn-yellow :background "#506070"
;; :weight bold :underline t))))
;; `(cursor ((t (:background "#aaaaaa" :foreground nil))))
;; `(escape-glyph-face ((t (:foreground ,zenburn-red))))
;; `(minibuffer-prompt ((t (:foreground ,zenburn-yellow))))
;; `(mode-line ((t (:foreground ,zenburn-yellow :background "#1e2320"
;; :box (:color "#1e2320" :line-width 2)))))
;; `(region ((t (:foreground nil :background ,zenburn-bg+2))))
;; `(scroll-bar ((t (:background ,zenburn-bg+2))))
;; `(secondary-selection ((t (:foreground nil :background ,zenburn-bg+2))))
;; `(tool-bar ((t (:background ,zenburn-bg+2))))
;; ;; apt-utils
;; '(apt-utils-normal-package ((t (:inherit 'zenburn-primary-1))))
;; '(apt-utils-virtual-package ((t (:inherit 'zenburn-primary-2))))
;; '(apt-utils-field-keyword ((t (:inherit font-lock-doc))))
;; '(apt-utils-field-contents ((t (:inherit font-lock-comment))))
;; '(apt-utils-summary ((t (:inherit bold))))
;; '(apt-utils-description ((t (:inherit default))))
;; '(apt-utils-version ((t (:inherit 'zenburn-blue))))
;; '(apt-utils-broken ((t (:inherit font-lock-warning))))
;; ;; breakpoint
;; '(breakpoint-enabled-bitmap ((t (:inherit 'zenburn-primary-1))))
;; '(breakpoint-disabled-bitmap ((t (:inherit font-lock-comment))))
;; ;; calendar
;; '(calendar-today ((t (:underline nil :inherit 'zenburn-primary-2))))
;; ;; change-log
;; '(change-log-date ((t (:inherit 'zenburn-blue))))
;; ;; circe
;; '(circe-highlight-nick-face ((t (:inherit 'zenburn-primary-1))))
;; '(circe-my-message-face ((t (:inherit 'zenburn-yellow))))
;; '(circe-originator-face ((t (:inherit bold))))
;; '(circe-prompt-face ((t (:inherit 'zenburn-primary-1))))
;; '(circe-server-face ((t (:inherit font-lock-comment-face))))
;; ;; comint
;; '(comint-highlight-input ((t (:inherit 'zenburn-primary-1))))
;; '(comint-highlight-prompt ((t (:inherit 'zenburn-primary-2))))
;; ;; compilation
;; '(compilation-info ((t (:inherit 'zenburn-primary-1))))
;; '(compilation-warning ((t (:inherit font-lock-warning))))
;; ;; cua
;; '(cua-rectangle ((t (:inherit region))))
;; ;; custom
;; '(custom-button ((t (:inherit fancy-widget-button))))
;; '(custom-button-pressed ((t (:inherit fancy-widget-button-pressed))))
;; '(custom-changed ((t (:inherit 'zenburn-blue))))
;; '(custom-comment ((t (:inherit font-lock-doc))))
;; '(custom-comment-tag ((t (:inherit font-lock-doc))))
;; '(custom-documentation ((t (:inherit font-lock-doc))))
;; '(custom-link ((t (:inherit 'zenburn-yellow :underline t))))
;; '(custom-tag ((t (:inherit 'zenburn-primary-2))))
;; '(custom-group-tag ((t (:inherit 'zenburn-primary-1))))
;; '(custom-group-tag-1 ((t (:inherit 'zenburn-primary-4))))
;; '(custom-invalid ((t (:inherit font-lock-warning))))
;; '(custom-modified ((t (:inherit 'zenburn-primary-3))))
;; '(custom-rogue ((t (:inherit font-lock-warning))))
;; '(custom-saved ((t (:underline t))))
;; '(custom-set ((t (:inverse-video t :inherit 'zenburn-blue))))
;; '(custom-state ((t (:inherit font-lock-comment))))
;; '(custom-variable-button ((t (:weight bold :underline t))))
;; '(custom-variable-tag ((t (:inherit 'zenburn-primary-2))))
;; ;; diary
;; '(diary ((t (:underline nil :inherit 'zenburn-primary-1))))
;; ;; dictionary
;; '(dictionary-button ((t (:inherit fancy-widget-button))))
;; '(dictionary-reference ((t (:inherit 'zenburn-primary-1))))
;; '(dictionary-word-entry ((t (:inherit font-lock-keyword))))
;; ;; diff
;; '(diff-header-face ((t (:inherit 'zenburn-highlight-subtle))))
;; '(diff-index-face ((t (:inherit bold))))
;; '(diff-file-header-face ((t (:inherit bold))))
;; '(diff-hunk-header-face ((t (:inherit 'zenburn-highlight-subtle))))
;; '(diff-added-face ((t (:inherit 'zenburn-primary-3))))
;; '(diff-removed-face ((t (:inherit 'zenburn-blue))))
;; '(diff-context-face ((t (:inherit font-lock-comment))))
;; '(diff-refine-change-face ((t (:inherit 'zenburn-background-2))))
;; ;; emms
;; `(emms-pbi-song ((t (:foreground ,zenburn-yellow))))
;; '(emms-pbi-current ((t (:inherit 'zenburn-primary-1))))
;; '(emms-pbi-mark-marked ((t (:inherit 'zenburn-primary-2))))
;; ;; erc
;; '(erc-action-face ((t (:inherit erc-default))))
;; '(erc-bold-face ((t (:weight bold))))
;; '(erc-current-nick-face ((t (:inherit 'zenburn-primary-1))))
;; '(erc-dangerous-host-face ((t (:inherit font-lock-warning))))
;; '(erc-direct-msg-face ((t (:inherit erc-default))))
;; '(erc-error-face ((t (:inherit font-lock-warning))))
;; '(erc-fool-face ((t (:inherit 'zenburn-lowlight-1))))
;; '(erc-highlight-face ((t (:inherit hover-highlight))))
;; '(erc-keyword-face ((t (:inherit 'zenburn-primary-1))))
;; '(erc-my-nick-face ((t (:inherit 'zenburn-red))))
;; '(erc-nick-default-face ((t (:inherit bold))))
;; '(erc-nick-msg-face ((t (:inherit erc-default))))
;; '(erc-notice-face ((t (:inherit 'zenburn-green))))
;; '(erc-pal-face ((t (:inherit 'zenburn-primary-3))))
;; '(erc-prompt-face ((t (:inherit 'zenburn-primary-2))))
;; '(erc-timestamp-face ((t (:inherit 'zenburn-green+1))))
;; '(erc-underline-face ((t (:inherit underline))))
;; `(erc-default-face ((t (:foreground ,zenburn-fg))))
;; `(erc-input-face ((t (:foreground ,zenburn-yellow))))
;; ;; eshell
;; '(eshell-prompt ((t (:inherit 'zenburn-primary-1))))
;; `(eshell-ls-archive ((t (:foreground ,zenburn-red-1 :weight bold))))
;; '(eshell-ls-backup ((t (:inherit font-lock-comment))))
;; '(eshell-ls-clutter ((t (:inherit font-lock-comment))))
;; `(eshell-ls-directory ((t (:foreground ,zenburn-blue+1 :weight bold))))
;; `(eshell-ls-executable ((t (:foreground ,zenburn-red+1 :weight bold))))
;; '(eshell-ls-unreadable ((t (:inherit 'zenburn-lowlight-1))))
;; '(eshell-ls-missing ((t (:inherit font-lock-warning))))
;; '(eshell-ls-product ((t (:inherit font-lock-doc))))
;; '(eshell-ls-special ((t (:inherit 'zenburn-primary-1))))
;; `(eshell-ls-symlink ((t (:foreground ,zenburn-cyan :weight bold))))
;; ;; flyspell
;; `(flyspell-duplicate ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(flyspell-incorrect ((t (:foreground ,zenburn-red :weight bold))))
;; ;; font-latex
;; '(font-latex-bold ((t (:inherit bold))))
;; '(font-latex-warning ((t (:inherit font-lock-warning))))
;; '(font-latex-sedate ((t (:inherit 'zenburn-primary-1))))
;; '(font-latex-title-4 ((t (:inherit 'zenburn-title))))
;; ;; font-locking
;; '(font-lock-builtin-face ((t (:inherit 'zenburn-blue))))
;; `(font-lock-comment-face ((t (:foreground ,zenburn-green :slant italic))))
;; `(font-lock-comment-delimiter-face ((t (:foreground ,zenburn-green))))
;; '(font-lock-constant-face ((t (:inherit 'zenburn-primary-4))))
;; '(font-lock-doc-face ((t (:inherit 'zenburn-green+1))))
;; `(font-lock-doc-string-face ((t (:foreground ,zenburn-blue+1))))
;; `(font-lock-function-name-face ((t (:foreground ,zenburn-blue))))
;; '(font-lock-keyword-face ((t (:inherit 'zenburn-primary-1))))
;; '(font-lock-negation-char-face ((t (:inherit 'zenburn-primary-1))))
;; '(font-lock-preprocessor-face ((t (:inherit 'zenburn-red))))
;; '(font-lock-string-face ((t (:inherit 'zenburn-red))))
;; '(font-lock-type-face ((t (:inherit 'zenburn-primary-3))))
;; `(font-lock-variable-name-face ((t (:foreground ,zenburn-yellow))))
;; '(font-lock-warning-face ((t (:inherit 'zenburn-highlight-alerting))))
;; '(font-lock-pseudo-keyword-face ((t (:inherit 'zenburn-primary-2))))
;; '(font-lock-operator-face ((t (:inherit 'zenburn-primary-3))))
;; ;; gnus
;; '(gnus-group-mail-1-face ((t (:bold t :inherit gnus-group-mail-1-empty))))
;; '(gnus-group-mail-1-empty-face ((t (:inherit gnus-group-news-1-empty))))
;; '(gnus-group-mail-2-face ((t (:bold t :inherit gnus-group-mail-2-empty))))
;; '(gnus-group-mail-2-empty-face ((t (:inherit gnus-group-news-2-empty))))
;; '(gnus-group-mail-3-face ((t (:bold t :inherit gnus-group-mail-3-empty))))
;; '(gnus-group-mail-3-empty-face ((t (:inherit gnus-group-news-3-empty))))
;; '(gnus-group-mail-4-face ((t (:bold t :inherit gnus-group-mail-4-empty))))
;; '(gnus-group-mail-4-empty-face ((t (:inherit gnus-group-news-4-empty))))
;; '(gnus-group-mail-5-face ((t (:bold t :inherit gnus-group-mail-5-empty))))
;; '(gnus-group-mail-5-empty-face ((t (:inherit gnus-group-news-5-empty))))
;; '(gnus-group-mail-6-face ((t (:bold t :inherit gnus-group-mail-6-empty))))
;; '(gnus-group-mail-6-empty-face ((t (:inherit gnus-group-news-6-empty))))
;; '(gnus-group-mail-low-face ((t (:bold t :inherit gnus-group-mail-low-empty))))
;; '(gnus-group-mail-low-empty-face ((t (:inherit gnus-group-news-low-empty))))
;; '(gnus-group-news-1-face ((t (:bold t :inherit gnus-group-news-1-empty))))
;; '(gnus-group-news-2-face ((t (:bold t :inherit gnus-group-news-2-empty))))
;; '(gnus-group-news-3-face ((t (:bold t :inherit gnus-group-news-3-empty))))
;; '(gnus-group-news-4-face ((t (:bold t :inherit gnus-group-news-4-empty))))
;; '(gnus-group-news-5-face ((t (:bold t :inherit gnus-group-news-5-empty))))
;; '(gnus-group-news-6-face ((t (:bold t :inherit gnus-group-news-6-empty))))
;; '(gnus-group-news-low-face ((t (:bold t :inherit gnus-group-news-low-empty))))
;; '(gnus-header-content-face ((t (:inherit message-header-other))))
;; '(gnus-header-from-face ((t (:inherit message-header-from))))
;; '(gnus-header-name-face ((t (:inherit message-header-name))))
;; '(gnus-header-newsgroups-face ((t (:inherit message-header-other))))
;; '(gnus-header-subject-face ((t (:inherit message-header-subject))))
;; '(gnus-summary-cancelled-face ((t (:inherit 'zenburn-highlight-alerting))))
;; '(gnus-summary-high-ancient-face ((t (:inherit 'zenburn-blue))))
;; '(gnus-summary-high-read-face ((t (:inherit 'zenburn-green :weight bold))))
;; '(gnus-summary-high-ticked-face ((t (:inherit 'zenburn-primary-2))))
;; '(gnus-summary-high-unread-face ((t (:inherit 'zenburn-foreground :weight bold))))
;; '(gnus-summary-low-ancient-face ((t (:inherit 'zenburn-blue :weight normal))))
;; '(gnus-summary-low-read-face ((t (:inherit 'zenburn-green :weight normal))))
;; '(gnus-summary-low-ticked-face ((t (:inherit 'zenburn-primary-2))))
;; '(gnus-summary-low-unread-face ((t (:inherit 'zenburn-foreground :weight normal))))
;; '(gnus-summary-normal-ancient-face ((t (:inherit 'zenburn-blue :weight normal))))
;; '(gnus-summary-normal-read-face ((t (:inherit 'zenburn-green :weight normal))))
;; '(gnus-summary-normal-ticked-face ((t (:inherit 'zenburn-primary-2))))
;; '(gnus-summary-normal-unread-face ((t (:inherit 'zenburn-foreground :weight normal))))
;; '(gnus-summary-selected-face ((t (:inherit 'zenburn-primary-1))))
;; `(gnus-cite-1-face ((t (:foreground ,zenburn-blue))))
;; `(gnus-cite-10-face ((t (:foreground ,zenburn-yellow-1))))
;; `(gnus-cite-11-face ((t (:foreground ,zenburn-yellow))))
;; `(gnus-cite-2-face ((t (:foreground ,zenburn-blue-1))))
;; `(gnus-cite-3-face ((t (:foreground ,zenburn-blue-2))))
;; `(gnus-cite-4-face ((t (:foreground ,zenburn-green+2))))
;; `(gnus-cite-5-face ((t (:foreground ,zenburn-green+1))))
;; `(gnus-cite-6-face ((t (:foreground ,zenburn-green))))
;; `(gnus-cite-7-face ((t (:foreground ,zenburn-red))))
;; `(gnus-cite-8-face ((t (:foreground ,zenburn-red-1))))
;; `(gnus-cite-9-face ((t (:foreground ,zenburn-red-2))))
;; `(gnus-group-news-1-empty-face ((t (:foreground ,zenburn-yellow))))
;; `(gnus-group-news-2-empty-face ((t (:foreground ,zenburn-green+3))))
;; `(gnus-group-news-3-empty-face ((t (:foreground ,zenburn-green+1))))
;; `(gnus-group-news-4-empty-face ((t (:foreground ,zenburn-blue-2))))
;; `(gnus-group-news-5-empty-face ((t (:foreground ,zenburn-blue-3))))
;; `(gnus-group-news-6-empty-face ((t (:inherit 'zenburn-lowlight-1))))
;; `(gnus-group-news-low-empty-face ((t (:inherit 'zenburn-lowlight-1))))
;; `(gnus-signature-face ((t (:foreground ,zenburn-yellow))))
;; `(gnus-x-face ((t (:background ,zenburn-fg :foreground ,zenburn-bg))))
;; ;; help-argument
;; '(help-argument-name ((t (:weight bold))))
;; ;; hi-lock-mode
;; `(hi-yellow ((t (:foreground ,zenburn-yellow))))
;; `(hi-pink ((t (:foreground ,zenburn-red-4))))
;; `(hi-green ((t (:foreground ,zenburn-green-1))))
;; `(hi-blue ((t (:foreground ,zenburn-blue-5))))
;; ;; highlight
;; '(highlight-current-line ((t (:inherit 'zenburn-highlight-subtle))))
;; ;; hightlight the current line
;; `(hl-line ((t (:inherit nil :background ,zenburn-bg-1))))
;; ;; holiday
;; '(holiday ((t (:underline t :inherit 'zenburn-primary-4))))
;; ;; ibuffer
;; '(ibuffer-deletion ((t (:inherit 'zenburn-primary-2))))
;; '(ibuffer-marked ((t (:inherit 'zenburn-primary-1))))
;; '(ibuffer-special-buffer ((t (:inherit font-lock-doc))))
;; '(ibuffer-help-buffer ((t (:inherit font-lock-comment))))
;; ;; icomplete
;; `(icompletep-choices ((t (:foreground ,zenburn-fg))))
;; `(icompletep-determined ((t (:foreground ,zenburn-green+1))))
;; `(icompletep-nb-candidates ((t (:foreground ,zenburn-green+3))))
;; `(icompletep-keys ((t (:foreground ,zenburn-red))))
;; ;; ido
;; '(ido-first-match ((t (:inherit 'zenburn-primary-1))))
;; '(ido-only-match ((t (:inherit 'zenburn-primary-2))))
;; `(ido-subdir ((t (:foreground ,zenburn-yellow))))
;; ;; imaxima
;; '(imaxima-latex-error ((t (:inherit font-lock-warning))))
;; ;; info
;; `(info-xref ((t (:foreground ,zenburn-yellow :weight bold))))
;; '(info-xref-visited ((t (:inherit info-xref :weight normal))))
;; '(info-header-xref ((t (:inherit info-xref))))
;; `(info-menu-star ((t (:foreground ,zenburn-orange :weight bold))))
;; `(info-menu-5 ((t (:inherit info-menu-star))))
;; '(info-node ((t (:weight bold))))
;; '(info-header-node ((t (:weight normal))))
;; ;; isearch
;; `(isearch ((t (:foreground ,zenburn-yellow :background ,zenburn-bg-1))))
;; `(isearch-fail ((t (:foreground ,zenburn-fg :background ,zenburn-red-4))))
;; `(lazy-highlight ((t (:foreground ,zenburn-yellow :background ,zenburn-bg+2))))
;; ;; jabber-mode
;; '(jabber-roster-user-chatty ((t (:inherit 'zenburn-primary-1))))
;; '(jabber-roster-user-online ((t (:inherit 'zenburn-primary-2))))
;; '(jabber-roster-user-away ((t (:inherit font-lock-doc))))
;; '(jabber-roster-user-xa ((t (:inherit font-lock-comment))))
;; '(jabber-roster-user-offline ((t (:inherit 'zenburn-lowlight-1))))
;; '(jabber-roster-user-dnd ((t (:inherit 'zenburn-primary-5))))
;; '(jabber-roster-user-error ((t (:inherit font-lock-warning))))
;; '(jabber-title-small ((t (:inherit 'zenburn-title :height 1.2))))
;; '(jabber-title-medium ((t (:inherit jabber-title-small :height 1.2))))
;; '(jabber-title-large ((t (:inherit jabber-title-medium :height 1.2))))
;; '(jabber-chat-prompt-local ((t (:inherit 'zenburn-primary-1))))
;; '(jabber-chat-prompt-foreign ((t (:inherit 'zenburn-primary-2))))
;; '(jabber-rare-time-face ((t (:inherit 'zenburn-green+1))))
;; ;; jde
;; '(jde-java-font-lock-modifier-face ((t (:inherit 'zenburn-primary-2))))
;; '(jde-java-font-lock-doc-tag-face ((t (:inherit 'zenburn-primary-1))))
;; '(jde-java-font-lock-constant-face ((t (:inherit font-lock-constant))))
;; '(jde-java-font-lock-package-face ((t (:inherit 'zenburn-primary-3))))
;; '(jde-java-font-lock-number-face ((t (:inherit font-lock-constant))))
;; '(jde-java-font-lock-operator-face ((t (:inherit font-lock-keyword))))
;; '(jde-java-font-lock-link-face ((t (:inherit 'zenburn-primary-5 :underline t))))
;; ;; keywiz
;; '(keywiz-right-face ((t (:inherit 'zenburn-primary-1))))
;; '(keywiz-wrong-face ((t (:inherit font-lock-warning))))
;; '(keywiz-command-face ((t (:inherit 'zenburn-primary-2))))
;; ;; magit
;; '(magit-section-title ((t (:inherit 'zenburn-red))))
;; '(magit-item-highlight ((t (:inherit 'zenburn-blue))))
;; '(magit-branch ((t (:inherit 'zenburn-blue))))
;; ;; makefile
;; '(makefile-space ((t (:inherit font-lock-warning))))
;; '(makefile-shell ((t (nil))))
;; ;; message
;; '(message-cited-text-face ((t (:inherit font-lock-comment))))
;; '(message-header-name-face ((t (:inherit 'zenburn-green+1))))
;; '(message-header-other-face ((t (:inherit 'zenburn-green))))
;; '(message-header-to-face ((t (:inherit 'zenburn-primary-1))))
;; '(message-header-from-face ((t (:inherit 'zenburn-primary-1))))
;; '(message-header-cc-face ((t (:inherit 'zenburn-primary-1))))
;; '(message-header-newsgroups-face ((t (:inherit 'zenburn-primary-1))))
;; '(message-header-subject-face ((t (:inherit 'zenburn-primary-2))))
;; '(message-header-xheader-face ((t (:inherit 'zenburn-green))))
;; '(message-mml-face ((t (:inherit 'zenburn-primary-1))))
;; '(message-separator-face ((t (:inherit font-lock-comment))))
;; ;; minimap
;; '(minimap-active-region-background ((t (:foreground nil :background "#233323"))))
;; ;; org-mode
;; `(org-agenda-clocking
;; ((t (:background ,zenburn-green-4 :weight bold))) t)
;; `(org-agenda-date-today
;; ((t (:foreground ,zenburn-cyan :slant italic :weight bold))) t)
;; `(org-agenda-date
;; ((t (:foreground ,zenburn-blue))) t)
;; `(org-agenda-date-weekend
;; ((t (:foreground ,zenburn-blue+1))) t)
;; '(org-agenda-structure
;; ((t (:inherit font-lock-comment))))
;; `(org-archived ((t (:foreground ,zenburn-fg :weight bold))))
;; `(org-checkbox ((t (:background ,zenburn-bg+2 :foreground "white"
;; :box (:line-width 1 :style released-button)))))
;; `(org-date ((t (:foreground ,zenburn-blue :underline t))))
;; `(org-deadline-announce ((t (:foreground ,zenburn-red-1))))
;; `(org-done ((t (:bold t :weight bold :foreground ,zenburn-green+3))))
;; `(org-formula ((t (:foreground ,zenburn-yellow-2))))
;; `(org-headline-done ((t (:foreground ,zenburn-green+3))))
;; `(org-hide ((t (:foreground ,zenburn-bg-1))))
;; `(org-level-1 ((t (:foreground ,zenburn-orange))))
;; `(org-level-2 ((t (:foreground ,zenburn-yellow))))
;; `(org-level-3 ((t (:foreground ,zenburn-blue))))
;; `(org-level-4 ((t (:foreground ,zenburn-cyan))))
;; `(org-level-5 ((t (:foreground ,zenburn-blue-1))))
;; `(org-level-6 ((t (:foreground ,zenburn-blue-2))))
;; `(org-level-7 ((t (:foreground ,zenburn-blue-3))))
;; `(org-level-8 ((t (:foreground ,zenburn-blue-4))))
;; `(org-link ((t (:foreground ,zenburn-yellow-2 :underline t))))
;; `(org-scheduled ((t (:foreground ,zenburn-green+4))))
;; `(org-scheduled-previously ((t (:foreground ,zenburn-red-4))))
;; `(org-scheduled-today ((t (:foreground ,zenburn-blue+1))))
;; `(org-special-keyword ((t (:foreground ,zenburn-yellow-1))))
;; `(org-table ((t (:foreground ,zenburn-green+2))))
;; `(org-tag ((t (:bold t :weight bold))))
;; `(org-time-grid ((t (:foreground ,zenburn-orange))))
;; `(org-todo ((t (:bold t :foreground ,zenburn-red :weight bold))))
;; '(org-upcoming-deadline ((t (:inherit font-lock-keyword-face))))
;; `(org-warning ((t (:bold t :foreground ,zenburn-red :weight bold))))
;; ;; outline
;; '(outline-8 ((t (:inherit default))))
;; '(outline-7 ((t (:inherit outline-8 :height 1.0))))
;; '(outline-6 ((t (:inherit outline-7 :height 1.0))))
;; '(outline-5 ((t (:inherit outline-6 :height 1.0))))
;; '(outline-4 ((t (:inherit outline-5 :height 1.0))))
;; '(outline-3 ((t (:inherit outline-4 :height 1.0))))
;; '(outline-2 ((t (:inherit outline-3 :height 1.0))))
;; '(outline-1 ((t (:inherit outline-2 :height 1.0))))
;; ;; rainbow-delimiters
;; ;; `(rainbow-delimiters-depth-1-face ((t (:foreground ,zenburn-cyan))))
;; ;; `(rainbow-delimiters-depth-2-face ((t (:foreground ,zenburn-yellow))))
;; ;; `(rainbow-delimiters-depth-3-face ((t (:foreground ,zenburn-blue+1))))
;; ;; `(rainbow-delimiters-depth-4-face ((t (:foreground ,zenburn-red+1))))
;; ;; `(rainbow-delimiters-depth-5-face ((t (:foreground ,zenburn-green+1))))
;; ;; `(rainbow-delimiters-depth-6-face ((t (:foreground ,zenburn-blue-1))))
;; ;; `(rainbow-delimiters-depth-7-face ((t (:foreground ,zenburn-orange))))
;; ;; `(rainbow-delimiters-depth-8-face ((t (:foreground ,zenburn-magenta))))
;; ;; `(rainbow-delimiters-depth-9-face ((t (:foreground ,zenburn-yellow-2))))
;; ;; `(rainbow-delimiters-depth-10-face ((t (:foreground ,zenburn-green+2))))
;; ;; `(rainbow-delimiters-depth-11-face ((t (:foreground ,zenburn-blue+1))))
;; ;; `(rainbow-delimiters-depth-12-face ((t (:foreground ,zenburn-red-4))))
;; ;; my alternative
;; `(rainbow-delimiters-depth-1-face ((t (:foreground , "#1e90ff" ))))
;; `(rainbow-delimiters-depth-2-face ((t (:foreground , "#ff00ff" ))))
;; `(rainbow-delimiters-depth-3-face ((t (:foreground ,"#90ee90"))))
;; `(rainbow-delimiters-depth-4-face ((t (:foreground ,"#f8f8ff"))))
;; `(rainbow-delimiters-depth-5-face ((t (:foreground ,"#ffff00"))))
;; `(rainbow-delimiters-depth-6-face ((t (:foreground ,zenburn-blue-1))))
;; `(rainbow-delimiters-depth-7-face ((t (:foreground ,zenburn-orange))))
;; `(rainbow-delimiters-depth-8-face ((t (:foreground ,zenburn-magenta))))
;; `(rainbow-delimiters-depth-9-face ((t (:foreground ,zenburn-yellow-2))))
;; `(rainbow-delimiters-depth-10-face ((t (:foreground ,zenburn-green+2))))
;; `(rainbow-delimiters-depth-11-face ((t (:foreground ,zenburn-blue+1))))
;; `(rainbow-delimiters-depth-12-face ((t (:foreground ,zenburn-red-4))))
;; ;; rcirc
;; '(rcirc-my-nick ((t (:inherit 'zenburn-primary-1))))
;; '(rcirc-other-nick ((t (:inherit bold))))
;; '(rcirc-bright-nick ((t (:foreground "white" :inherit rcirc-other-nick))))
;; '(rcirc-dim-nick ((t (:inherit font-lock-comment))))
;; '(rcirc-nick-in-message ((t (:inherit bold))))
;; '(rcirc-server ((t (:inherit font-lock-comment))))
;; '(rcirc-server-prefix ((t (:inherit font-lock-comment-delimiter))))
;; '(rcirc-timestamp ((t (:inherit font-lock-comment))))
;; '(rcirc-prompt ((t (:inherit 'zenburn-primary-1))))
;; '(rcirc-mode-line-nick ((t (:inherit 'zenburn-primary-1))))
;; ;; show-paren
;; '(show-paren-mismatch ((t (:inherit font-lock-warning :weight bold))))
;; `(show-paren-match ((t (:background ,zenburn-blue-5 :underline nil))))
;; ;; setnu
;; '(setnu-line-number ((t (:inherit 'zenburn-lowlight-2))))
;; ;; speedbar
;; '(speedbar-button-face ((t (:inherit 'zenburn-primary-1))))
;; '(speedbar-file-face ((t (:inherit 'zenburn-primary-2))))
;; '(speedbar-directory-face ((t (:inherit 'zenburn-primary-5))))
;; '(speedbar-tag-face ((t (:inherit font-lock-function-name))))
;; '(speedbar-highlight-face ((t (:underline t))))
;; ;; strokes
;; '(strokes-char-face ((t (:inherit font-lock-keyword))))
;; ;; todoo
;; '(todoo-item-header-face ((t (:inherit 'zenburn-primary-1))))
;; '(todoo-item-assigned-header-face ((t (:inherit 'zenburn-primary-2))))
;; `(todoo-sub-item-header-face ((t (:foreground ,zenburn-yellow))))
;; ;; tuareg
;; '(tuareg-font-lock-governing-face ((t (:inherit 'zenburn-primary-2))))
;; '(tuareg-font-lock-interactive-error-face ((t (:inherit font-lock-warning))))
;; '(tuareg-font-lock-interactive-output-face ((t (:inherit 'zenburn-primary-3))))
;; '(tuareg-font-lock-operator-face ((t (:inherit font-lock-operator))))
;; ;; twittering-mode
;; '(twittering-username-face ((t (:inherit 'zenburn-red-2))))
;; '(twittering-uri-face ((t (:inherit 'zenburn-blue :underline t))))
;; ;; w3m
;; '(w3m-form-button-face ((t (:inherit widget-button))))
;; '(w3m-form-button-pressed-face ((t (:inherit widget-button-pressed))))
;; '(w3m-form-button-mouse-face ((t (:inherit widget-button-pressed))))
;; '(w3m-tab-unselected-face ((t (:box (:line-width 1 :style released-button)))))
;; '(w3m-tab-selected-face ((t (:box (:line-width 1 :style pressed-button)))))
;; '(w3m-tab-unselected-retrieving-face
;; ((t (:inherit w3m-tab-unselected widget-inactive))))
;; '(w3m-tab-selected-retrieving-face
;; ((t (:inherit w3m-tab-selected widget-inactive))))
;; '(w3m-tab-background-face ((t (:inherit 'zenburn-highlight-subtle))))
;; '(w3m-anchor-face ((t (:inherit 'zenburn-primary-1))))
;; '(w3m-arrived-anchor-face ((t (:inherit 'zenburn-primary-2))))
;; '(w3m-image-face ((t (:inherit 'zenburn-primary-3))))
;; '(w3m-form-face ((t (:inherit widget-field))))
;; ;; which
;; '(which-func ((t (:inherit mode-line))))
;; ;; wl (wanderlust)
;; ;; some faces end with -face, while other don't; confusing
;; '(wl-highlight-folder-few-face ((t (:inherit 'zenburn-red-2))))
;; '(wl-highlight-folder-many-face ((t (:inherit 'zenburn-red-1))))
;; '(wl-highlight-folder-path-face ((t (:inherit 'zenburn-orange))))
;; '(wl-highlight-folder-unread-face ((t (:inherit 'zenburn-blue))))
;; '(wl-highlight-folder-zero-face ((t (:inherit 'zenburn-fg))))
;; '(wl-highlight-folder-unknown-face ((t (:inherit 'zenburn-blue))))
;; '(wl-highlight-message-citation-header ((t (:inherit 'zenburn-red-1))))
;; '(wl-highlight-message-cited-text-1 ((t (:inherit 'zenburn-red))))
;; '(wl-highlight-message-cited-text-2 ((t (:inherit 'zenburn-green+2))))
;; '(wl-highlight-message-cited-text-3 ((t (:inherit 'zenburn-blue))))
;; '(wl-highlight-message-cited-text-4 ((t (:inherit 'zenburn-blue+))))
;; '(wl-highlight-message-header-contents-face ((t (:inherit 'zenburn-green))))
;; '(wl-highlight-message-headers-face ((t (:inherit 'zenburn-red+1))))
;; '(wl-highlight-message-important-header-contents ((t (:inherit 'zenburn-green+2))))
;; '(wl-highlight-message-header-contents ((t (:inherit 'zenburn-green+1))))
;; '(wl-highlight-message-important-header-contents2 ((t (:inherit 'zenburn-green+2))))
;; '(wl-highlight-message-signature ((t (:inherit 'zenburn-green))))
;; '(wl-highlight-message-unimportant-header-contents ((t (:inherit 'zenburn-lowlight-2))))
;; '(wl-highlight-summary-answered-face ((t (:inherit 'zenburn-blue))))
;; '(wl-highlight-summary-disposed-face ((t (:inherit 'zenburn-lowlight-2
;; :slant italic))))
;; '(wl-highlight-summary-new-face ((t (:inherit 'zenburn-blue))))
;; '(wl-highlight-summary-normal-face ((t (:inherit 'zenburn-fg))))
;; `(wl-highlight-summary-thread-top-face ((t (:foreground ,zenburn-yellow))))
;; `(wl-highlight-thread-indent-face ((t (:foreground ,zenburn-magenta))))
;; '(wl-highlight-summary-refiled-face ((t (:inherit 'zenburn-lowlight-2))))
;; '(wl-highlight-summary-displaying-face ((t (:underline t :weight bold))))
;; ))
;; (provide-theme 'zenburn)
;; ;; Local Variables:
;; ;; no-byte-compile: t
;; ;; End:
;; ;;;; Alternative zenburn
;; ;;; zenburn-theme.el --- A low contrast color theme for Emacs.
;; ;; Copyright (C) 2011-2018 Bozhidar Batsov
;; ;; Author: Bozhidar Batsov <bozhidar@batsov.com>
;; ;; URL: http://github.com/bbatsov/zenburn-emacs
;; ;; Version: 2.7-snapshot
;; ;; 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 <http://www.gnu.org/licenses/>.
;; ;;; 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.
;; ;;; Credits:
;; ;; Jani Nurminen created the original theme for vim on which this port
;; ;; is based.
;; ;;; Code:
;; (deftheme zenburn "The Zenburn color theme")
;; (defgroup zenburn-theme nil
;; "Zenburn theme."
;; :group 'faces
;; :prefix "zenburn-"
;; :link '(url-link :tag "GitHub" "http://github.com/bbatsov/zenburn-emacs")
;; :tag "Zenburn theme")
;; ;;;###autoload
;; (defcustom zenburn-override-colors-alist '()
;; "Place to override default theme colors.
;; You can override a subset of the theme's default colors by
;; defining them in this alist."
;; :group 'zenburn-theme
;; :type '(alist
;; :key-type (string :tag "Name")
;; :value-type (string :tag " Hex")))
;; (defvar zenburn-use-variable-pitch nil
;; "When non-nil, use variable pitch face for some headings and titles.")
;; (defvar zenburn-scale-org-headlines nil
;; "Whether `org-mode' headlines should be scaled.")
;; (defvar zenburn-scale-outline-headlines nil
;; "Whether `outline-mode' headlines should be scaled.")
;; (defcustom zenburn-height-minus-1 0.8
;; "Font size -1."
;; :type 'number
;; :group 'zenburn-theme
;; :package-version '(zenburn . "2.6"))
;; (defcustom zenburn-height-plus-1 1.1
;; "Font size +1."
;; :type 'number
;; :group 'zenburn-theme
;; :package-version '(zenburn . "2.6"))
;; (defcustom zenburn-height-plus-2 1.15
;; "Font size +2."
;; :type 'number
;; :group 'zenburn-theme
;; :package-version '(zenburn . "2.6"))
;; (defcustom zenburn-height-plus-3 1.2
;; "Font size +3."
;; :type 'number
;; :group 'zenburn-theme
;; :package-version '(zenburn . "2.6"))
;; (defcustom zenburn-height-plus-4 1.3
;; "Font size +4."
;; :type 'number
;; :group 'zenburn-theme
;; :package-version '(zenburn . "2.6"))
;; ;;; Color Palette
;; (defvar zenburn-default-colors-alist
;; '(("zenburn-fg-1" . "#656555")
;; ("zenburn-fg-05" . "#989890")
;; ("zenburn-fg" . "#DCDCCC")
;; ("zenburn-fg+1" . "#FFFFEF")
;; ("zenburn-fg+2" . "#FFFFFD")
;; ("zenburn-bg-2" . "#000000")
;; ("zenburn-bg-1" . "#2B2B2B")
;; ("zenburn-bg-08" . "#303030")
;; ("zenburn-bg-05" . "#383838")
;; ("zenburn-bg" . "#3F3F3F")
;; ("zenburn-bg+05" . "#494949")
;; ("zenburn-bg+1" . "#4F4F4F")
;; ("zenburn-bg+2" . "#5F5F5F")
;; ("zenburn-bg+3" . "#6F6F6F")
;; ("zenburn-red-6" . "#6C3333")
;; ("zenburn-red-5" . "#7C4343")
;; ("zenburn-red-4" . "#8C5353")
;; ("zenburn-red-3" . "#9C6363")
;; ("zenburn-red-2" . "#AC7373")
;; ("zenburn-red-1" . "#BC8383")
;; ("zenburn-red" . "#CC9393")
;; ("zenburn-red+1" . "#DCA3A3")
;; ("zenburn-red+2" . "#ECB3B3")
;; ("zenburn-orange" . "#DFAF8F")
;; ("zenburn-yellow-2" . "#D0BF8F")
;; ("zenburn-yellow-1" . "#E0CF9F")
;; ("zenburn-yellow" . "#F0DFAF")
;; ("zenburn-green-5" . "#2F4F2F")
;; ("zenburn-green-4" . "#3F5F3F")
;; ("zenburn-green-3" . "#4F6F4F")
;; ("zenburn-green-2" . "#5F7F5F")
;; ("zenburn-green-1" . "#6F8F6F")
;; ("zenburn-green" . "#7F9F7F")
;; ("zenburn-green+1" . "#8FB28F")
;; ("zenburn-green+2" . "#9FC59F")
;; ("zenburn-green+3" . "#AFD8AF")
;; ("zenburn-green+4" . "#BFEBBF")
;; ("zenburn-cyan" . "#93E0E3")
;; ("zenburn-blue+3" . "#BDE0F3")
;; ("zenburn-blue+2" . "#ACE0E3")
;; ("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).
;; `+N' suffixes indicate a color is lighter.
;; `-N' suffixes indicate a color is darker.")
;; (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)))
;; (append zenburn-default-colors-alist
;; zenburn-override-colors-alist))
;; (z-variable-pitch (if zenburn-use-variable-pitch
;; 'variable-pitch 'default)))
;; ,@body))
;; ;;; Theme Faces
;; (zenburn-with-color-variables
;; (custom-theme-set-faces
;; 'zenburn
;; ;;;; 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 ,zenburn-fg :background ,zenburn-bg))))
;; `(cursor ((t (:foreground ,zenburn-fg :background ,zenburn-fg+1))))
;; `(widget-field ((t (:foreground ,zenburn-fg :background ,zenburn-bg+3))))
;; `(escape-glyph ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(fringe ((t (:foreground ,zenburn-fg :background ,zenburn-bg+1))))
;; `(header-line ((t (:foreground ,zenburn-yellow
;; :background ,zenburn-bg-1
;; :box (:line-width -1 :style released-button)
;; :extend t))))
;; `(highlight ((t (:background ,zenburn-bg-05))))
;; `(success ((t (:foreground ,zenburn-green :weight bold))))
;; `(warning ((t (:foreground ,zenburn-orange :weight bold))))
;; `(tooltip ((t (:foreground ,zenburn-fg :background ,zenburn-bg+1))))
;; ;;;;; compilation
;; `(compilation-column-face ((t (:foreground ,zenburn-yellow))))
;; `(compilation-enter-directory-face ((t (:foreground ,zenburn-green))))
;; `(compilation-error-face ((t (:foreground ,zenburn-red-1 :weight bold :underline t))))
;; `(compilation-face ((t (:foreground ,zenburn-fg))))
;; `(compilation-info-face ((t (:foreground ,zenburn-blue))))
;; `(compilation-info ((t (:foreground ,zenburn-green+4 :underline t))))
;; `(compilation-leave-directory-face ((t (:foreground ,zenburn-green))))
;; `(compilation-line-face ((t (:foreground ,zenburn-yellow))))
;; `(compilation-line-number ((t (:foreground ,zenburn-yellow))))
;; `(compilation-message-face ((t (:foreground ,zenburn-blue))))
;; `(compilation-warning-face ((t (:foreground ,zenburn-orange :weight bold :underline t))))
;; `(compilation-mode-line-exit ((t (:foreground ,zenburn-green+2 :weight bold))))
;; `(compilation-mode-line-fail ((t (:foreground ,zenburn-red :weight bold))))
;; `(compilation-mode-line-run ((t (:foreground ,zenburn-yellow :weight bold))))
;; ;;;;; completions
;; `(completions-annotations ((t (:foreground ,zenburn-fg-1))))
;; ;;;;; customize
;; `(custom-variable-tag ((t (:foreground ,zenburn-blue :weight bold))))
;; `(custom-group-tag ((t (:foreground ,zenburn-blue :weight bold :height 1.2))))
;; `(custom-state ((t (:foreground ,zenburn-green+4))))
;; ;;;;; display-fill-column-indicator
;; `(fill-column-indicator ((,class :foreground ,zenburn-bg-05 :weight semilight)))
;; ;;;;; eww
;; '(eww-invalid-certificate ((t (:inherit error))))
;; '(eww-valid-certificate ((t (:inherit success))))
;; ;;;;; grep
;; `(grep-context-face ((t (:foreground ,zenburn-fg))))
;; `(grep-error-face ((t (:foreground ,zenburn-red-1 :weight bold :underline t))))
;; `(grep-hit-face ((t (:foreground ,zenburn-blue))))
;; `(grep-match-face ((t (:foreground ,zenburn-orange :weight bold))))
;; `(match ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange :weight bold))))
;; ;;;;; hi-lock
;; `(hi-blue ((t (:background ,zenburn-cyan :foreground ,zenburn-bg-1))))
;; `(hi-green ((t (:background ,zenburn-green+4 :foreground ,zenburn-bg-1))))
;; `(hi-pink ((t (:background ,zenburn-magenta :foreground ,zenburn-bg-1))))
;; `(hi-yellow ((t (:background ,zenburn-yellow :foreground ,zenburn-bg-1))))
;; `(hi-blue-b ((t (:foreground ,zenburn-blue :weight bold))))
;; `(hi-green-b ((t (:foreground ,zenburn-green+2 :weight bold))))
;; `(hi-red-b ((t (:foreground ,zenburn-red :weight bold))))
;; ;;;;; info
;; `(Info-quoted ((t (:inherit font-lock-constant-face))))
;; ;;;;; isearch
;; `(isearch ((t (:foreground ,zenburn-yellow-2 :weight bold :background ,zenburn-bg+2))))
;; `(isearch-fail ((t (:foreground ,zenburn-fg :background ,zenburn-red-4))))
;; `(lazy-highlight ((t (:foreground ,zenburn-yellow-2 :weight bold :background ,zenburn-bg-05))))
;; `(menu ((t (:foreground ,zenburn-fg :background ,zenburn-bg))))
;; `(minibuffer-prompt ((t (:foreground ,zenburn-yellow))))
;; `(mode-line
;; ((,class (:foreground ,zenburn-green+1
;; :background ,zenburn-bg-1
;; :box (:line-width -1 :style released-button)))
;; (t :inverse-video t)))
;; `(mode-line-buffer-id ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(mode-line-inactive
;; ((t (:foreground ,zenburn-green-2
;; :background ,zenburn-bg-05
;; :box (:line-width -1 :style released-button)))))
;; `(region ((,class (:background ,zenburn-bg-1 :extend t))
;; (t :inverse-video t)))
;; `(secondary-selection ((t (:background ,zenburn-bg+2))))
;; `(trailing-whitespace ((t (:background ,zenburn-red))))
;; `(vertical-border ((t (:foreground ,zenburn-fg))))
;; ;;;;; font lock
;; `(font-lock-builtin-face ((t (:foreground ,zenburn-fg :weight bold))))
;; `(font-lock-comment-face ((t (:foreground ,zenburn-green))))
;; `(font-lock-comment-delimiter-face ((t (:foreground ,zenburn-green-2))))
;; `(font-lock-constant-face ((t (:foreground ,zenburn-green+4))))
;; `(font-lock-doc-face ((t (:foreground ,zenburn-green+2))))
;; `(font-lock-function-name-face ((t (:foreground ,zenburn-cyan))))
;; `(font-lock-keyword-face ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(font-lock-negation-char-face ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(font-lock-preprocessor-face ((t (:foreground ,zenburn-blue+1))))
;; `(font-lock-regexp-grouping-construct ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(font-lock-regexp-grouping-backslash ((t (:foreground ,zenburn-green :weight bold))))
;; `(font-lock-string-face ((t (:foreground ,zenburn-red))))
;; `(font-lock-type-face ((t (:foreground ,zenburn-blue-1))))
;; `(font-lock-variable-name-face ((t (:foreground ,zenburn-orange))))
;; `(font-lock-warning-face ((t (:foreground ,zenburn-yellow-2 :weight bold))))
;; `(c-annotation-face ((t (:inherit font-lock-constant-face))))
;; ;;;;; line numbers (Emacs 26.1 and above)
;; `(line-number ((t (:foreground ,zenburn-bg+3 :background ,zenburn-bg-05))))
;; `(line-number-current-line ((t (:inherit line-number :foreground ,zenburn-yellow-2))))
;; ;;;;; man
;; '(Man-overstrike ((t (:inherit font-lock-keyword-face))))
;; '(Man-underline ((t (:inherit (font-lock-string-face underline)))))
;; ;;;;; newsticker
;; `(newsticker-date-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-default-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-enclosure-face ((t (:foreground ,zenburn-green+3))))
;; `(newsticker-extra-face ((t (:foreground ,zenburn-bg+2 :height 0.8))))
;; `(newsticker-feed-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-immortal-item-face ((t (:foreground ,zenburn-green))))
;; `(newsticker-new-item-face ((t (:foreground ,zenburn-blue))))
;; `(newsticker-obsolete-item-face ((t (:foreground ,zenburn-red))))
;; `(newsticker-old-item-face ((t (:foreground ,zenburn-bg+3))))
;; `(newsticker-statistics-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-treeview-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-treeview-immortal-face ((t (:foreground ,zenburn-green))))
;; `(newsticker-treeview-listwindow-face ((t (:foreground ,zenburn-fg))))
;; `(newsticker-treeview-new-face ((t (:foreground ,zenburn-blue :weight bold))))
;; `(newsticker-treeview-obsolete-face ((t (:foreground ,zenburn-red))))
;; `(newsticker-treeview-old-face ((t (:foreground ,zenburn-bg+3))))
;; `(newsticker-treeview-selection-face ((t (:background ,zenburn-bg-1 :foreground ,zenburn-yellow))))
;; ;;;;; woman
;; '(woman-bold ((t (:inherit font-lock-keyword-face))))
;; '(woman-italic ((t (:inherit (font-lock-string-face italic)))))
;; ;;;; Third-party
;; ;;;;; ace-jump
;; `(ace-jump-face-background
;; ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg :inverse-video nil))))
;; `(ace-jump-face-foreground
;; ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg :inverse-video nil))))
;; ;;;;; ace-window
;; `(aw-background-face
;; ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg :inverse-video nil))))
;; `(aw-leading-char-face ((t (:inherit aw-mode-line-face))))
;; ;;;;; android mode
;; `(android-mode-debug-face ((t (:foreground ,zenburn-green+1))))
;; `(android-mode-error-face ((t (:foreground ,zenburn-orange :weight bold))))
;; `(android-mode-info-face ((t (:foreground ,zenburn-fg))))
;; `(android-mode-verbose-face ((t (:foreground ,zenburn-green))))
;; `(android-mode-warning-face ((t (:foreground ,zenburn-yellow))))
;; ;;;;; anzu
;; `(anzu-mode-line ((t (:foreground ,zenburn-cyan :weight bold))))
;; `(anzu-mode-line-no-match ((t (:foreground ,zenburn-red :weight bold))))
;; `(anzu-match-1 ((t (:foreground ,zenburn-bg :background ,zenburn-green))))
;; `(anzu-match-2 ((t (:foreground ,zenburn-bg :background ,zenburn-orange))))
;; `(anzu-match-3 ((t (:foreground ,zenburn-bg :background ,zenburn-blue))))
;; `(anzu-replace-to ((t (:inherit anzu-replace-highlight :foreground ,zenburn-yellow))))
;; ;;;;; auctex
;; `(font-latex-bold-face ((t (:inherit bold))))
;; `(font-latex-warning-face ((t (:foreground nil :inherit font-lock-warning-face))))
;; `(font-latex-sectioning-5-face ((t (:foreground ,zenburn-red :weight bold ))))
;; `(font-latex-sedate-face ((t (:foreground ,zenburn-yellow))))
;; `(font-latex-italic-face ((t (:foreground ,zenburn-cyan :slant italic))))
;; `(font-latex-string-face ((t (:inherit ,font-lock-string-face))))
;; `(font-latex-math-face ((t (:foreground ,zenburn-orange))))
;; `(font-latex-script-char-face ((t (:foreground ,zenburn-orange))))
;; ;;;;; agda-mode
;; `(agda2-highlight-keyword-face ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(agda2-highlight-string-face ((t (:foreground ,zenburn-red))))
;; `(agda2-highlight-symbol-face ((t (:foreground ,zenburn-orange))))
;; `(agda2-highlight-primitive-type-face ((t (:foreground ,zenburn-blue-1))))
;; `(agda2-highlight-inductive-constructor-face ((t (:foreground ,zenburn-fg))))
;; `(agda2-highlight-coinductive-constructor-face ((t (:foreground ,zenburn-fg))))
;; `(agda2-highlight-datatype-face ((t (:foreground ,zenburn-blue))))
;; `(agda2-highlight-function-face ((t (:foreground ,zenburn-blue))))
;; `(agda2-highlight-module-face ((t (:foreground ,zenburn-blue-1))))
;; `(agda2-highlight-error-face ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(agda2-highlight-unsolved-meta-face ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(agda2-highlight-unsolved-constraint-face ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(agda2-highlight-termination-problem-face ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(agda2-highlight-incomplete-pattern-face ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(agda2-highlight-typechecks-face ((t (:background ,zenburn-red-4))))
;; ;;;;; auto-complete
;; `(ac-candidate-face ((t (:background ,zenburn-bg+3 :foreground ,zenburn-bg-2))))
;; `(ac-selection-face ((t (:background ,zenburn-blue-4 :foreground ,zenburn-fg))))
;; `(popup-tip-face ((t (:background ,zenburn-yellow-2 :foreground ,zenburn-bg-2))))
;; `(popup-menu-mouse-face ((t (:background ,zenburn-yellow-2 :foreground ,zenburn-bg-2))))
;; `(popup-summary-face ((t (:background ,zenburn-bg+3 :foreground ,zenburn-bg-2))))
;; `(popup-scroll-bar-foreground-face ((t (:background ,zenburn-blue-5))))
;; `(popup-scroll-bar-background-face ((t (:background ,zenburn-bg-1))))
;; `(popup-isearch-match ((t (:background ,zenburn-bg :foreground ,zenburn-fg))))
;; ;;;;; avy
;; `(avy-background-face
;; ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg :inverse-video nil))))
;; `(avy-lead-face-0
;; ((t (:foreground ,zenburn-green+3 :background ,zenburn-bg :inverse-video nil :weight bold))))
;; `(avy-lead-face-1
;; ((t (:foreground ,zenburn-yellow :background ,zenburn-bg :inverse-video nil :weight bold))))
;; `(avy-lead-face-2
;; ((t (:foreground ,zenburn-red+1 :background ,zenburn-bg :inverse-video nil :weight bold))))
;; `(avy-lead-face
;; ((t (:foreground ,zenburn-cyan :background ,zenburn-bg :inverse-video nil :weight bold))))
;; ;;;;; company-mode
;; `(company-tooltip ((t (:foreground ,zenburn-fg :background ,zenburn-bg+1))))
;; `(company-tooltip-annotation ((t (:foreground ,zenburn-orange :background ,zenburn-bg+1))))
;; `(company-tooltip-annotation-selection ((t (:foreground ,zenburn-orange :background ,zenburn-bg-1))))
;; `(company-tooltip-selection ((t (:foreground ,zenburn-fg :background ,zenburn-bg-1))))
;; `(company-tooltip-mouse ((t (:background ,zenburn-bg-1))))
;; `(company-tooltip-common ((t (:foreground ,zenburn-green+2))))
;; `(company-tooltip-common-selection ((t (:foreground ,zenburn-green+2))))
;; `(company-scrollbar-fg ((t (:background ,zenburn-bg-1))))
;; `(company-scrollbar-bg ((t (:background ,zenburn-bg+2))))
;; `(company-preview ((t (:background ,zenburn-green+2))))
;; `(company-preview-common ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg-1))))
;; ;;;;; bm
;; `(bm-face ((t (:background ,zenburn-yellow-1 :foreground ,zenburn-bg))))
;; `(bm-fringe-face ((t (:background ,zenburn-yellow-1 :foreground ,zenburn-bg))))
;; `(bm-fringe-persistent-face ((t (:background ,zenburn-green-2 :foreground ,zenburn-bg))))
;; `(bm-persistent-face ((t (:background ,zenburn-green-2 :foreground ,zenburn-bg))))
;; ;;;;; calfw
;; `(cfw:face-annotation ((t (:foreground ,zenburn-red :inherit cfw:face-day-title))))
;; `(cfw:face-day-title ((t nil)))
;; `(cfw:face-default-content ((t (:foreground ,zenburn-green))))
;; `(cfw:face-default-day ((t (:weight bold))))
;; `(cfw:face-disable ((t (:foreground ,zenburn-fg-1))))
;; `(cfw:face-grid ((t (:inherit shadow))))
;; `(cfw:face-header ((t (:inherit font-lock-keyword-face))))
;; `(cfw:face-holiday ((t (:inherit cfw:face-sunday))))
;; `(cfw:face-periods ((t (:foreground ,zenburn-cyan))))
;; `(cfw:face-saturday ((t (:foreground ,zenburn-blue :weight bold))))
;; `(cfw:face-select ((t (:background ,zenburn-blue-5))))
;; `(cfw:face-sunday ((t (:foreground ,zenburn-red :weight bold))))
;; `(cfw:face-title ((t (:height 2.0 :inherit (variable-pitch font-lock-keyword-face)))))
;; `(cfw:face-today ((t (:foreground ,zenburn-cyan :weight bold))))
;; `(cfw:face-today-title ((t (:inherit highlight bold))))
;; `(cfw:face-toolbar ((t (:background ,zenburn-blue-5))))
;; `(cfw:face-toolbar-button-off ((t (:underline nil :inherit link))))
;; `(cfw:face-toolbar-button-on ((t (:underline nil :inherit link-visited))))
;; ;;;;; centaur-tabs
;; `(centaur-tabs-default ((t (:background ,zenburn-bg :foreground ,zenburn-fg :box nil))))
;; `(centaur-tabs-selected ((t (:background ,zenburn-bg :foreground ,zenburn-fg+2 :box nil))))
;; `(centaur-tabs-unselected ((t (:background ,zenburn-bg-1 :foreground ,zenburn-fg-05 :box nil))))
;; `(centaur-tabs-selected-modified ((t (:background ,zenburn-bg :foreground ,zenburn-orange :box nil))))
;; `(centaur-tabs-unselected-modified ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange :box nil))))
;; `(centaur-tabs-active-bar-face ((t (:background ,zenburn-yellow :box nil))))
;; `(centaur-tabs-modified-marker-selected ((t (:inherit 'centaur-tabs-selected-modified :foreground ,zenburn-yellow :box nil))))
;; `(centaur-tabs-modified-marker-unselected ((t (:inherit 'centaur-tabs-unselected-modified :foreground ,zenburn-yellow :box nil))))
;; ;;;;; cider
;; `(cider-result-overlay-face ((t (:background unspecified))))
;; `(cider-enlightened-face ((t (:box (:color ,zenburn-orange :line-width -1)))))
;; `(cider-enlightened-local-face ((t (:weight bold :foreground ,zenburn-green+1))))
;; `(cider-deprecated-face ((t (:background ,zenburn-yellow-2))))
;; `(cider-instrumented-face ((t (:box (:color ,zenburn-red :line-width -1)))))
;; `(cider-traced-face ((t (:box (:color ,zenburn-cyan :line-width -1)))))
;; `(cider-test-failure-face ((t (:background ,zenburn-red-4))))
;; `(cider-test-error-face ((t (:background ,zenburn-magenta))))
;; `(cider-test-success-face ((t (:background ,zenburn-green-2))))
;; `(cider-fringe-good-face ((t (:foreground ,zenburn-green+4))))
;; ;;;;; circe
;; `(circe-highlight-nick-face ((t (:foreground ,zenburn-cyan))))
;; `(circe-my-message-face ((t (:foreground ,zenburn-fg))))
;; `(circe-fool-face ((t (:foreground ,zenburn-red+1))))
;; `(circe-topic-diff-removed-face ((t (:foreground ,zenburn-red :weight bold))))
;; `(circe-originator-face ((t (:foreground ,zenburn-fg))))
;; `(circe-server-face ((t (:foreground ,zenburn-green))))
;; `(circe-topic-diff-new-face ((t (:foreground ,zenburn-orange :weight bold))))
;; `(circe-prompt-face ((t (:foreground ,zenburn-orange :background ,zenburn-bg :weight bold))))
;; ;;;;; context-coloring
;; `(context-coloring-level-0-face ((t :foreground ,zenburn-fg)))
;; `(context-coloring-level-1-face ((t :foreground ,zenburn-cyan)))
;; `(context-coloring-level-2-face ((t :foreground ,zenburn-green+4)))
;; `(context-coloring-level-3-face ((t :foreground ,zenburn-yellow)))
;; `(context-coloring-level-4-face ((t :foreground ,zenburn-orange)))
;; `(context-coloring-level-5-face ((t :foreground ,zenburn-magenta)))
;; `(context-coloring-level-6-face ((t :foreground ,zenburn-blue+1)))
;; `(context-coloring-level-7-face ((t :foreground ,zenburn-green+2)))
;; `(context-coloring-level-8-face ((t :foreground ,zenburn-yellow-2)))
;; `(context-coloring-level-9-face ((t :foreground ,zenburn-red+1)))
;; ;;;;; coq
;; `(coq-solve-tactics-face ((t (:foreground nil :inherit font-lock-constant-face))))
;; ;;;;; ctable
;; `(ctbl:face-cell-select ((t (:background ,zenburn-blue :foreground ,zenburn-bg))))
;; `(ctbl:face-continue-bar ((t (:background ,zenburn-bg-05 :foreground ,zenburn-bg))))
;; `(ctbl:face-row-select ((t (:background ,zenburn-cyan :foreground ,zenburn-bg))))
;; ;;;;; debbugs
;; `(debbugs-gnu-done ((t (:foreground ,zenburn-fg-1))))
;; `(debbugs-gnu-handled ((t (:foreground ,zenburn-green))))
;; `(debbugs-gnu-new ((t (:foreground ,zenburn-red))))
;; `(debbugs-gnu-pending ((t (:foreground ,zenburn-blue))))
;; `(debbugs-gnu-stale ((t (:foreground ,zenburn-orange))))
;; `(debbugs-gnu-tagged ((t (:foreground ,zenburn-red))))
;; ;;;;; diff
;; ;; Please read (info "(magit)Theming Faces") before changing this.
;; `(diff-added ((t (:background "#335533" :foreground ,zenburn-green))))
;; `(diff-changed ((t (:background "#555511" :foreground ,zenburn-yellow-1))))
;; `(diff-removed ((t (:background "#553333" :foreground ,zenburn-red-2))))
;; `(diff-refine-added ((t (:background "#338833" :foreground ,zenburn-green+4))))
;; `(diff-refine-changed ((t (:background "#888811" :foreground ,zenburn-yellow))))
;; `(diff-refine-removed ((t (:background "#883333" :foreground ,zenburn-red))))
;; `(diff-header ((,class (:background ,zenburn-bg+2))
;; (t (:background ,zenburn-fg :foreground ,zenburn-bg))))
;; `(diff-file-header
;; ((,class (:background ,zenburn-bg+2 :foreground ,zenburn-fg :weight bold))
;; (t (:background ,zenburn-fg :foreground ,zenburn-bg :weight bold))))
;; ;;;;; diff-hl
;; `(diff-hl-change ((,class (:foreground ,zenburn-blue :background ,zenburn-blue-2))))
;; `(diff-hl-delete ((,class (:foreground ,zenburn-red+1 :background ,zenburn-red-1))))
;; `(diff-hl-insert ((,class (:foreground ,zenburn-green+1 :background ,zenburn-green-2))))
;; ;;;;; dim-autoload
;; `(dim-autoload-cookie-line ((t :foreground ,zenburn-bg+1)))
;; ;;;;; dired+
;; `(diredp-display-msg ((t (:foreground ,zenburn-blue))))
;; `(diredp-compressed-file-suffix ((t (:foreground ,zenburn-orange))))
;; `(diredp-date-time ((t (:foreground ,zenburn-magenta))))
;; `(diredp-deletion ((t (:foreground ,zenburn-yellow))))
;; `(diredp-deletion-file-name ((t (:foreground ,zenburn-red))))
;; `(diredp-dir-heading ((t (:foreground ,zenburn-blue :background ,zenburn-bg-1))))
;; `(diredp-dir-priv ((t (:foreground ,zenburn-cyan))))
;; `(diredp-exec-priv ((t (:foreground ,zenburn-red))))
;; `(diredp-executable-tag ((t (:foreground ,zenburn-green+1))))
;; `(diredp-file-name ((t (:foreground ,zenburn-blue))))
;; `(diredp-file-suffix ((t (:foreground ,zenburn-green))))
;; `(diredp-flag-mark ((t (:foreground ,zenburn-yellow))))
;; `(diredp-flag-mark-line ((t (:foreground ,zenburn-orange))))
;; `(diredp-ignored-file-name ((t (:foreground ,zenburn-red))))
;; `(diredp-link-priv ((t (:foreground ,zenburn-yellow))))
;; `(diredp-mode-line-flagged ((t (:foreground ,zenburn-yellow))))
;; `(diredp-mode-line-marked ((t (:foreground ,zenburn-orange))))
;; `(diredp-no-priv ((t (:foreground ,zenburn-fg))))
;; `(diredp-number ((t (:foreground ,zenburn-green+1))))
;; `(diredp-other-priv ((t (:foreground ,zenburn-yellow-1))))
;; `(diredp-rare-priv ((t (:foreground ,zenburn-red-1))))
;; `(diredp-read-priv ((t (:foreground ,zenburn-green-2))))
;; `(diredp-symlink ((t (:foreground ,zenburn-yellow))))
;; `(diredp-write-priv ((t (:foreground ,zenburn-magenta))))
;; ;;;;; dired-async
;; `(dired-async-failures ((t (:foreground ,zenburn-red :weight bold))))
;; `(dired-async-message ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(dired-async-mode-message ((t (:foreground ,zenburn-yellow))))
;; ;;;;; diredfl
;; `(diredfl-compressed-file-suffix ((t (:foreground ,zenburn-orange))))
;; `(diredfl-date-time ((t (:foreground ,zenburn-magenta))))
;; `(diredfl-deletion ((t (:foreground ,zenburn-yellow))))
;; `(diredfl-deletion-file-name ((t (:foreground ,zenburn-red))))
;; `(diredfl-dir-heading ((t (:foreground ,zenburn-blue :background ,zenburn-bg-1))))
;; `(diredfl-dir-priv ((t (:foreground ,zenburn-cyan))))
;; `(diredfl-exec-priv ((t (:foreground ,zenburn-red))))
;; `(diredfl-executable-tag ((t (:foreground ,zenburn-green+1))))
;; `(diredfl-file-name ((t (:foreground ,zenburn-blue))))
;; `(diredfl-file-suffix ((t (:foreground ,zenburn-green))))
;; `(diredfl-flag-mark ((t (:foreground ,zenburn-yellow))))
;; `(diredfl-flag-mark-line ((t (:foreground ,zenburn-orange))))
;; `(diredfl-ignored-file-name ((t (:foreground ,zenburn-red))))
;; `(diredfl-link-priv ((t (:foreground ,zenburn-yellow))))
;; `(diredfl-no-priv ((t (:foreground ,zenburn-fg))))
;; `(diredfl-number ((t (:foreground ,zenburn-green+1))))
;; `(diredfl-other-priv ((t (:foreground ,zenburn-yellow-1))))
;; `(diredfl-rare-priv ((t (:foreground ,zenburn-red-1))))
;; `(diredfl-read-priv ((t (:foreground ,zenburn-green-1))))
;; `(diredfl-symlink ((t (:foreground ,zenburn-yellow))))
;; `(diredfl-write-priv ((t (:foreground ,zenburn-magenta))))
;; ;;;;; doom-modeline
;; `(doom-modeline-bar ((t (:background ,zenburn-yellow))))
;; `(doom-modeline-inactive-bar ((t (:background nil))))
;; ;;;;; ediff
;; `(ediff-current-diff-A ((t (:foreground ,zenburn-fg :background ,zenburn-red-4))))
;; `(ediff-current-diff-Ancestor ((t (:foreground ,zenburn-fg :background ,zenburn-red-4))))
;; `(ediff-current-diff-B ((t (:foreground ,zenburn-fg :background ,zenburn-green-2))))
;; `(ediff-current-diff-C ((t (:foreground ,zenburn-fg :background ,zenburn-blue-5))))
;; `(ediff-even-diff-A ((t (:background ,zenburn-bg+1))))
;; `(ediff-even-diff-Ancestor ((t (:background ,zenburn-bg+1))))
;; `(ediff-even-diff-B ((t (:background ,zenburn-bg+1))))
;; `(ediff-even-diff-C ((t (:background ,zenburn-bg+1))))
;; `(ediff-fine-diff-A ((t (:foreground ,zenburn-fg :background ,zenburn-red-2 :weight bold))))
;; `(ediff-fine-diff-Ancestor ((t (:foreground ,zenburn-fg :background ,zenburn-red-2 weight bold))))
;; `(ediff-fine-diff-B ((t (:foreground ,zenburn-fg :background ,zenburn-green :weight bold))))
;; `(ediff-fine-diff-C ((t (:foreground ,zenburn-fg :background ,zenburn-blue-3 :weight bold ))))
;; `(ediff-odd-diff-A ((t (:background ,zenburn-bg+2))))
;; `(ediff-odd-diff-Ancestor ((t (:background ,zenburn-bg+2))))
;; `(ediff-odd-diff-B ((t (:background ,zenburn-bg+2))))
;; `(ediff-odd-diff-C ((t (:background ,zenburn-bg+2))))
;; ;;;;; egg
;; `(egg-text-base ((t (:foreground ,zenburn-fg))))
;; `(egg-help-header-1 ((t (:foreground ,zenburn-yellow))))
;; `(egg-help-header-2 ((t (:foreground ,zenburn-green+3))))
;; `(egg-branch ((t (:foreground ,zenburn-yellow))))
;; `(egg-branch-mono ((t (:foreground ,zenburn-yellow))))
;; `(egg-term ((t (:foreground ,zenburn-yellow))))
;; `(egg-diff-add ((t (:foreground ,zenburn-green+4))))
;; `(egg-diff-del ((t (:foreground ,zenburn-red+1))))
;; `(egg-diff-file-header ((t (:foreground ,zenburn-yellow-2))))
;; `(egg-section-title ((t (:foreground ,zenburn-yellow))))
;; `(egg-stash-mono ((t (:foreground ,zenburn-green+4))))
;; ;;;;; elfeed
;; `(elfeed-log-error-level-face ((t (:foreground ,zenburn-red))))
;; `(elfeed-log-info-level-face ((t (:foreground ,zenburn-blue))))
;; `(elfeed-log-warn-level-face ((t (:foreground ,zenburn-yellow))))
;; `(elfeed-search-date-face ((t (:foreground ,zenburn-yellow-1 :underline t
;; :weight bold))))
;; `(elfeed-search-tag-face ((t (:foreground ,zenburn-green))))
;; `(elfeed-search-feed-face ((t (:foreground ,zenburn-cyan))))
;; `(elfeed-search-title-face ((t (:foreground ,zenburn-fg-05))))
;; `(elfeed-search-unread-title-face ((t (:foreground ,zenburn-fg :weight bold))))
;; ;;;;; emacs-w3m
;; `(w3m-anchor ((t (:foreground ,zenburn-yellow :underline t
;; :weight bold))))
;; `(w3m-arrived-anchor ((t (:foreground ,zenburn-yellow-2
;; :underline t :weight normal))))
;; `(w3m-form ((t (:foreground ,zenburn-red-1 :underline t))))
;; `(w3m-header-line-location-title ((t (:foreground ,zenburn-yellow
;; :underline t :weight bold))))
;; '(w3m-history-current-url ((t (:inherit match))))
;; `(w3m-lnum ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; `(w3m-lnum-match ((t (:background ,zenburn-bg-1
;; :foreground ,zenburn-orange
;; :weight bold))))
;; `(w3m-lnum-minibuffer-prompt ((t (:foreground ,zenburn-yellow))))
;; ;;;;; erc
;; `(erc-action-face ((t (:inherit erc-default-face))))
;; `(erc-bold-face ((t (:weight bold))))
;; `(erc-current-nick-face ((t (:foreground ,zenburn-blue :weight bold))))
;; `(erc-dangerous-host-face ((t (:inherit font-lock-warning-face))))
;; `(erc-default-face ((t (:foreground ,zenburn-fg))))
;; `(erc-direct-msg-face ((t (:inherit erc-default-face))))
;; `(erc-error-face ((t (:inherit font-lock-warning-face))))
;; `(erc-fool-face ((t (:inherit erc-default-face))))
;; `(erc-highlight-face ((t (:inherit hover-highlight))))
;; `(erc-input-face ((t (:foreground ,zenburn-yellow))))
;; `(erc-keyword-face ((t (:foreground ,zenburn-blue :weight bold))))
;; `(erc-nick-default-face ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(erc-my-nick-face ((t (:foreground ,zenburn-red :weight bold))))
;; `(erc-nick-msg-face ((t (:inherit erc-default-face))))
;; `(erc-notice-face ((t (:foreground ,zenburn-green))))
;; `(erc-pal-face ((t (:foreground ,zenburn-orange :weight bold))))
;; `(erc-prompt-face ((t (:foreground ,zenburn-orange :background ,zenburn-bg :weight bold))))
;; `(erc-timestamp-face ((t (:foreground ,zenburn-green+4))))
;; `(erc-underline-face ((t (:underline t))))
;; ;;;;; eros
;; `(eros-result-overlay-face ((t (:background unspecified))))
;; ;;;;; ert
;; `(ert-test-result-expected ((t (:foreground ,zenburn-green+4 :background ,zenburn-bg))))
;; `(ert-test-result-unexpected ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; ;;;;; eshell
;; `(eshell-prompt ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(eshell-ls-archive ((t (:foreground ,zenburn-red-1 :weight bold))))
;; `(eshell-ls-backup ((t (:inherit font-lock-comment-face))))
;; `(eshell-ls-clutter ((t (:inherit font-lock-comment-face))))
;; `(eshell-ls-directory ((t (:foreground ,zenburn-blue+1 :weight bold))))
;; `(eshell-ls-executable ((t (:foreground ,zenburn-red+1 :weight bold))))
;; `(eshell-ls-unreadable ((t (:foreground ,zenburn-fg))))
;; `(eshell-ls-missing ((t (:inherit font-lock-warning-face))))
;; `(eshell-ls-product ((t (:inherit font-lock-doc-face))))
;; `(eshell-ls-special ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(eshell-ls-symlink ((t (:foreground ,zenburn-cyan :weight bold))))
;; ;;;;; flx
;; `(flx-highlight-face ((t (:foreground ,zenburn-green+2 :weight bold))))
;; ;;;;; flycheck
;; `(flycheck-error
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-red-1) :inherit unspecified))
;; (t (:foreground ,zenburn-red-1 :weight bold :underline t))))
;; `(flycheck-warning
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-yellow) :inherit unspecified))
;; (t (:foreground ,zenburn-yellow :weight bold :underline t))))
;; `(flycheck-info
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-cyan) :inherit unspecified))
;; (t (:foreground ,zenburn-cyan :weight bold :underline t))))
;; `(flycheck-fringe-error ((t (:foreground ,zenburn-red-1 :weight bold))))
;; `(flycheck-fringe-warning ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(flycheck-fringe-info ((t (:foreground ,zenburn-cyan :weight bold))))
;; ;;;;; flymake
;; `(flymake-errline
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-red)
;; :inherit unspecified :foreground unspecified :background unspecified))
;; (t (:foreground ,zenburn-red-1 :weight bold :underline t))))
;; `(flymake-warnline
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-orange)
;; :inherit unspecified :foreground unspecified :background unspecified))
;; (t (:foreground ,zenburn-orange :weight bold :underline t))))
;; `(flymake-infoline
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-green)
;; :inherit unspecified :foreground unspecified :background unspecified))
;; (t (:foreground ,zenburn-green-2 :weight bold :underline t))))
;; ;;;;; flyspell
;; `(flyspell-duplicate
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-orange) :inherit unspecified))
;; (t (:foreground ,zenburn-orange :weight bold :underline t))))
;; `(flyspell-incorrect
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-red) :inherit unspecified))
;; (t (:foreground ,zenburn-red-1 :weight bold :underline t))))
;; ;;;;; full-ack
;; `(ack-separator ((t (:foreground ,zenburn-fg))))
;; `(ack-file ((t (:foreground ,zenburn-blue))))
;; `(ack-line ((t (:foreground ,zenburn-yellow))))
;; `(ack-match ((t (:foreground ,zenburn-orange :background ,zenburn-bg-1 :weight bold))))
;; ;;;;; git-annex
;; '(git-annex-dired-annexed-available ((t (:inherit success :weight normal))))
;; '(git-annex-dired-annexed-unavailable ((t (:inherit error :weight normal))))
;; ;;;;; git-commit
;; `(git-commit-comment-action ((,class (:foreground ,zenburn-green+1 :weight bold))))
;; `(git-commit-comment-branch ((,class (:foreground ,zenburn-blue+1 :weight bold)))) ; obsolete
;; `(git-commit-comment-branch-local ((,class (:foreground ,zenburn-blue+1 :weight bold))))
;; `(git-commit-comment-branch-remote ((,class (:foreground ,zenburn-green :weight bold))))
;; `(git-commit-comment-heading ((,class (:foreground ,zenburn-yellow :weight bold))))
;; ;;;;; git-gutter
;; `(git-gutter:added ((t (:foreground ,zenburn-green :weight bold :inverse-video t))))
;; `(git-gutter:deleted ((t (:foreground ,zenburn-red :weight bold :inverse-video t))))
;; `(git-gutter:modified ((t (:foreground ,zenburn-magenta :weight bold :inverse-video t))))
;; `(git-gutter:unchanged ((t (:foreground ,zenburn-fg :weight bold :inverse-video t))))
;; ;;;;; git-gutter-fr
;; `(git-gutter-fr:added ((t (:foreground ,zenburn-green :weight bold))))
;; `(git-gutter-fr:deleted ((t (:foreground ,zenburn-red :weight bold))))
;; `(git-gutter-fr:modified ((t (:foreground ,zenburn-magenta :weight bold))))
;; ;;;;; git-rebase
;; `(git-rebase-hash ((t (:foreground, zenburn-orange))))
;; ;;;;; gnus
;; `(gnus-group-mail-1 ((t (:weight bold :inherit gnus-group-mail-1-empty))))
;; `(gnus-group-mail-1-empty ((t (:inherit gnus-group-news-1-empty))))
;; `(gnus-group-mail-2 ((t (:weight bold :inherit gnus-group-mail-2-empty))))
;; `(gnus-group-mail-2-empty ((t (:inherit gnus-group-news-2-empty))))
;; `(gnus-group-mail-3 ((t (:weight bold :inherit gnus-group-mail-3-empty))))
;; `(gnus-group-mail-3-empty ((t (:inherit gnus-group-news-3-empty))))
;; `(gnus-group-mail-4 ((t (:weight bold :inherit gnus-group-mail-4-empty))))
;; `(gnus-group-mail-4-empty ((t (:inherit gnus-group-news-4-empty))))
;; `(gnus-group-mail-5 ((t (:weight bold :inherit gnus-group-mail-5-empty))))
;; `(gnus-group-mail-5-empty ((t (:inherit gnus-group-news-5-empty))))
;; `(gnus-group-mail-6 ((t (:weight bold :inherit gnus-group-mail-6-empty))))
;; `(gnus-group-mail-6-empty ((t (:inherit gnus-group-news-6-empty))))
;; `(gnus-group-mail-low ((t (:weight bold :inherit gnus-group-mail-low-empty))))
;; `(gnus-group-mail-low-empty ((t (:inherit gnus-group-news-low-empty))))
;; `(gnus-group-news-1 ((t (:weight bold :inherit gnus-group-news-1-empty))))
;; `(gnus-group-news-2 ((t (:weight bold :inherit gnus-group-news-2-empty))))
;; `(gnus-group-news-3 ((t (:weight bold :inherit gnus-group-news-3-empty))))
;; `(gnus-group-news-4 ((t (:weight bold :inherit gnus-group-news-4-empty))))
;; `(gnus-group-news-5 ((t (:weight bold :inherit gnus-group-news-5-empty))))
;; `(gnus-group-news-6 ((t (:weight bold :inherit gnus-group-news-6-empty))))
;; `(gnus-group-news-low ((t (:weight bold :inherit gnus-group-news-low-empty))))
;; `(gnus-header-content ((t (:inherit message-header-other))))
;; `(gnus-header-from ((t (:inherit message-header-to))))
;; `(gnus-header-name ((t (:inherit message-header-name))))
;; `(gnus-header-newsgroups ((t (:inherit message-header-other))))
;; `(gnus-header-subject ((t (:inherit message-header-subject))))
;; `(gnus-server-opened ((t (:foreground ,zenburn-green+2 :weight bold))))
;; `(gnus-server-denied ((t (:foreground ,zenburn-red+1 :weight bold))))
;; `(gnus-server-closed ((t (:foreground ,zenburn-blue :slant italic))))
;; `(gnus-server-offline ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(gnus-server-agent ((t (:foreground ,zenburn-blue :weight bold))))
;; `(gnus-summary-cancelled ((t (:foreground ,zenburn-orange))))
;; `(gnus-summary-high-ancient ((t (:foreground ,zenburn-blue))))
;; `(gnus-summary-high-read ((t (:foreground ,zenburn-green :weight bold))))
;; `(gnus-summary-high-ticked ((t (:foreground ,zenburn-orange :weight bold))))
;; `(gnus-summary-high-unread ((t (:foreground ,zenburn-fg :weight bold))))
;; `(gnus-summary-low-ancient ((t (:foreground ,zenburn-blue))))
;; `(gnus-summary-low-read ((t (:foreground ,zenburn-green))))
;; `(gnus-summary-low-ticked ((t (:foreground ,zenburn-orange :weight bold))))
;; `(gnus-summary-low-unread ((t (:foreground ,zenburn-fg))))
;; `(gnus-summary-normal-ancient ((t (:foreground ,zenburn-blue))))
;; `(gnus-summary-normal-read ((t (:foreground ,zenburn-green))))
;; `(gnus-summary-normal-ticked ((t (:foreground ,zenburn-orange :weight bold))))
;; `(gnus-summary-normal-unread ((t (:foreground ,zenburn-fg))))
;; `(gnus-summary-selected ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(gnus-cite-1 ((t (:foreground ,zenburn-blue))))
;; `(gnus-cite-10 ((t (:foreground ,zenburn-yellow-1))))
;; `(gnus-cite-11 ((t (:foreground ,zenburn-yellow))))
;; `(gnus-cite-2 ((t (:foreground ,zenburn-blue-1))))
;; `(gnus-cite-3 ((t (:foreground ,zenburn-blue-2))))
;; `(gnus-cite-4 ((t (:foreground ,zenburn-green+2))))
;; `(gnus-cite-5 ((t (:foreground ,zenburn-green+1))))
;; `(gnus-cite-6 ((t (:foreground ,zenburn-green))))
;; `(gnus-cite-7 ((t (:foreground ,zenburn-red))))
;; `(gnus-cite-8 ((t (:foreground ,zenburn-red-1))))
;; `(gnus-cite-9 ((t (:foreground ,zenburn-red-2))))
;; `(gnus-group-news-1-empty ((t (:foreground ,zenburn-yellow))))
;; `(gnus-group-news-2-empty ((t (:foreground ,zenburn-green+3))))
;; `(gnus-group-news-3-empty ((t (:foreground ,zenburn-green+1))))
;; `(gnus-group-news-4-empty ((t (:foreground ,zenburn-blue-2))))
;; `(gnus-group-news-5-empty ((t (:foreground ,zenburn-blue-3))))
;; `(gnus-group-news-6-empty ((t (:foreground ,zenburn-bg+2))))
;; `(gnus-group-news-low-empty ((t (:foreground ,zenburn-bg+2))))
;; `(gnus-signature ((t (:foreground ,zenburn-yellow))))
;; `(gnus-x ((t (:background ,zenburn-fg :foreground ,zenburn-bg))))
;; `(mm-uu-extract ((t (:background ,zenburn-bg-05 :foreground ,zenburn-green+1))))
;; ;;;;; go-guru
;; `(go-guru-hl-identifier-face ((t (:foreground ,zenburn-bg-1 :background ,zenburn-green+1))))
;; ;;;;; guide-key
;; `(guide-key/highlight-command-face ((t (:foreground ,zenburn-blue))))
;; `(guide-key/key-face ((t (:foreground ,zenburn-green))))
;; `(guide-key/prefix-command-face ((t (:foreground ,zenburn-green+1))))
;; ;;;;; hackernews
;; '(hackernews-comment-count ((t (:inherit link-visited :underline nil))))
;; '(hackernews-link ((t (:inherit link :underline nil))))
;; ;;;;; helm
;; `(helm-header
;; ((t (:foreground ,zenburn-green
;; :background ,zenburn-bg
;; :underline nil
;; :box nil
;; :extend t))))
;; `(helm-source-header
;; ((t (:foreground ,zenburn-yellow
;; :background ,zenburn-bg-1
;; :underline nil
;; :weight bold
;; :box (:line-width -1 :style released-button)
;; :extend t))))
;; `(helm-selection ((t (:background ,zenburn-bg+1 :underline nil))))
;; `(helm-selection-line ((t (:background ,zenburn-bg+1))))
;; `(helm-visible-mark ((t (:foreground ,zenburn-bg :background ,zenburn-yellow-2))))
;; `(helm-candidate-number ((t (:foreground ,zenburn-green+4 :background ,zenburn-bg-1))))
;; `(helm-separator ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; `(helm-time-zone-current ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; `(helm-time-zone-home ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; `(helm-bookmark-addressbook ((t (:foreground ,zenburn-orange :background ,zenburn-bg))))
;; `(helm-bookmark-directory ((t (:foreground nil :background nil :inherit helm-ff-directory))))
;; `(helm-bookmark-file ((t (:foreground nil :background nil :inherit helm-ff-file))))
;; `(helm-bookmark-gnus ((t (:foreground ,zenburn-magenta :background ,zenburn-bg))))
;; `(helm-bookmark-info ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; `(helm-bookmark-man ((t (:foreground ,zenburn-yellow :background ,zenburn-bg))))
;; `(helm-bookmark-w3m ((t (:foreground ,zenburn-magenta :background ,zenburn-bg))))
;; `(helm-buffer-not-saved ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; `(helm-buffer-process ((t (:foreground ,zenburn-cyan :background ,zenburn-bg))))
;; `(helm-buffer-saved-out ((t (:foreground ,zenburn-fg :background ,zenburn-bg))))
;; `(helm-buffer-size ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg))))
;; `(helm-ff-directory ((t (:foreground ,zenburn-cyan :background ,zenburn-bg :weight bold))))
;; `(helm-ff-file ((t (:foreground ,zenburn-fg :background ,zenburn-bg :weight normal))))
;; `(helm-ff-executable ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg :weight normal))))
;; `(helm-ff-invalid-symlink ((t (:foreground ,zenburn-red :background ,zenburn-bg :weight bold))))
;; `(helm-ff-symlink ((t (:foreground ,zenburn-yellow :background ,zenburn-bg :weight bold))))
;; `(helm-ff-prefix ((t (:foreground ,zenburn-bg :background ,zenburn-yellow :weight normal))))
;; `(helm-grep-cmd-line ((t (:foreground ,zenburn-cyan :background ,zenburn-bg))))
;; `(helm-grep-file ((t (:foreground ,zenburn-fg :background ,zenburn-bg))))
;; `(helm-grep-finish ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; `(helm-grep-lineno ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg))))
;; `(helm-grep-match ((t (:foreground nil :background nil :inherit helm-match))))
;; `(helm-grep-running ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; `(helm-match ((t (:foreground ,zenburn-orange :background ,zenburn-bg-1 :weight bold))))
;; `(helm-moccur-buffer ((t (:foreground ,zenburn-cyan :background ,zenburn-bg))))
;; `(helm-mu-contacts-address-face ((t (:foreground ,zenburn-fg-1 :background ,zenburn-bg))))
;; `(helm-mu-contacts-name-face ((t (:foreground ,zenburn-fg :background ,zenburn-bg))))
;; ;;;;; helm-lxc
;; `(helm-lxc-face-frozen ((t (:foreground ,zenburn-blue :background ,zenburn-bg))))
;; `(helm-lxc-face-running ((t (:foreground ,zenburn-green :background ,zenburn-bg))))
;; `(helm-lxc-face-stopped ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; ;;;;; helm-swoop
;; `(helm-swoop-target-line-face ((t (:foreground ,zenburn-fg :background ,zenburn-bg+1))))
;; `(helm-swoop-target-word-face ((t (:foreground ,zenburn-yellow :background ,zenburn-bg+2 :weight bold))))
;; ;;;;; highlight-numbers
;; `(highlight-numbers-number ((t (:foreground ,zenburn-blue))))
;; ;;;;; highlight-symbol
;; `(highlight-symbol-face ((t (:background ,zenburn-bg+2))))
;; ;;;;; highlight-thing
;; `(highlight-thing ((t (:background ,zenburn-bg+2))))
;; ;;;;; hl-line-mode
;; `(hl-line-face ((,class (:background ,zenburn-bg-05))
;; (t :weight bold)))
;; `(hl-line ((,class (:background ,zenburn-bg-05 :extend t)) ; old emacsen
;; (t :weight bold)))
;; ;;;;; hl-sexp
;; `(hl-sexp-face ((,class (:background ,zenburn-bg+1))
;; (t :weight bold)))
;; ;;;;; hydra
;; `(hydra-face-red ((t (:foreground ,zenburn-red-1 :background ,zenburn-bg))))
;; `(hydra-face-amaranth ((t (:foreground ,zenburn-red-3 :background ,zenburn-bg))))
;; `(hydra-face-blue ((t (:foreground ,zenburn-blue :background ,zenburn-bg))))
;; `(hydra-face-pink ((t (:foreground ,zenburn-magenta :background ,zenburn-bg))))
;; `(hydra-face-teal ((t (:foreground ,zenburn-cyan :background ,zenburn-bg))))
;; ;;;;; info+
;; `(info-command-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange))))
;; `(info-constant-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-magenta))))
;; `(info-double-quoted-name ((t (:inherit font-lock-comment-face))))
;; `(info-file ((t (:background ,zenburn-bg-1 :foreground ,zenburn-yellow))))
;; `(info-function-ref-item ((t (:background ,zenburn-bg-1 :inherit font-lock-function-name-face))))
;; `(info-macro-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-yellow))))
;; `(info-menu ((t (:foreground ,zenburn-yellow))))
;; `(info-quoted-name ((t (:inherit font-lock-constant-face))))
;; `(info-reference-item ((t (:background ,zenburn-bg-1))))
;; `(info-single-quote ((t (:inherit font-lock-keyword-face))))
;; `(info-special-form-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-yellow))))
;; `(info-string ((t (:inherit font-lock-string-face))))
;; `(info-syntax-class-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-blue+1))))
;; `(info-user-option-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-red))))
;; `(info-variable-ref-item ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange))))
;; ;;;;; irfc
;; `(irfc-head-name-face ((t (:foreground ,zenburn-red :weight bold))))
;; `(irfc-head-number-face ((t (:foreground ,zenburn-red :weight bold))))
;; `(irfc-reference-face ((t (:foreground ,zenburn-blue-1 :weight bold))))
;; `(irfc-requirement-keyword-face ((t (:inherit font-lock-keyword-face))))
;; `(irfc-rfc-link-face ((t (:inherit link))))
;; `(irfc-rfc-number-face ((t (:foreground ,zenburn-cyan :weight bold))))
;; `(irfc-std-number-face ((t (:foreground ,zenburn-green+4 :weight bold))))
;; `(irfc-table-item-face ((t (:foreground ,zenburn-green+3))))
;; `(irfc-title-face ((t (:foreground ,zenburn-yellow
;; :underline t :weight bold))))
;; ;;;;; ivy
;; `(ivy-confirm-face ((t (:foreground ,zenburn-green :background ,zenburn-bg))))
;; `(ivy-current-match ((t (:foreground ,zenburn-yellow :weight bold :underline t))))
;; `(ivy-cursor ((t (:foreground ,zenburn-bg :background ,zenburn-fg))))
;; `(ivy-match-required-face ((t (:foreground ,zenburn-red :background ,zenburn-bg))))
;; `(ivy-minibuffer-match-face-1 ((t (:background ,zenburn-bg+1))))
;; `(ivy-minibuffer-match-face-2 ((t (:background ,zenburn-green-2))))
;; `(ivy-minibuffer-match-face-3 ((t (:background ,zenburn-green))))
;; `(ivy-minibuffer-match-face-4 ((t (:background ,zenburn-green+1))))
;; `(ivy-remote ((t (:foreground ,zenburn-blue :background ,zenburn-bg))))
;; `(ivy-subdir ((t (:foreground ,zenburn-yellow :background ,zenburn-bg))))
;; ;;;;; ido-mode
;; `(ido-first-match ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(ido-only-match ((t (:foreground ,zenburn-orange :weight bold))))
;; `(ido-subdir ((t (:foreground ,zenburn-yellow))))
;; `(ido-indicator ((t (:foreground ,zenburn-yellow :background ,zenburn-red-4))))
;; ;;;;; iedit-mode
;; `(iedit-occurrence ((t (:background ,zenburn-bg+2 :weight bold))))
;; ;;;;; jabber-mode
;; `(jabber-roster-user-away ((t (:foreground ,zenburn-green+2))))
;; `(jabber-roster-user-online ((t (:foreground ,zenburn-blue-1))))
;; `(jabber-roster-user-dnd ((t (:foreground ,zenburn-red+1))))
;; `(jabber-roster-user-xa ((t (:foreground ,zenburn-magenta))))
;; `(jabber-roster-user-chatty ((t (:foreground ,zenburn-orange))))
;; `(jabber-roster-user-error ((t (:foreground ,zenburn-red+1))))
;; `(jabber-rare-time-face ((t (:foreground ,zenburn-green+1))))
;; `(jabber-chat-prompt-local ((t (:foreground ,zenburn-blue-1))))
;; `(jabber-chat-prompt-foreign ((t (:foreground ,zenburn-red+1))))
;; `(jabber-chat-prompt-system ((t (:foreground ,zenburn-green+3))))
;; `(jabber-activity-face((t (:foreground ,zenburn-red+1))))
;; `(jabber-activity-personal-face ((t (:foreground ,zenburn-blue+1))))
;; `(jabber-title-small ((t (:height 1.1 :weight bold))))
;; `(jabber-title-medium ((t (:height 1.2 :weight bold))))
;; `(jabber-title-large ((t (:height 1.3 :weight bold))))
;; ;;;;; js2-mode
;; `(js2-warning ((t (:underline ,zenburn-orange))))
;; `(js2-error ((t (:foreground ,zenburn-red :weight bold))))
;; `(js2-jsdoc-tag ((t (:foreground ,zenburn-green-2))))
;; `(js2-jsdoc-type ((t (:foreground ,zenburn-green+2))))
;; `(js2-jsdoc-value ((t (:foreground ,zenburn-green+3))))
;; `(js2-function-param ((t (:foreground, zenburn-orange))))
;; `(js2-external-variable ((t (:foreground ,zenburn-orange))))
;; ;;;;; additional js2 mode attributes for better syntax highlighting
;; `(js2-instance-member ((t (:foreground ,zenburn-green-2))))
;; `(js2-jsdoc-html-tag-delimiter ((t (:foreground ,zenburn-orange))))
;; `(js2-jsdoc-html-tag-name ((t (:foreground ,zenburn-red-1))))
;; `(js2-object-property ((t (:foreground ,zenburn-blue+1))))
;; `(js2-magic-paren ((t (:foreground ,zenburn-blue-5))))
;; `(js2-private-function-call ((t (:foreground ,zenburn-cyan))))
;; `(js2-function-call ((t (:foreground ,zenburn-cyan))))
;; `(js2-private-member ((t (:foreground ,zenburn-blue-1))))
;; `(js2-keywords ((t (:foreground ,zenburn-magenta))))
;; ;;;;; ledger-mode
;; `(ledger-font-payee-uncleared-face ((t (:foreground ,zenburn-red-1 :weight bold))))
;; `(ledger-font-payee-cleared-face ((t (:foreground ,zenburn-fg :weight normal))))
;; `(ledger-font-payee-pending-face ((t (:foreground ,zenburn-red :weight normal))))
;; `(ledger-font-xact-highlight-face ((t (:background ,zenburn-bg+1))))
;; `(ledger-font-auto-xact-face ((t (:foreground ,zenburn-yellow-1 :weight normal))))
;; `(ledger-font-periodic-xact-face ((t (:foreground ,zenburn-green :weight normal))))
;; `(ledger-font-pending-face ((t (:foreground ,zenburn-orange weight: normal))))
;; `(ledger-font-other-face ((t (:foreground ,zenburn-fg))))
;; `(ledger-font-posting-date-face ((t (:foreground ,zenburn-orange :weight normal))))
;; `(ledger-font-posting-account-face ((t (:foreground ,zenburn-blue-1))))
;; `(ledger-font-posting-account-cleared-face ((t (:foreground ,zenburn-fg))))
;; `(ledger-font-posting-account-pending-face ((t (:foreground ,zenburn-orange))))
;; `(ledger-font-posting-amount-face ((t (:foreground ,zenburn-orange))))
;; `(ledger-occur-narrowed-face ((t (:foreground ,zenburn-fg-1 :invisible t))))
;; `(ledger-occur-xact-face ((t (:background ,zenburn-bg+1))))
;; `(ledger-font-comment-face ((t (:foreground ,zenburn-green))))
;; `(ledger-font-reconciler-uncleared-face ((t (:foreground ,zenburn-red-1 :weight bold))))
;; `(ledger-font-reconciler-cleared-face ((t (:foreground ,zenburn-fg :weight normal))))
;; `(ledger-font-reconciler-pending-face ((t (:foreground ,zenburn-orange :weight normal))))
;; `(ledger-font-report-clickable-face ((t (:foreground ,zenburn-orange :weight normal))))
;; ;;;;; linum-mode
;; `(linum ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; ;;;;; lispy
;; `(lispy-command-name-face ((t (:background ,zenburn-bg-05 :inherit font-lock-function-name-face))))
;; `(lispy-cursor-face ((t (:foreground ,zenburn-bg :background ,zenburn-fg))))
;; `(lispy-face-hint ((t (:inherit highlight :foreground ,zenburn-yellow))))
;; ;;;;; ruler-mode
;; `(ruler-mode-column-number ((t (:inherit 'ruler-mode-default :foreground ,zenburn-fg))))
;; `(ruler-mode-fill-column ((t (:inherit 'ruler-mode-default :foreground ,zenburn-yellow))))
;; `(ruler-mode-goal-column ((t (:inherit 'ruler-mode-fill-column))))
;; `(ruler-mode-comment-column ((t (:inherit 'ruler-mode-fill-column))))
;; `(ruler-mode-tab-stop ((t (:inherit 'ruler-mode-fill-column))))
;; `(ruler-mode-current-column ((t (:foreground ,zenburn-yellow :box t))))
;; `(ruler-mode-default ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; ;;;;; lui
;; `(lui-time-stamp-face ((t (:foreground ,zenburn-blue-1))))
;; `(lui-hilight-face ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg))))
;; `(lui-button-face ((t (:inherit hover-highlight))))
;; ;;;;; macrostep
;; `(macrostep-gensym-1
;; ((t (:foreground ,zenburn-green+2 :background ,zenburn-bg-1))))
;; `(macrostep-gensym-2
;; ((t (:foreground ,zenburn-red+1 :background ,zenburn-bg-1))))
;; `(macrostep-gensym-3
;; ((t (:foreground ,zenburn-blue+1 :background ,zenburn-bg-1))))
;; `(macrostep-gensym-4
;; ((t (:foreground ,zenburn-magenta :background ,zenburn-bg-1))))
;; `(macrostep-gensym-5
;; ((t (:foreground ,zenburn-yellow :background ,zenburn-bg-1))))
;; `(macrostep-expansion-highlight-face
;; ((t (:inherit highlight))))
;; `(macrostep-macro-face
;; ((t (:underline t))))
;; ;;;;; magit
;; ;;;;;; headings and diffs
;; ;; Please read (info "(magit)Theming Faces") before changing this.
;; `(magit-section-highlight ((t (:background ,zenburn-bg+05))))
;; `(magit-section-heading ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(magit-section-heading-selection ((t (:foreground ,zenburn-orange :weight bold))))
;; `(magit-diff-file-heading ((t (:weight bold))))
;; `(magit-diff-file-heading-highlight ((t (:background ,zenburn-bg+05 :weight bold))))
;; `(magit-diff-file-heading-selection ((t (:background ,zenburn-bg+05 :weight bold
;; :foreground ,zenburn-orange))))
;; `(magit-diff-added ((t (:background ,zenburn-green-2))))
;; `(magit-diff-added-highlight ((t (:background ,zenburn-green))))
;; `(magit-diff-removed ((t (:background ,zenburn-red-4))))
;; `(magit-diff-removed-highlight ((t (:background ,zenburn-red-3))))
;; `(magit-diff-hunk-heading ((t (:background ,zenburn-bg+1))))
;; `(magit-diff-hunk-heading-highlight ((t (:background ,zenburn-bg+2))))
;; `(magit-diff-hunk-heading-selection ((t (:background ,zenburn-bg+2
;; :foreground ,zenburn-orange))))
;; `(magit-diff-lines-heading ((t (:background ,zenburn-orange
;; :foreground ,zenburn-bg+2))))
;; `(magit-diff-context-highlight ((t (:background ,zenburn-bg+05
;; :foreground "grey70"))))
;; `(magit-diffstat-added ((t (:foreground ,zenburn-green+4))))
;; `(magit-diffstat-removed ((t (:foreground ,zenburn-red))))
;; ;;;;;; popup
;; `(magit-popup-heading ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(magit-popup-key ((t (:foreground ,zenburn-green-2 :weight bold))))
;; `(magit-popup-argument ((t (:foreground ,zenburn-green :weight bold))))
;; `(magit-popup-disabled-argument ((t (:foreground ,zenburn-fg-1 :weight normal))))
;; `(magit-popup-option-value ((t (:foreground ,zenburn-blue-2 :weight bold))))
;; ;;;;;; process
;; `(magit-process-ok ((t (:foreground ,zenburn-green :weight bold))))
;; `(magit-process-ng ((t (:foreground ,zenburn-red :weight bold))))
;; ;;;;;; log
;; `(magit-log-author ((t (:foreground ,zenburn-orange))))
;; `(magit-log-date ((t (:foreground ,zenburn-fg-1))))
;; `(magit-log-graph ((t (:foreground ,zenburn-fg+1))))
;; ;;;;;; sequence
;; `(magit-sequence-pick ((t (:foreground ,zenburn-yellow-2))))
;; `(magit-sequence-stop ((t (:foreground ,zenburn-green))))
;; `(magit-sequence-part ((t (:foreground ,zenburn-yellow))))
;; `(magit-sequence-head ((t (:foreground ,zenburn-blue))))
;; `(magit-sequence-drop ((t (:foreground ,zenburn-red))))
;; `(magit-sequence-done ((t (:foreground ,zenburn-fg-1))))
;; `(magit-sequence-onto ((t (:foreground ,zenburn-fg-1))))
;; ;;;;;; bisect
;; `(magit-bisect-good ((t (:foreground ,zenburn-green))))
;; `(magit-bisect-skip ((t (:foreground ,zenburn-yellow))))
;; `(magit-bisect-bad ((t (:foreground ,zenburn-red))))
;; ;;;;;; blame
;; `(magit-blame-heading ((t (:background ,zenburn-bg-1 :foreground ,zenburn-blue-2))))
;; `(magit-blame-hash ((t (:background ,zenburn-bg-1 :foreground ,zenburn-blue-2))))
;; `(magit-blame-name ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange))))
;; `(magit-blame-date ((t (:background ,zenburn-bg-1 :foreground ,zenburn-orange))))
;; `(magit-blame-summary ((t (:background ,zenburn-bg-1 :foreground ,zenburn-blue-2
;; :weight bold))))
;; ;;;;;; references etc
;; `(magit-dimmed ((t (:foreground ,zenburn-bg+3))))
;; `(magit-hash ((t (:foreground ,zenburn-bg+3))))
;; `(magit-tag ((t (:foreground ,zenburn-orange :weight bold))))
;; `(magit-branch-remote ((t (:foreground ,zenburn-green :weight bold))))
;; `(magit-branch-local ((t (:foreground ,zenburn-blue :weight bold))))
;; `(magit-branch-current ((t (:foreground ,zenburn-blue :weight bold :box t))))
;; `(magit-head ((t (:foreground ,zenburn-blue :weight bold))))
;; `(magit-refname ((t (:background ,zenburn-bg+2 :foreground ,zenburn-fg :weight bold))))
;; `(magit-refname-stash ((t (:background ,zenburn-bg+2 :foreground ,zenburn-fg :weight bold))))
;; `(magit-refname-wip ((t (:background ,zenburn-bg+2 :foreground ,zenburn-fg :weight bold))))
;; `(magit-signature-good ((t (:foreground ,zenburn-green))))
;; `(magit-signature-bad ((t (:foreground ,zenburn-red))))
;; `(magit-signature-untrusted ((t (:foreground ,zenburn-yellow))))
;; `(magit-signature-expired ((t (:foreground ,zenburn-orange))))
;; `(magit-signature-revoked ((t (:foreground ,zenburn-magenta))))
;; '(magit-signature-error ((t (:inherit magit-signature-bad))))
;; `(magit-cherry-unmatched ((t (:foreground ,zenburn-cyan))))
;; `(magit-cherry-equivalent ((t (:foreground ,zenburn-magenta))))
;; `(magit-reflog-commit ((t (:foreground ,zenburn-green))))
;; `(magit-reflog-amend ((t (:foreground ,zenburn-magenta))))
;; `(magit-reflog-merge ((t (:foreground ,zenburn-green))))
;; `(magit-reflog-checkout ((t (:foreground ,zenburn-blue))))
;; `(magit-reflog-reset ((t (:foreground ,zenburn-red))))
;; `(magit-reflog-rebase ((t (:foreground ,zenburn-magenta))))
;; `(magit-reflog-cherry-pick ((t (:foreground ,zenburn-green))))
;; `(magit-reflog-remote ((t (:foreground ,zenburn-cyan))))
;; `(magit-reflog-other ((t (:foreground ,zenburn-cyan))))
;; ;;;;; markup-faces
;; `(markup-anchor-face ((t (:foreground ,zenburn-blue+1))))
;; `(markup-code-face ((t (:inherit font-lock-constant-face))))
;; `(markup-command-face ((t (:foreground ,zenburn-yellow))))
;; `(markup-emphasis-face ((t (:inherit bold))))
;; `(markup-internal-reference-face ((t (:foreground ,zenburn-yellow-2 :underline t))))
;; `(markup-list-face ((t (:foreground ,zenburn-fg+1))))
;; `(markup-meta-face ((t (:foreground ,zenburn-yellow))))
;; `(markup-meta-hide-face ((t (:foreground ,zenburn-yellow))))
;; `(markup-secondary-text-face ((t (:foreground ,zenburn-yellow-1))))
;; `(markup-title-0-face ((t (:inherit font-lock-function-name-face :weight bold))))
;; `(markup-title-1-face ((t (:inherit font-lock-function-name-face :weight bold))))
;; `(markup-title-2-face ((t (:inherit font-lock-function-name-face :weight bold))))
;; `(markup-title-3-face ((t (:inherit font-lock-function-name-face :weight bold))))
;; `(markup-title-4-face ((t (:inherit font-lock-function-name-face :weight bold))))
;; `(markup-typewriter-face ((t (:inherit font-lock-constant-face))))
;; `(markup-verbatim-face ((t (:inherit font-lock-constant-face))))
;; `(markup-value-face ((t (:foreground ,zenburn-yellow))))
;; ;;;;; message-mode
;; `(message-cited-text ((t (:inherit font-lock-comment-face))))
;; `(message-header-name ((t (:foreground ,zenburn-green+1))))
;; `(message-header-other ((t (:foreground ,zenburn-green))))
;; `(message-header-to ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(message-header-cc ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(message-header-newsgroups ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(message-header-subject ((t (:foreground ,zenburn-orange :weight bold))))
;; `(message-header-xheader ((t (:foreground ,zenburn-green))))
;; `(message-mml ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(message-separator ((t (:inherit font-lock-comment-face))))
;; ;;;;; mew
;; `(mew-face-header-subject ((t (:foreground ,zenburn-orange))))
;; `(mew-face-header-from ((t (:foreground ,zenburn-yellow))))
;; `(mew-face-header-date ((t (:foreground ,zenburn-green))))
;; `(mew-face-header-to ((t (:foreground ,zenburn-red))))
;; `(mew-face-header-key ((t (:foreground ,zenburn-green))))
;; `(mew-face-header-private ((t (:foreground ,zenburn-green))))
;; `(mew-face-header-important ((t (:foreground ,zenburn-blue))))
;; `(mew-face-header-marginal ((t (:foreground ,zenburn-fg :weight bold))))
;; `(mew-face-header-warning ((t (:foreground ,zenburn-red))))
;; `(mew-face-header-xmew ((t (:foreground ,zenburn-green))))
;; `(mew-face-header-xmew-bad ((t (:foreground ,zenburn-red))))
;; `(mew-face-body-url ((t (:foreground ,zenburn-orange))))
;; `(mew-face-body-comment ((t (:foreground ,zenburn-fg :slant italic))))
;; `(mew-face-body-cite1 ((t (:foreground ,zenburn-green))))
;; `(mew-face-body-cite2 ((t (:foreground ,zenburn-blue))))
;; `(mew-face-body-cite3 ((t (:foreground ,zenburn-orange))))
;; `(mew-face-body-cite4 ((t (:foreground ,zenburn-yellow))))
;; `(mew-face-body-cite5 ((t (:foreground ,zenburn-red))))
;; `(mew-face-mark-review ((t (:foreground ,zenburn-blue))))
;; `(mew-face-mark-escape ((t (:foreground ,zenburn-green))))
;; `(mew-face-mark-delete ((t (:foreground ,zenburn-red))))
;; `(mew-face-mark-unlink ((t (:foreground ,zenburn-yellow))))
;; `(mew-face-mark-refile ((t (:foreground ,zenburn-green))))
;; `(mew-face-mark-unread ((t (:foreground ,zenburn-red-2))))
;; `(mew-face-eof-message ((t (:foreground ,zenburn-green))))
;; `(mew-face-eof-part ((t (:foreground ,zenburn-yellow))))
;; ;;;;; mic-paren
;; `(paren-face-match ((t (:foreground ,zenburn-cyan :background ,zenburn-bg :weight bold))))
;; `(paren-face-mismatch ((t (:foreground ,zenburn-bg :background ,zenburn-magenta :weight bold))))
;; `(paren-face-no-match ((t (:foreground ,zenburn-bg :background ,zenburn-red :weight bold))))
;; ;;;;; mingus
;; `(mingus-directory-face ((t (:foreground ,zenburn-blue))))
;; `(mingus-pausing-face ((t (:foreground ,zenburn-magenta))))
;; `(mingus-playing-face ((t (:foreground ,zenburn-cyan))))
;; `(mingus-playlist-face ((t (:foreground ,zenburn-cyan ))))
;; `(mingus-mark-face ((t (:bold t :foreground ,zenburn-magenta))))
;; `(mingus-song-file-face ((t (:foreground ,zenburn-yellow))))
;; `(mingus-artist-face ((t (:foreground ,zenburn-cyan))))
;; `(mingus-album-face ((t (:underline t :foreground ,zenburn-red+1))))
;; `(mingus-album-stale-face ((t (:foreground ,zenburn-red+1))))
;; `(mingus-stopped-face ((t (:foreground ,zenburn-red))))
;; ;;;;; nav
;; `(nav-face-heading ((t (:foreground ,zenburn-yellow))))
;; `(nav-face-button-num ((t (:foreground ,zenburn-cyan))))
;; `(nav-face-dir ((t (:foreground ,zenburn-green))))
;; `(nav-face-hdir ((t (:foreground ,zenburn-red))))
;; `(nav-face-file ((t (:foreground ,zenburn-fg))))
;; `(nav-face-hfile ((t (:foreground ,zenburn-red-4))))
;; ;;;;; merlin
;; `(merlin-type-face ((t (:inherit highlight))))
;; `(merlin-compilation-warning-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-orange)))
;; (t
;; (:underline ,zenburn-orange))))
;; `(merlin-compilation-error-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-red)))
;; (t
;; (:underline ,zenburn-red))))
;; ;;;;; mu4e
;; `(mu4e-cited-1-face ((t (:foreground ,zenburn-blue :slant italic))))
;; `(mu4e-cited-2-face ((t (:foreground ,zenburn-green+2 :slant italic))))
;; `(mu4e-cited-3-face ((t (:foreground ,zenburn-blue-2 :slant italic))))
;; `(mu4e-cited-4-face ((t (:foreground ,zenburn-green :slant italic))))
;; `(mu4e-cited-5-face ((t (:foreground ,zenburn-blue-4 :slant italic))))
;; `(mu4e-cited-6-face ((t (:foreground ,zenburn-green-2 :slant italic))))
;; `(mu4e-cited-7-face ((t (:foreground ,zenburn-blue :slant italic))))
;; `(mu4e-replied-face ((t (:foreground ,zenburn-bg+3))))
;; `(mu4e-trashed-face ((t (:foreground ,zenburn-bg+3 :strike-through t))))
;; ;;;;; mumamo
;; `(mumamo-background-chunk-major ((t (:background nil))))
;; `(mumamo-background-chunk-submode1 ((t (:background ,zenburn-bg-1))))
;; `(mumamo-background-chunk-submode2 ((t (:background ,zenburn-bg+2))))
;; `(mumamo-background-chunk-submode3 ((t (:background ,zenburn-bg+3))))
;; `(mumamo-background-chunk-submode4 ((t (:background ,zenburn-bg+1))))
;; ;;;;; neotree
;; `(neo-banner-face ((t (:foreground ,zenburn-blue+1 :weight bold))))
;; `(neo-header-face ((t (:foreground ,zenburn-fg))))
;; `(neo-root-dir-face ((t (:foreground ,zenburn-blue+1 :weight bold))))
;; `(neo-dir-link-face ((t (:foreground ,zenburn-blue))))
;; `(neo-file-link-face ((t (:foreground ,zenburn-fg))))
;; `(neo-expand-btn-face ((t (:foreground ,zenburn-blue))))
;; `(neo-vc-default-face ((t (:foreground ,zenburn-fg+1))))
;; `(neo-vc-user-face ((t (:foreground ,zenburn-red :slant italic))))
;; `(neo-vc-up-to-date-face ((t (:foreground ,zenburn-fg))))
;; `(neo-vc-edited-face ((t (:foreground ,zenburn-magenta))))
;; `(neo-vc-needs-merge-face ((t (:foreground ,zenburn-red+1))))
;; `(neo-vc-unlocked-changes-face ((t (:foreground ,zenburn-red :background ,zenburn-blue-5))))
;; `(neo-vc-added-face ((t (:foreground ,zenburn-green+1))))
;; `(neo-vc-conflict-face ((t (:foreground ,zenburn-red+1))))
;; `(neo-vc-missing-face ((t (:foreground ,zenburn-red+1))))
;; `(neo-vc-ignored-face ((t (:foreground ,zenburn-fg-1))))
;; ;;;;; org-mode
;; `(org-agenda-date-today
;; ((t (:foreground ,zenburn-fg+1 :slant italic :weight bold))) t)
;; `(org-agenda-structure
;; ((t (:inherit font-lock-comment-face))))
;; `(org-archived ((t (:foreground ,zenburn-fg :weight bold))))
;; `(org-block ((t (:background ,zenburn-bg+05 :extend t))))
;; `(org-checkbox ((t (:background ,zenburn-bg+2 :foreground ,zenburn-fg+1
;; :box (:line-width 1 :style released-button)))))
;; `(org-date ((t (:foreground ,zenburn-blue :underline t))))
;; `(org-deadline-announce ((t (:foreground ,zenburn-red-1))))
;; `(org-done ((t (:weight bold :weight bold :foreground ,zenburn-green+3))))
;; `(org-formula ((t (:foreground ,zenburn-yellow-2))))
;; `(org-headline-done ((t (:foreground ,zenburn-green+3))))
;; `(org-hide ((t (:foreground ,zenburn-bg))))
;; `(org-level-1 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-orange
;; ,@(when zenburn-scale-org-headlines
;; (list :height zenburn-height-plus-4))))))
;; `(org-level-2 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-green+4
;; ,@(when zenburn-scale-org-headlines
;; (list :height zenburn-height-plus-3))))))
;; `(org-level-3 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-blue-1
;; ,@(when zenburn-scale-org-headlines
;; (list :height zenburn-height-plus-2))))))
;; `(org-level-4 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-yellow-2
;; ,@(when zenburn-scale-org-headlines
;; (list :height zenburn-height-plus-1))))))
;; `(org-level-5 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-cyan))))
;; `(org-level-6 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-green+2))))
;; `(org-level-7 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-red-4))))
;; `(org-level-8 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-blue-4))))
;; `(org-link ((t (:foreground ,zenburn-yellow-2 :underline t))))
;; `(org-quote ((t (:background ,zenburn-bg+05 :extend t))))
;; `(org-scheduled ((t (:foreground ,zenburn-green+4))))
;; `(org-scheduled-previously ((t (:foreground ,zenburn-red))))
;; `(org-scheduled-today ((t (:foreground ,zenburn-blue+1))))
;; `(org-sexp-date ((t (:foreground ,zenburn-blue+1 :underline t))))
;; `(org-special-keyword ((t (:inherit font-lock-comment-face))))
;; `(org-table ((t (:foreground ,zenburn-green+2))))
;; `(org-tag ((t (:weight bold :weight bold))))
;; `(org-time-grid ((t (:foreground ,zenburn-orange))))
;; `(org-todo ((t (:weight bold :foreground ,zenburn-red :weight bold))))
;; `(org-upcoming-deadline ((t (:inherit font-lock-keyword-face))))
;; `(org-warning ((t (:weight bold :foreground ,zenburn-red :weight bold :underline nil))))
;; `(org-column ((t (:background ,zenburn-bg-1))))
;; `(org-column-title ((t (:background ,zenburn-bg-1 :underline t :weight bold))))
;; `(org-mode-line-clock ((t (:foreground ,zenburn-fg :background ,zenburn-bg-1))))
;; `(org-mode-line-clock-overrun ((t (:foreground ,zenburn-bg :background ,zenburn-red-1))))
;; `(org-ellipsis ((t (:foreground ,zenburn-yellow-1 :underline t))))
;; `(org-footnote ((t (:foreground ,zenburn-cyan :underline t))))
;; `(org-document-title ((t (:inherit ,z-variable-pitch :foreground ,zenburn-blue
;; :weight bold
;; ,@(when zenburn-scale-org-headlines
;; (list :height zenburn-height-plus-4))))))
;; `(org-document-info ((t (:foreground ,zenburn-blue))))
;; `(org-habit-ready-face ((t :background ,zenburn-green)))
;; `(org-habit-alert-face ((t :background ,zenburn-yellow-1 :foreground ,zenburn-bg)))
;; `(org-habit-clear-face ((t :background ,zenburn-blue-3)))
;; `(org-habit-overdue-face ((t :background ,zenburn-red-3)))
;; `(org-habit-clear-future-face ((t :background ,zenburn-blue-4)))
;; `(org-habit-ready-future-face ((t :background ,zenburn-green-2)))
;; `(org-habit-alert-future-face ((t :background ,zenburn-yellow-2 :foreground ,zenburn-bg)))
;; `(org-habit-overdue-future-face ((t :background ,zenburn-red-4)))
;; ;;;;; org-ref
;; `(org-ref-ref-face ((t :underline t)))
;; `(org-ref-label-face ((t :underline t)))
;; `(org-ref-cite-face ((t :underline t)))
;; `(org-ref-glossary-face ((t :underline t)))
;; `(org-ref-acronym-face ((t :underline t)))
;; ;;;;; outline
;; `(outline-1 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-orange
;; ,@(when zenburn-scale-outline-headlines
;; (list :height zenburn-height-plus-4))))))
;; `(outline-2 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-green+4
;; ,@(when zenburn-scale-outline-headlines
;; (list :height zenburn-height-plus-3))))))
;; `(outline-3 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-blue-1
;; ,@(when zenburn-scale-outline-headlines
;; (list :height zenburn-height-plus-2))))))
;; `(outline-4 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-yellow-2
;; ,@(when zenburn-scale-outline-headlines
;; (list :height zenburn-height-plus-1))))))
;; `(outline-5 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-cyan))))
;; `(outline-6 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-green+2))))
;; `(outline-7 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-red-4))))
;; `(outline-8 ((t (:inherit ,z-variable-pitch :foreground ,zenburn-blue-4))))
;; ;;;;; p4
;; `(p4-depot-added-face ((t :inherit diff-added)))
;; `(p4-depot-branch-op-face ((t :inherit diff-changed)))
;; `(p4-depot-deleted-face ((t :inherit diff-removed)))
;; `(p4-depot-unmapped-face ((t :inherit diff-changed)))
;; `(p4-diff-change-face ((t :inherit diff-changed)))
;; `(p4-diff-del-face ((t :inherit diff-removed)))
;; `(p4-diff-file-face ((t :inherit diff-file-header)))
;; `(p4-diff-head-face ((t :inherit diff-header)))
;; `(p4-diff-ins-face ((t :inherit diff-added)))
;; ;;;;; c/perl
;; `(cperl-nonoverridable-face ((t (:foreground ,zenburn-magenta))))
;; `(cperl-array-face ((t (:foreground ,zenburn-yellow, :backgorund ,zenburn-bg))))
;; `(cperl-hash-face ((t (:foreground ,zenburn-yellow-1, :background ,zenburn-bg))))
;; ;;;;; paren-face
;; `(parenthesis ((t (:foreground ,zenburn-fg-1))))
;; ;;;;; perspective
;; `(persp-selected-face ((t (:foreground ,zenburn-yellow-2))))
;; ;;;;; powerline
;; `(powerline-active1 ((t (:background ,zenburn-bg-05 :inherit mode-line))))
;; `(powerline-active2 ((t (:background ,zenburn-bg+2 :inherit mode-line))))
;; `(powerline-inactive1 ((t (:background ,zenburn-bg+1 :inherit mode-line-inactive))))
;; `(powerline-inactive2 ((t (:background ,zenburn-bg+3 :inherit mode-line-inactive))))
;; ;;;;; proofgeneral
;; `(proof-active-area-face ((t (:underline t))))
;; `(proof-boring-face ((t (:foreground ,zenburn-fg :background ,zenburn-bg+2))))
;; `(proof-command-mouse-highlight-face ((t (:inherit proof-mouse-highlight-face))))
;; `(proof-debug-message-face ((t (:inherit proof-boring-face))))
;; `(proof-declaration-name-face ((t (:inherit font-lock-keyword-face :foreground nil))))
;; `(proof-eager-annotation-face ((t (:foreground ,zenburn-bg :background ,zenburn-orange))))
;; `(proof-error-face ((t (:foreground ,zenburn-fg :background ,zenburn-red-4))))
;; `(proof-highlight-dependency-face ((t (:foreground ,zenburn-bg :background ,zenburn-yellow-1))))
;; `(proof-highlight-dependent-face ((t (:foreground ,zenburn-bg :background ,zenburn-orange))))
;; `(proof-locked-face ((t (:background ,zenburn-blue-5))))
;; `(proof-mouse-highlight-face ((t (:foreground ,zenburn-bg :background ,zenburn-orange))))
;; `(proof-queue-face ((t (:background ,zenburn-red-4))))
;; `(proof-region-mouse-highlight-face ((t (:inherit proof-mouse-highlight-face))))
;; `(proof-script-highlight-error-face ((t (:background ,zenburn-red-2))))
;; `(proof-tacticals-name-face ((t (:inherit font-lock-constant-face :foreground nil :background ,zenburn-bg))))
;; `(proof-tactics-name-face ((t (:inherit font-lock-constant-face :foreground nil :background ,zenburn-bg))))
;; `(proof-warning-face ((t (:foreground ,zenburn-bg :background ,zenburn-yellow-1))))
;; ;;;;; racket-mode
;; `(racket-keyword-argument-face ((t (:inherit font-lock-constant-face))))
;; `(racket-selfeval-face ((t (:inherit font-lock-type-face))))
;; ;;;;; rainbow-delimiters
;; `(rainbow-delimiters-depth-1-face ((t (:foreground ,zenburn-fg))))
;; `(rainbow-delimiters-depth-2-face ((t (:foreground ,zenburn-green+4))))
;; `(rainbow-delimiters-depth-3-face ((t (:foreground ,zenburn-yellow-2))))
;; `(rainbow-delimiters-depth-4-face ((t (:foreground ,zenburn-cyan))))
;; `(rainbow-delimiters-depth-5-face ((t (:foreground ,zenburn-green+2))))
;; `(rainbow-delimiters-depth-6-face ((t (:foreground ,zenburn-blue+1))))
;; `(rainbow-delimiters-depth-7-face ((t (:foreground ,zenburn-yellow-1))))
;; `(rainbow-delimiters-depth-8-face ((t (:foreground ,zenburn-green+1))))
;; `(rainbow-delimiters-depth-9-face ((t (:foreground ,zenburn-blue-2))))
;; `(rainbow-delimiters-depth-10-face ((t (:foreground ,zenburn-orange))))
;; `(rainbow-delimiters-depth-11-face ((t (:foreground ,zenburn-green))))
;; `(rainbow-delimiters-depth-12-face ((t (:foreground ,zenburn-blue-5))))
;; ;;;;; rcirc
;; `(rcirc-my-nick ((t (:foreground ,zenburn-blue))))
;; `(rcirc-other-nick ((t (:foreground ,zenburn-orange))))
;; `(rcirc-bright-nick ((t (:foreground ,zenburn-blue+1))))
;; `(rcirc-dim-nick ((t (:foreground ,zenburn-blue-2))))
;; `(rcirc-server ((t (:foreground ,zenburn-green))))
;; `(rcirc-server-prefix ((t (:foreground ,zenburn-green+1))))
;; `(rcirc-timestamp ((t (:foreground ,zenburn-green+2))))
;; `(rcirc-nick-in-message ((t (:foreground ,zenburn-yellow))))
;; `(rcirc-nick-in-message-full-line ((t (:weight bold))))
;; `(rcirc-prompt ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(rcirc-track-nick ((t (:inverse-video t))))
;; `(rcirc-track-keyword ((t (:weight bold))))
;; `(rcirc-url ((t (:weight bold))))
;; `(rcirc-keyword ((t (:foreground ,zenburn-yellow :weight bold))))
;; ;;;;; re-builder
;; `(reb-match-0 ((t (:foreground ,zenburn-bg :background ,zenburn-magenta))))
;; `(reb-match-1 ((t (:foreground ,zenburn-bg :background ,zenburn-blue))))
;; `(reb-match-2 ((t (:foreground ,zenburn-bg :background ,zenburn-orange))))
;; `(reb-match-3 ((t (:foreground ,zenburn-bg :background ,zenburn-red))))
;; ;;;;; realgud
;; `(realgud-overlay-arrow1 ((t (:foreground ,zenburn-green))))
;; `(realgud-overlay-arrow2 ((t (:foreground ,zenburn-yellow))))
;; `(realgud-overlay-arrow3 ((t (:foreground ,zenburn-orange))))
;; `(realgud-bp-enabled-face ((t (:inherit error))))
;; `(realgud-bp-disabled-face ((t (:inherit secondary-selection))))
;; `(realgud-bp-line-enabled-face ((t (:box (:color ,zenburn-red :style nil)))))
;; `(realgud-bp-line-disabled-face ((t (:box (:color "grey70" :style nil)))))
;; `(realgud-line-number ((t (:foreground ,zenburn-yellow))))
;; `(realgud-backtrace-number ((t (:foreground ,zenburn-yellow, :weight bold))))
;; ;;;;; regex-tool
;; `(regex-tool-matched-face ((t (:background ,zenburn-blue-4 :weight bold))))
;; ;;;;; rpm-mode
;; `(rpm-spec-dir-face ((t (:foreground ,zenburn-green))))
;; `(rpm-spec-doc-face ((t (:foreground ,zenburn-green))))
;; `(rpm-spec-ghost-face ((t (:foreground ,zenburn-red))))
;; `(rpm-spec-macro-face ((t (:foreground ,zenburn-yellow))))
;; `(rpm-spec-obsolete-tag-face ((t (:foreground ,zenburn-red))))
;; `(rpm-spec-package-face ((t (:foreground ,zenburn-red))))
;; `(rpm-spec-section-face ((t (:foreground ,zenburn-yellow))))
;; `(rpm-spec-tag-face ((t (:foreground ,zenburn-blue))))
;; `(rpm-spec-var-face ((t (:foreground ,zenburn-red))))
;; ;;;;; rst-mode
;; `(rst-level-1-face ((t (:foreground ,zenburn-orange))))
;; `(rst-level-2-face ((t (:foreground ,zenburn-green+1))))
;; `(rst-level-3-face ((t (:foreground ,zenburn-blue-1))))
;; `(rst-level-4-face ((t (:foreground ,zenburn-yellow-2))))
;; `(rst-level-5-face ((t (:foreground ,zenburn-cyan))))
;; `(rst-level-6-face ((t (:foreground ,zenburn-green-2))))
;; ;;;;; selectrum
;; `(selectrum-current-candidate ((t (:foreground ,zenburn-yellow :weight bold :underline t))))
;; `(selectrum-primary-highlight ((t (:background ,zenburn-green-2))))
;; `(selectrum-secondary-highlight ((t (:background ,zenburn-green))))
;; ;;;;; sh-mode
;; `(sh-heredoc ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(sh-quoted-exec ((t (:foreground ,zenburn-red))))
;; ;;;;; show-paren
;; `(show-paren-mismatch ((t (:foreground ,zenburn-red+1 :background ,zenburn-bg+3 :weight bold))))
;; `(show-paren-match ((t (:foreground ,zenburn-fg :background ,zenburn-bg+3 :weight bold))))
;; ;;;;; smart-mode-line
;; ;; use (setq sml/theme nil) to enable Zenburn for sml
;; `(sml/global ((,class (:foreground ,zenburn-fg :weight bold))))
;; `(sml/modes ((,class (:foreground ,zenburn-yellow :weight bold))))
;; `(sml/minor-modes ((,class (:foreground ,zenburn-fg-1 :weight bold))))
;; `(sml/filename ((,class (:foreground ,zenburn-yellow :weight bold))))
;; `(sml/line-number ((,class (:foreground ,zenburn-blue :weight bold))))
;; `(sml/col-number ((,class (:foreground ,zenburn-blue+1 :weight bold))))
;; `(sml/position-percentage ((,class (:foreground ,zenburn-blue-1 :weight bold))))
;; `(sml/prefix ((,class (:foreground ,zenburn-orange))))
;; `(sml/git ((,class (:foreground ,zenburn-green+3))))
;; `(sml/process ((,class (:weight bold))))
;; `(sml/sudo ((,class (:foreground ,zenburn-orange :weight bold))))
;; `(sml/read-only ((,class (:foreground ,zenburn-red-2))))
;; `(sml/outside-modified ((,class (:foreground ,zenburn-orange))))
;; `(sml/modified ((,class (:foreground ,zenburn-red))))
;; `(sml/vc-edited ((,class (:foreground ,zenburn-green+2))))
;; `(sml/charging ((,class (:foreground ,zenburn-green+4))))
;; `(sml/discharging ((,class (:foreground ,zenburn-red+1))))
;; ;;;;; smartparens
;; `(sp-show-pair-mismatch-face ((t (:foreground ,zenburn-red+1 :background ,zenburn-bg+3 :weight bold))))
;; `(sp-show-pair-match-face ((t (:background ,zenburn-bg+3 :weight bold))))
;; ;;;;; sml-mode-line
;; '(sml-modeline-end-face ((t :inherit default :width condensed)))
;; ;;;;; SLIME
;; `(slime-repl-output-face ((t (:foreground ,zenburn-red))))
;; `(slime-repl-inputed-output-face ((t (:foreground ,zenburn-green))))
;; `(slime-error-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-red)))
;; (t
;; (:underline ,zenburn-red))))
;; `(slime-warning-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-orange)))
;; (t
;; (:underline ,zenburn-orange))))
;; `(slime-style-warning-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-yellow)))
;; (t
;; (:underline ,zenburn-yellow))))
;; `(slime-note-face
;; ((((supports :underline (:style wave)))
;; (:underline (:style wave :color ,zenburn-green)))
;; (t
;; (:underline ,zenburn-green))))
;; `(slime-highlight-face ((t (:inherit highlight))))
;; ;;;;; solaire
;; `(solaire-default-face ((t (:inherit default :background ,zenburn-bg-08))))
;; `(solaire-minibuffer-face ((t (:inherit default :background ,zenburn-bg-08))))
;; `(solaire-hl-line-face ((t (:inherit hl-line :background ,zenburn-bg))))
;; `(solaire-org-hide-face ((t (:inherit org-hide :background ,zenburn-bg-08))))
;; ;;;;; speedbar
;; `(speedbar-button-face ((t (:foreground ,zenburn-green+2))))
;; `(speedbar-directory-face ((t (:foreground ,zenburn-cyan))))
;; `(speedbar-file-face ((t (:foreground ,zenburn-fg))))
;; `(speedbar-highlight-face ((t (:foreground ,zenburn-bg :background ,zenburn-green+2))))
;; `(speedbar-selected-face ((t (:foreground ,zenburn-red))))
;; `(speedbar-separator-face ((t (:foreground ,zenburn-bg :background ,zenburn-blue-1))))
;; `(speedbar-tag-face ((t (:foreground ,zenburn-yellow))))
;; ;;;;; swiper
;; `(swiper-line-face ((t (:underline t))))
;; ;;;;; sx
;; `(sx-custom-button
;; ((t (:background ,zenburn-fg :foreground ,zenburn-bg-1
;; :box (:line-width 3 :style released-button) :height 0.9))))
;; `(sx-question-list-answers
;; ((t (:foreground ,zenburn-green+3
;; :height 1.0 :inherit sx-question-list-parent))))
;; `(sx-question-mode-accepted
;; ((t (:foreground ,zenburn-green+3
;; :height 1.3 :inherit sx-question-mode-title))))
;; '(sx-question-mode-content-face ((t (:inherit highlight))))
;; `(sx-question-mode-kbd-tag
;; ((t (:box (:color ,zenburn-bg-1 :line-width 3 :style released-button)
;; :height 0.9 :weight semi-bold))))
;; ;;;;; tabbar
;; `(tabbar-button ((t (:foreground ,zenburn-fg
;; :background ,zenburn-bg))))
;; `(tabbar-selected ((t (:foreground ,zenburn-fg
;; :background ,zenburn-bg
;; :box (:line-width -1 :style pressed-button)))))
;; `(tabbar-unselected ((t (:foreground ,zenburn-fg
;; :background ,zenburn-bg+1
;; :box (:line-width -1 :style released-button)))))
;; ;;;;; term
;; `(term-color-black ((t (:foreground ,zenburn-bg
;; :background ,zenburn-bg-1))))
;; `(term-color-red ((t (:foreground ,zenburn-red-2
;; :background ,zenburn-red-4))))
;; `(term-color-green ((t (:foreground ,zenburn-green
;; :background ,zenburn-green+2))))
;; `(term-color-yellow ((t (:foreground ,zenburn-orange
;; :background ,zenburn-yellow))))
;; `(term-color-blue ((t (:foreground ,zenburn-blue-1
;; :background ,zenburn-blue-4))))
;; `(term-color-magenta ((t (:foreground ,zenburn-magenta
;; :background ,zenburn-red))))
;; `(term-color-cyan ((t (:foreground ,zenburn-cyan
;; :background ,zenburn-blue))))
;; `(term-color-white ((t (:foreground ,zenburn-fg
;; :background ,zenburn-fg-1))))
;; '(term-default-fg-color ((t (:inherit term-color-white))))
;; '(term-default-bg-color ((t (:inherit term-color-black))))
;; ;;;;; undo-tree
;; `(undo-tree-visualizer-active-branch-face ((t (:foreground ,zenburn-fg+1 :weight bold))))
;; `(undo-tree-visualizer-current-face ((t (:foreground ,zenburn-red-1 :weight bold))))
;; `(undo-tree-visualizer-default-face ((t (:foreground ,zenburn-fg))))
;; `(undo-tree-visualizer-register-face ((t (:foreground ,zenburn-yellow))))
;; `(undo-tree-visualizer-unmodified-face ((t (:foreground ,zenburn-cyan))))
;; ;;;;; visual-regexp
;; `(vr/group-0 ((t (:foreground ,zenburn-bg :background ,zenburn-green :weight bold))))
;; `(vr/group-1 ((t (:foreground ,zenburn-bg :background ,zenburn-orange :weight bold))))
;; `(vr/group-2 ((t (:foreground ,zenburn-bg :background ,zenburn-blue :weight bold))))
;; `(vr/match-0 ((t (:inherit isearch))))
;; `(vr/match-1 ((t (:foreground ,zenburn-yellow-2 :background ,zenburn-bg-1 :weight bold))))
;; `(vr/match-separator-face ((t (:foreground ,zenburn-red :weight bold))))
;; ;;;;; volatile-highlights
;; `(vhl/default-face ((t (:background ,zenburn-bg-05))))
;; ;;;;; web-mode
;; `(web-mode-builtin-face ((t (:inherit ,font-lock-builtin-face))))
;; `(web-mode-comment-face ((t (:inherit ,font-lock-comment-face))))
;; `(web-mode-constant-face ((t (:inherit ,font-lock-constant-face))))
;; `(web-mode-css-at-rule-face ((t (:foreground ,zenburn-orange ))))
;; `(web-mode-css-prop-face ((t (:foreground ,zenburn-orange))))
;; `(web-mode-css-pseudo-class-face ((t (:foreground ,zenburn-green+3 :weight bold))))
;; `(web-mode-css-rule-face ((t (:foreground ,zenburn-blue))))
;; `(web-mode-doctype-face ((t (:inherit ,font-lock-comment-face))))
;; `(web-mode-folded-face ((t (:underline t))))
;; `(web-mode-function-name-face ((t (:foreground ,zenburn-blue))))
;; `(web-mode-html-attr-name-face ((t (:foreground ,zenburn-orange))))
;; `(web-mode-html-attr-value-face ((t (:inherit ,font-lock-string-face))))
;; `(web-mode-html-tag-face ((t (:foreground ,zenburn-cyan))))
;; `(web-mode-keyword-face ((t (:inherit ,font-lock-keyword-face))))
;; `(web-mode-preprocessor-face ((t (:inherit ,font-lock-preprocessor-face))))
;; `(web-mode-string-face ((t (:inherit ,font-lock-string-face))))
;; `(web-mode-type-face ((t (:inherit ,font-lock-type-face))))
;; `(web-mode-variable-name-face ((t (:inherit ,font-lock-variable-name-face))))
;; `(web-mode-server-background-face ((t (:background ,zenburn-bg))))
;; `(web-mode-server-comment-face ((t (:inherit web-mode-comment-face))))
;; `(web-mode-server-string-face ((t (:inherit web-mode-string-face))))
;; `(web-mode-symbol-face ((t (:inherit font-lock-constant-face))))
;; `(web-mode-warning-face ((t (:inherit font-lock-warning-face))))
;; `(web-mode-whitespaces-face ((t (:background ,zenburn-red))))
;; ;;;;; whitespace-mode
;; `(whitespace-space ((t (:background ,zenburn-bg+1 :foreground ,zenburn-bg+1))))
;; `(whitespace-hspace ((t (:background ,zenburn-bg+1 :foreground ,zenburn-bg+1))))
;; `(whitespace-tab ((t (:background ,zenburn-red-1))))
;; `(whitespace-newline ((t (:foreground ,zenburn-bg+1))))
;; `(whitespace-trailing ((t (:background ,zenburn-red))))
;; `(whitespace-line ((t (:background ,zenburn-bg :foreground ,zenburn-magenta))))
;; `(whitespace-space-before-tab ((t (:background ,zenburn-orange :foreground ,zenburn-orange))))
;; `(whitespace-indentation ((t (:background ,zenburn-yellow :foreground ,zenburn-red))))
;; `(whitespace-empty ((t (:background ,zenburn-yellow))))
;; `(whitespace-space-after-tab ((t (:background ,zenburn-yellow :foreground ,zenburn-red))))
;; ;;;;; wanderlust
;; `(wl-highlight-folder-few-face ((t (:foreground ,zenburn-red-2))))
;; `(wl-highlight-folder-many-face ((t (:foreground ,zenburn-red-1))))
;; `(wl-highlight-folder-path-face ((t (:foreground ,zenburn-orange))))
;; `(wl-highlight-folder-unread-face ((t (:foreground ,zenburn-blue))))
;; `(wl-highlight-folder-zero-face ((t (:foreground ,zenburn-fg))))
;; `(wl-highlight-folder-unknown-face ((t (:foreground ,zenburn-blue))))
;; `(wl-highlight-message-citation-header ((t (:foreground ,zenburn-red-1))))
;; `(wl-highlight-message-cited-text-1 ((t (:foreground ,zenburn-red))))
;; `(wl-highlight-message-cited-text-2 ((t (:foreground ,zenburn-green+2))))
;; `(wl-highlight-message-cited-text-3 ((t (:foreground ,zenburn-blue))))
;; `(wl-highlight-message-cited-text-4 ((t (:foreground ,zenburn-blue+1))))
;; `(wl-highlight-message-header-contents-face ((t (:foreground ,zenburn-green))))
;; `(wl-highlight-message-headers-face ((t (:foreground ,zenburn-red+1))))
;; `(wl-highlight-message-important-header-contents ((t (:foreground ,zenburn-green+2))))
;; `(wl-highlight-message-header-contents ((t (:foreground ,zenburn-green+1))))
;; `(wl-highlight-message-important-header-contents2 ((t (:foreground ,zenburn-green+2))))
;; `(wl-highlight-message-signature ((t (:foreground ,zenburn-green))))
;; `(wl-highlight-message-unimportant-header-contents ((t (:foreground ,zenburn-fg))))
;; `(wl-highlight-summary-answered-face ((t (:foreground ,zenburn-blue))))
;; `(wl-highlight-summary-disposed-face ((t (:foreground ,zenburn-fg
;; :slant italic))))
;; `(wl-highlight-summary-new-face ((t (:foreground ,zenburn-blue))))
;; `(wl-highlight-summary-normal-face ((t (:foreground ,zenburn-fg))))
;; `(wl-highlight-summary-thread-top-face ((t (:foreground ,zenburn-yellow))))
;; `(wl-highlight-thread-indent-face ((t (:foreground ,zenburn-magenta))))
;; `(wl-highlight-summary-refiled-face ((t (:foreground ,zenburn-fg))))
;; `(wl-highlight-summary-displaying-face ((t (:underline t :weight bold))))
;; ;;;;; which-func-mode
;; `(which-func ((t (:foreground ,zenburn-green+4))))
;; ;;;;; xcscope
;; `(cscope-file-face ((t (:foreground ,zenburn-yellow :weight bold))))
;; `(cscope-function-face ((t (:foreground ,zenburn-cyan :weight bold))))
;; `(cscope-line-number-face ((t (:foreground ,zenburn-red :weight bold))))
;; `(cscope-mouse-face ((t (:foreground ,zenburn-bg :background ,zenburn-blue+1))))
;; `(cscope-separator-face ((t (:foreground ,zenburn-red :weight bold
;; :underline t :overline t))))
;; ;;;;; yascroll
;; `(yascroll:thumb-text-area ((t (:background ,zenburn-bg-1))))
;; `(yascroll:thumb-fringe ((t (:background ,zenburn-bg-1 :foreground ,zenburn-bg-1))))
;; ))
;; ;;; Theme Variables
;; (zenburn-with-color-variables
;; (custom-theme-set-variables
;; 'zenburn
;; ;;;;; ansi-color
;; `(ansi-color-names-vector [,zenburn-bg ,zenburn-red ,zenburn-green ,zenburn-yellow
;; ,zenburn-blue ,zenburn-magenta ,zenburn-cyan ,zenburn-fg])
;; ;;;;; company-quickhelp
;; `(company-quickhelp-color-background ,zenburn-bg+1)
;; `(company-quickhelp-color-foreground ,zenburn-fg)
;; ;;;;; fill-column-indicator
;; `(fci-rule-color ,zenburn-bg-05)
;; ;;;;; nrepl-client
;; `(nrepl-message-colors
;; '(,zenburn-red ,zenburn-orange ,zenburn-yellow ,zenburn-green ,zenburn-green+4
;; ,zenburn-cyan ,zenburn-blue+1 ,zenburn-magenta))
;; ;;;;; pdf-tools
;; `(pdf-view-midnight-colors '(,zenburn-fg . ,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-2)
;; (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)
;; (defcustom zenburn-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, provided that library has
;; been loaded (because that is where the code that does it is
;; defined). If you visit this file and only enable the theme,
;; then you have to turn `rainbow-mode' off and on again for the
;; zenburn-specific font-lock keywords to be used.
;; In all other Emacs-Lisp buffers this variable controls whether
;; this should be done. This requires library `rainbow-mode'."
;; :type 'boolean
;; :group 'zenburn-theme)
;; (defvar zenburn-colors-font-lock-keywords nil)
;; (defun zenburn--rainbow-turn-on ()
;; "Maybe also add font-lock keywords for zenburn colors."
;; (when (and (derived-mode-p 'emacs-lisp-mode)
;; (or zenburn-add-font-lock-keywords
;; (and (buffer-file-name)
;; (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-default-colors-alist) 'words)
;; (0 (rainbow-colorize-by-assoc zenburn-default-colors-alist))))))
;; (font-lock-add-keywords nil zenburn-colors-font-lock-keywords 'end)))
;; (defun zenburn--rainbow-turn-off ()
;; "Also remove font-lock keywords for zenburn colors."
;; (font-lock-remove-keywords nil zenburn-colors-font-lock-keywords))
;; (when (fboundp 'advice-add)
;; (advice-add 'rainbow-turn-on :after #'zenburn--rainbow-turn-on)
;; (advice-add 'rainbow-turn-off :after #'zenburn--rainbow-turn-off))
;; ;;; 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))))
;; (provide-theme 'zenburn)
;; I will now change this into a comment
;; (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.
;; '(rainbow-delimiters-depth-1-face ((t (:foreground "red" :height 2.0))))
;; '(rainbow-delimiters-depth-2-face ((t (:foreground "orange" :height 1.8))))
;; '(rainbow-delimiters-depth-3-face ((t (:foreground "yellow" :height 1.6))))
;; '(rainbow-delimiters-depth-4-face ((t (:foreground "green" :height 1.4))))
;; '(rainbow-delimiters-depth-5-face ((t (:foreground "blue" :height 1.2))))
;; '(rainbow-delimiters-depth-6-face ((t (:foreground "violet" :height 1.1))))
;; '(rainbow-delimiters-depth-7-face ((t (:foreground "purple" :height 1.0))))
;; '(rainbow-delimiters-depth-8-face ((t (:foreground "black" :height 0.9))))
;; '(rainbow-delimiters-unmatched-face ((t (:background "cyan" :height 0.8)))))
;; ;; ;; Local Variables:
;; ;; ;; no-byte-compile: t
;; ;; ;; indent-tabs-mode: nil
;; ;; ;; eval: (when (require 'rainbow-mode nil t) (rainbow-mode 1))
;; ;; ;; End:
;; ;; ;;; zenburn-theme.el ends here
;; I prefer not to have huge parenthesis so I redefined the height
(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.
'(default ((t (:family "Fira Mono" :foundry "CTDB" :slant normal :weight normal :height 108 :width normal))))
'(rainbow-delimiters-depth-1-face ((t (:foreground "red" :height 1.0))))
'(rainbow-delimiters-depth-2-face ((t (:foreground "orange" :height 1.0))))
'(rainbow-delimiters-depth-3-face ((t (:foreground "yellow" :height 1.0))))
'(rainbow-delimiters-depth-4-face ((t (:foreground "green" :height 1.0))))
'(rainbow-delimiters-depth-5-face ((t (:foreground "blue" :height 1.0))))
'(rainbow-delimiters-depth-6-face ((t (:foreground "violet" :height 1.0))))
'(rainbow-delimiters-depth-7-face ((t (:foreground "purple" :height 1.0))))
'(rainbow-delimiters-depth-8-face ((t (:foreground "black" :height 1.0))))
'(rainbow-delimiters-unmatched-face ((t (:background "cyan" :height 1.0)))))
;; ;; Local Variables:
;; ;; no-byte-compile: t
;; ;; indent-tabs-mode: nil
;; ;; eval: (when (require 'rainbow-mode nil t) (rainbow-mode 1))
;; ;; End:
;; ;;; zenburn-theme.el ends here
;; ====================
;; insert date and time
(defvar current-date-time-format "%a %b %d %H:%M:%S %Z %Y"
"Format of date to insert with `insert-current-date-time' func
See help of `format-time-string' for possible replacements")
(defvar current-time-format "%a %H:%M:%S"
"Format of date to insert with `insert-current-time' func.
Note the weekly scope of the command's precision.")
(defun insert-current-date-time ()
"insert the current date and time into current buffer.
Uses `current-date-time-format' for the formatting the date/time."
(interactive)
(insert "==========\n")
; (insert (let () (comment-start)))
(insert (format-time-string current-date-time-format (current-time)))
(insert "\n")
)
(defun insert-current-time ()
"insert the current time (1-week scope) into the current buffer."
(interactive)
(insert (format-time-string current-time-format (current-time)))
(insert "\n")
)
(global-set-key (kbd "C-c C-d") 'insert-current-date-time)
;; (global-set-key "\C-c\C-t" 'insert-current-time)
;; Add time-stamp, see https://www.emacswiki.org/emacs/TimeStamp
(add-hook 'before-save-hook 'time-stamp)
;; Choose the main theme
;; (load-theme 'alect-dark-alt t)
;; (load-theme 'darktooth t)
;; or
;; (load-theme 'afternoon t) ;; very good
(load-theme 'zenburn t) ;; very good
;; (load-theme 'gruvbox-dark-hard t) ;; also good
;; (load-theme 'monokai-alt t)
;; make the fringe stand out from the background
;; (setq solarized-distinct-fringe-background t)
;; (load-theme 'solarized-dark t) ;; also good
;; see http://ergoemacs.org/misc/emacs_rainbow-delimiters-mode.html
;; rainbow-delimiters-mode setup, with decreasing bracket size
;; ;; eshell
;; '(eshell-prompt ((t (:inherit 'zenburn-primary-1))))
;; `(eshell-ls-archive ((t (:foreground ,zenburn-red-1 :weight bold))))
;; '(eshell-ls-backup ((t (:inherit font-lock-comment))))
;; '(eshell-ls-clutter ((t (:inherit font-lock-comment))))
;; `(eshell-ls-directory ((t (:foreground ,zenburn-blue+1 :weight bold))))
;; `(eshell-ls-executable ((t (:foreground ,zenburn-red+1 :weight bold))))
;; '(eshell-ls-unreadable ((t (:inherit 'zenburn-lowlight-1))))
;; '(eshell-ls-missing ((t (:inherit font-lock-warning))))
;; '(eshell-ls-product ((t (:inherit font-lock-doc))))
;; '(eshell-ls-special ((t (:inherit 'zenburn-primary-1))))
;; `(eshell-ls-symlink ((t (:foreground ,zenburn-cyan :weight bold))))
;; The line at the bottom should be used to set the default font size but it
;; does not work with lxde on a 4k monitor.
;; (set-face-attribute 'default nil :height 180)
;; (defun rmd-mode ()
;; "ESS Markdown mode for rmd files"
;; (interactive)
;; (setq load-path
;; (append (list "path/to/polymode/" "path/to/polymode/modes/")
;; load-path))
;; (require 'poly-R)
;; (require 'poly-markdown)
;; (poly-markdown+r-mode))
;; (add-to-list 'auto-mode-alist '("\\.Rmd\\'" . markdown-mode))
(require 'loadhist)
;; (file-dependents (feature-file 'cl))
;; (require 'fira-code-mode)
;; (custom-set-variable 'fira-code-mode-disabled-ligatures '("[]" "#{" "#(" "#_" "#_(" "x")) ;; List of ligatures to turn off
;; ;; Enable fira-code-mode automatically for programming major modes
;; (add-hook 'prog-mode-hook 'fira-code-mode)
;; ;; Or, you can use the global mode instead of adding a hook:
;; (global-fira-code-mode)
;; (require 'fira-code-mode)
;; install use-package from melpa and also fira
;; See https://github.com/jming422/fira-code-mode
;; See also https://stackoverflow.com/a/72922189/2952838
(use-package fira-code-mode
:if (display-graphic-p)
:custom (fira-code-mode-disabled-ligatures '("[]" "..." "www" "<-" "#{" "#(" "#_" "#_(" "x")) ;; List of ligatures to turn off
:hook prog-mode) ;; Enables fira-code-mode automatically for programming major modes)
;; load the library
(require 'quarto-mode)
;; (set-frame-font "FiraCode-Regular-Symbol")