diff options
Diffstat (limited to 'emacs')
| -rw-r--r-- | emacs/color-theme-tomorrow.el | 609 | ||||
| -rw-r--r-- | emacs/init.el | 117 | ||||
| -rw-r--r-- | emacs/tomorrow-day-theme.el | 2 | ||||
| -rw-r--r-- | emacs/tomorrow-night-blue-theme.el | 2 | ||||
| -rw-r--r-- | emacs/tomorrow-night-bright-theme.el | 2 | ||||
| -rw-r--r-- | emacs/tomorrow-night-eighties-theme.el | 2 | ||||
| -rw-r--r-- | emacs/tomorrow-night-theme.el | 2 | 
7 files changed, 727 insertions, 9 deletions
| diff --git a/emacs/color-theme-tomorrow.el b/emacs/color-theme-tomorrow.el new file mode 100644 index 0000000..10e45a0 --- /dev/null +++ b/emacs/color-theme-tomorrow.el @@ -0,0 +1,609 @@ +;;; color-theme-tomorrow.el --- GNU Emacs port of the Tomorrow Theme. + +;;; Commentary: +;; +;;; Tomorrow Theme +;; +;; Originally by Chris Kempson https://github.com/ChrisKempson/Tomorrow-Theme +;; Ported to GNU Emacs by Chris Charles +;; Rewritten by Steve Purcell <steve@sanityinc.com> for compatibility +;; Update to match master by Donald Curtis <dcurtis@milkbox.net> + + +;;; Code: + +(defconst color-theme-tomorrow-colors +  '((night . ((background . "#1d1f21") +              (current-line . "#282a2e") +              (selection . "#373b41") +              (foreground . "#c5c8c6") +              (comment . "#969896") +              (red . "#cc6666") +              (orange . "#de935f") +              (yellow . "#f0c674") +              (green . "#b5bd68") +              (aqua . "#8abeb7") +              (blue . "#81a2be") +              (purple . "#b294bb"))) +    (day . ((background . "#ffffff") +            (current-line . "#efefef") +            (selection . "#d6d6d6") +            (foreground . "#4d4d4c") +            (comment . "#8e908c") +            (red . "#c82829") +            (orange . "#f5871f") +            (yellow . "#eab700") +            (green . "#718c00") +            (aqua . "#3e999f") +            (blue . "#4271ae") +            (purple . "#8959a8"))) +    (night-eighties . ((background . "#2d2d2d") +                       (current-line . "#393939") +                       (selection . "#515151") +                       (foreground . "#cccccc") +                       (comment . "#999999") +                       (red . "#f2777a") +                       (orange . "#f99157") +                       (yellow . "#ffcc66") +                       (green . "#99cc99") +                       (aqua . "#66cccc") +                       (blue . "#6699cc") +                       (purple . "#cc99cc"))) +    (night-blue . ((background . "#002451") +                   (current-line . "#00346e") +                   (selection . "#003f8e") +                   (foreground . "#ffffff") +                   (comment . "#7285b7") +                   (red . "#ff9da4") +                   (orange . "#ffc58f") +                   (yellow . "#ffeead") +                   (green . "#d1f1a9") +                   (aqua . "#99ffff") +                   (blue . "#bbdaff") +                   (purple . "#ebbbff"))) +    (night-bright . ((background . "#000000") +                     (current-line . "#2a2a2a") +                     (selection . "#424242") +                     (foreground . "#eaeaea") +                     (comment . "#969896") +                     (red . "#d54e53") +                     (orange . "#e78c45") +                     (yellow . "#e7c547") +                     (green . "#b9ca4a") +                     (aqua . "#70c0b1") +                     (blue . "#7aa6da") +                     (purple . "#c397d8"))))) + + + +(defmacro color-theme-tomorrow--with-colors (mode &rest body) +  "Execute `BODY' in a scope with variables bound to the various tomorrow colors. + +`MODE' should be set to either 'day, 'night, 'night-eighties, 'night-blue or 'night-bright." +  `(let* ((colors (or (cdr (assoc ,mode color-theme-tomorrow-colors)) +                      (error "no such theme flavor"))) +          (background   (cdr (assoc 'background colors))) +          (current-line (cdr (assoc 'current-line colors))) +          (selection    (cdr (assoc 'selection colors))) +          (foreground   (cdr (assoc 'foreground colors))) +          (comment      (cdr (assoc 'comment colors))) +          (red          (cdr (assoc 'red colors))) +          (orange       (cdr (assoc 'orange colors))) +          (yellow       (cdr (assoc 'yellow colors))) +          (green        (cdr (assoc 'green colors))) +          (aqua         (cdr (assoc 'aqua colors))) +          (blue         (cdr (assoc 'blue colors))) +          (purple       (cdr (assoc 'purple colors))) +          (class '((class color) (min-colors 89)))) +     ,@body)) + +(defmacro color-theme-tomorrow--face-specs () +  "Return a backquote which defines a list of face specs. + +It expects to be evaluated in a scope in which the various color +names to which it refers are bound." +  (quote +   `(;; Standard font lock faces +     (default ((,class (:foreground ,foreground :background ,background)))) +     (bold ((,class (:weight bold)))) +     (bold-italic ((,class (:slant italic :weight bold)))) +     (underline ((,class (:underline t)))) +     (italic ((,class (:slant italic)))) +     (shadow ((,class (:foreground ,comment)))) +     (success ((,class (:foreground ,green)))) +     (error ((,class (:foreground ,red)))) +     (warning ((,class (:foreground ,orange)))) +     (outline-4 ((,class (:slant normal :foreground ,comment)))) + +     ;; Font-lock stuff +     (font-lock-builtin-face ((,class (:foreground ,aqua)))) +     (font-lock-comment-delimiter-face ((,class (:foreground ,comment :slant italic)))) +     (font-lock-comment-face ((,class (:foreground ,comment :slant italic)))) +     (font-lock-constant-face ((,class (:foreground ,aqua)))) +     (font-lock-doc-face ((,class (:foreground ,comment)))) +     (font-lock-doc-string-face ((,class (:foreground ,yellow)))) +     (font-lock-function-name-face ((,class (:foreground ,blue)))) +     (font-lock-keyword-face ((,class (:foreground ,purple)))) +     (font-lock-negation-char-face ((,class (:foreground ,green)))) +     (font-lock-preprocessor-face ((,class (:foreground ,purple)))) +     (font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow)))) +     (font-lock-regexp-grouping-construct ((,class (:foreground ,purple)))) +     (font-lock-string-face ((,class (:foreground ,green)))) +     (font-lock-type-face ((,class (:foreground ,yellow)))) +     (font-lock-variable-name-face ((,class (:foreground ,orange)))) +     (font-lock-warning-face ((,class (:weight bold :foreground ,red)))) + +     ;; Flymake +     (flymake-warnline ((,class (:underline ,orange :background ,background)))) +     (flymake-errline ((,class (:underline ,red :background ,background)))) + +     ;; Clojure errors +     (clojure-test-failure-face ((,class (:background nil :inherit flymake-warnline)))) +     (clojure-test-error-face ((,class (:background nil :inherit flymake-errline)))) +     (clojure-test-success-face ((,class (:background nil :foreground nil :underline ,green)))) + +     ;; For Brian Carper's extended clojure syntax table +     (clojure-keyword ((,class (:foreground ,yellow)))) +     (clojure-parens ((,class (:foreground ,foreground)))) +     (clojure-braces ((,class (:foreground ,green)))) +     (clojure-brackets ((,class (:foreground ,yellow)))) +     (clojure-double-quote ((,class (:foreground ,aqua :background nil)))) +     (clojure-special ((,class (:foreground ,blue)))) +     (clojure-java-call ((,class (:foreground ,purple)))) + +     ;; Rainbow-delimiters +     (rainbow-delimiters-depth-1-face ((,class (:foreground ,purple)))) +     (rainbow-delimiters-depth-2-face ((,class (:foreground ,blue)))) +     (rainbow-delimiters-depth-3-face ((,class (:foreground ,aqua)))) +     (rainbow-delimiters-depth-4-face ((,class (:foreground ,green)))) +     (rainbow-delimiters-depth-5-face ((,class (:foreground ,yellow)))) +     (rainbow-delimiters-depth-6-face ((,class (:foreground ,orange)))) +     (rainbow-delimiters-depth-7-face ((,class (:foreground ,red)))) +     (rainbow-delimiters-depth-8-face ((,class (:foreground ,comment)))) +     (rainbow-delimiters-depth-9-face ((,class (:foreground ,foreground)))) +     (rainbow-delimiters-unmatched-face ((,class (:foreground ,red)))) + +     ;; MMM-mode +     (mmm-code-submode-face ((,class (:background ,current-line)))) +     (mmm-comment-submode-face ((,class (:inherit font-lock-comment-face)))) +     (mmm-output-submode-face ((,class (:background ,current-line)))) + +     ;; Search +     (match ((,class (:foreground ,blue :background ,background :inverse-video t)))) +     (isearch ((,class (:foreground ,yellow :background ,background :inverse-video t)))) +     (isearch-lazy-highlight-face ((,class (:foreground ,aqua :background ,background :inverse-video t)))) +     (isearch-fail ((,class (:background ,background :inherit font-lock-warning-face :inverse-video t)))) + +     ;; IDO +     (ido-subdir ((,class (:foreground ,comment)))) +     (ido-first-match ((,class (:foreground ,orange :weight bold)))) +     (ido-only-match ((,class (:foreground ,red :weight bold)))) +     (ido-indicator ((,class (:foreground ,red :background ,background)))) +     (ido-virtual ((,class (:foreground ,comment)))) + +     ;; which-function +     (which-func ((,class (:foreground ,blue :background nil :weight bold)))) + +     ;; Emacs interface +     (cursor ((,class (:background ,red)))) +     (fringe ((,class (:background ,current-line)))) +     (linum ((,class (:background ,current-line)))) +     (hl-line ((,class (:background ,current-line)))) +     (border ((,class (:background ,current-line)))) +     (border-glyph ((,class (nil)))) +     (highlight ((,class (:background ,green)))) +     (link ((,class (:foreground ,blue)))) +     (link-visited ((,class (:foreground ,purple)))) +     (gui-element ((,class (:background ,current-line :foreground ,foreground)))) +     (mode-line ((,class (:background ,selection :foreground ,foreground)))) +     (mode-line-inactive ((,class (:background ,current-line :foreground ,foreground)))) +     (mode-line-buffer-id ((,class (:foreground ,purple :background nil)))) +     (mode-line-emphasis ((,class (:foreground ,foreground :slant italic)))) +     (mode-line-highlight ((,class (:foreground ,purple :box nil :weight bold)))) +     (minibuffer-prompt ((,class (:foreground ,blue)))) +     (region ((,class (:background ,selection)))) +     (secondary-selection ((,class (:background ,current-line)))) + +     (header-line ((,class (:inherit mode-line :foreground ,purple :background nil)))) + +     (trailing-whitespace ((,class (:background ,red :foreground ,yellow)))) +     (whitespace-empty ((,class (:foreground ,red :background ,yellow)))) +     (whitespace-hspace ((,class (:background ,selection :foreground ,comment)))) +     (whitespace-indentation ((,class (:background ,yellow :foreground ,red)))) +     (whitespace-line ((,class (:background ,current-line :foreground ,purple)))) +     (whitespace-newline ((,class (:foreground ,comment)))) +     (whitespace-space ((,class (:background ,current-line :foreground ,comment)))) +     (whitespace-space-after-tab ((,class (:background ,yellow :foreground ,red)))) +     (whitespace-space-before-tab ((,class (:background ,orange :foreground ,red)))) +     (whitespace-tab ((,class (:background ,selection :foreground ,comment)))) +     (whitespace-trailing ((,class (:background ,red :foreground ,yellow)))) + +     ;; Parenthesis matching (built-in) +     (show-paren-match ((,class (:background ,blue :foreground ,current-line)))) +     (show-paren-mismatch ((,class (:background ,orange :foreground ,current-line)))) + +     ;; Parenthesis matching (mic-paren) +     (paren-face-match ((,class (:foreground nil :background nil :inherit show-paren-match)))) +     (paren-face-mismatch ((,class (:foreground nil :background nil :inherit show-paren-mismatch)))) +     (paren-face-no-match ((,class (:foreground nil :background nil :inherit show-paren-mismatch)))) + +     ;; Parenthesis dimming (parenface) +     (paren-face ((,class (:foreground ,comment :background nil)))) + +     (sh-heredoc ((,class (:foreground nil :inherit font-lock-string-face :weight normal)))) +     (sh-quoted-exec ((,class (:foreground nil :inherit font-lock-preprocessor-face)))) +     (slime-highlight-edits-face ((,class (:weight bold)))) +     (slime-repl-input-face ((,class (:weight normal :underline nil)))) +     (slime-repl-prompt-face ((,class (:underline nil :weight bold :foreground ,purple)))) +     (slime-repl-result-face ((,class (:foreground ,green)))) +     (slime-repl-output-face ((,class (:foreground ,blue :background ,background)))) + +     (csv-separator-face ((,class (:foreground ,orange)))) + +     (diff-added ((,class (:foreground ,green)))) +     (diff-changed ((,class (:foreground ,yellow)))) +     (diff-removed ((,class (:foreground ,red)))) +     (diff-header ((,class (:background ,current-line)))) +     (diff-file-header ((,class (:background ,selection)))) +     (diff-hunk-header ((,class (:background ,current-line :foreground ,purple)))) + +     (ediff-even-diff-A ((,class (:foreground nil :background nil :inverse-video t)))) +     (ediff-even-diff-B ((,class (:foreground nil :background nil :inverse-video t)))) +     (ediff-odd-diff-A  ((,class (:foreground ,comment :background nil :inverse-video t)))) +     (ediff-odd-diff-B  ((,class (:foreground ,comment :background nil :inverse-video t)))) + +     (eldoc-highlight-function-argument ((,class (:foreground ,green :weight bold)))) + +     ;; undo-tree +     (undo-tree-visualizer-default-face ((,class (:foreground ,foreground)))) +     (undo-tree-visualizer-current-face ((,class (:foreground ,green :weight bold)))) +     (undo-tree-visualizer-active-branch-face ((,class (:foreground ,red)))) +     (undo-tree-visualizer-register-face ((,class (:foreground ,yellow)))) + +     ;; auctex +     (font-latex-bold-face ((,class (:foreground ,green)))) +     (font-latex-doctex-documentation-face ((,class (:background ,current-line)))) +     (font-latex-italic-face ((,class (:foreground ,green)))) +     (font-latex-math-face ((,class (:foreground ,orange)))) +     (font-latex-sectioning-0-face ((,class (:foreground ,yellow)))) +     (font-latex-sectioning-1-face ((,class (:foreground ,yellow)))) +     (font-latex-sectioning-2-face ((,class (:foreground ,yellow)))) +     (font-latex-sectioning-3-face ((,class (:foreground ,yellow)))) +     (font-latex-sectioning-4-face ((,class (:foreground ,yellow)))) +     (font-latex-sectioning-5-face ((,class (:foreground ,yellow)))) +     (font-latex-sedate-face ((,class (:foreground ,aqua)))) +     (font-latex-string-face ((,class (:foreground ,yellow)))) +     (font-latex-verbatim-face ((,class (:foreground ,orange)))) +     (font-latex-warning-face ((,class (:foreground ,red)))) + +     ;; dired+ +     (diredp-compressed-file-suffix ((,class (:foreground ,blue)))) +     (diredp-dir-heading ((,class (:foreground nil :background nil :inherit heading)))) +     (diredp-dir-priv ((,class (:foreground ,aqua :background nil)))) +     (diredp-exec-priv ((,class (:foreground ,blue :background nil)))) +     (diredp-executable-tag ((,class (:foreground ,red :background nil)))) +     (diredp-file-name ((,class (:foreground ,yellow)))) +     (diredp-file-suffix ((,class (:foreground ,green)))) +     (diredp-flag-mark-line ((,class (:background nil :inherit highlight)))) +     (diredp-ignored-file-name ((,class (:foreground ,comment)))) +     (diredp-link-priv ((,class (:background nil :foreground ,purple)))) +     (diredp-mode-line-flagged ((,class (:foreground ,red)))) +     (diredp-mode-line-marked ((,class (:foreground ,green)))) +     (diredp-no-priv ((,class (:background nil)))) +     (diredp-number ((,class (:foreground ,yellow)))) +     (diredp-other-priv ((,class (:background nil :foreground ,purple)))) +     (diredp-rare-priv ((,class (:foreground ,red :background nil)))) +     (diredp-read-priv ((,class (:foreground ,green :background nil)))) +     (diredp-symlink ((,class (:foreground ,purple)))) +     (diredp-write-priv ((,class (:foreground ,yellow :background nil)))) + +     ;; Magit (a patch is pending in magit to make these standard upstream) +     (magit-branch ((,class (:foreground ,green)))) +     (magit-header ((,class (:inherit nil :weight bold)))) +     (magit-item-highlight ((,class (:inherit highlight :background nil)))) +     (magit-log-graph ((,class (:foreground ,comment)))) +     (magit-log-sha1 ((,class (:foreground ,purple)))) +     (magit-log-head-label-bisect-bad ((,class (:foreground ,red)))) +     (magit-log-head-label-bisect-good ((,class (:foreground ,green)))) +     (magit-log-head-label-default ((,class (:foreground ,yellow :box nil :weight bold)))) +     (magit-log-head-label-local ((,class (:foreground ,blue)))) +     (magit-log-head-label-remote ((,class (:foreground ,green)))) +     (magit-log-head-label-tags ((,class (:foreground ,aqua :box nil :weight bold)))) +     (magit-section-title ((,class (:inherit diff-hunk-header)))) + +     (link ((,class (:foreground nil :underline t)))) +     (widget-button ((,class (:underline t)))) +     (widget-field ((,class (:background ,current-line :box (:line-width 1 :color ,foreground))))) + +     ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) +     (compilation-column-number ((,class (:foreground ,yellow)))) +     (compilation-line-number ((,class (:foreground ,yellow)))) +     (compilation-message-face ((,class (:foreground ,blue)))) +     (compilation-mode-line-exit ((,class (:foreground ,green)))) +     (compilation-mode-line-fail ((,class (:foreground ,red)))) +     (compilation-mode-line-run ((,class (:foreground ,blue)))) + +     ;; Grep +     (grep-context-face ((,class (:foreground ,comment)))) +     (grep-error-face ((,class (:foreground ,red :weight bold :underline t)))) +     (grep-hit-face ((,class (:foreground ,blue)))) +     (grep-match-face ((,class (:foreground nil :background nil :inherit match)))) + +     (regex-tool-matched-face ((,class (:foreground nil :background nil :inherit match)))) + +     ;; mark-multiple +     (mm/master-face ((,class (:inherit region :foreground nil :background nil)))) +     (mm/mirror-face ((,class (:inherit region :foreground nil :background nil)))) + +     (org-agenda-structure ((,class (:foreground ,purple)))) +     (org-agenda-date ((,class (:foreground ,blue :underline nil)))) +     (org-agenda-done ((,class (:foreground ,green)))) +     (org-agenda-dimmed-todo-face ((,class (:foreground ,comment)))) +     (org-block ((,class (:foreground ,orange)))) +     (org-code ((,class (:foreground ,yellow)))) +     (org-column ((,class (:background ,current-line)))) +     (org-column-title ((,class (:inherit org-column :weight bold :underline t)))) +     (org-date ((,class (:foreground ,purple :underline t)))) +     (org-document-info ((,class (:foreground ,aqua)))) +     (org-document-info-keyword ((,class (:foreground ,green)))) +     (org-document-title ((,class (:weight bold :foreground ,orange :height 1.44)))) +     (org-done ((,class (:foreground ,green)))) +     (org-ellipsis ((,class (:foreground ,comment)))) +     (org-footnote ((,class (:foreground ,aqua)))) +     (org-formula ((,class (:foreground ,red)))) +     (org-hide ((,class (:foreground ,current-line)))) +     (org-link ((,class (:foreground ,blue)))) +     (org-scheduled ((,class (:foreground ,green)))) +     (org-scheduled-previously ((,class (:foreground ,orange)))) +     (org-scheduled-today ((,class (:foreground ,green)))) +     (org-special-keyword ((,class (:foreground ,orange)))) +     (org-table ((,class (:foreground ,purple)))) +     (org-todo ((,class (:foreground ,red)))) +     (org-upcoming-deadline ((,class (:foreground ,orange)))) +     (org-warning ((,class (:weight bold :foreground ,red)))) + +     (markdown-url-face ((,class (:inherit link)))) +     (markdown-link-face ((,class (:foreground ,blue :underline t)))) + +     (hl-sexp-face ((,class (:background ,current-line)))) +     (highlight-80+ ((,class (:background ,current-line)))) + +     ;; Python-specific overrides +     (py-builtins-face ((,class (:foreground ,orange :weight normal)))) + +     ;; js2-mode +     (js2-warning-face ((,class (:underline ,orange)))) +     (js2-error-face ((,class (:foreground nil :underline ,red)))) +     (js2-external-variable-face ((,class (:foreground ,purple)))) +     (js2-function-param-face ((,class (:foreground ,blue)))) +     (js2-instance-member-face ((,class (:foreground ,blue)))) +     (js2-private-function-call-face ((,class (:foreground ,red)))) + +     ;; js3-mode +     (js3-warning-face ((,class (:underline ,orange)))) +     (js3-error-face ((,class (:foreground nil :underline ,red)))) +     (js3-external-variable-face ((,class (:foreground ,purple)))) +     (js3-function-param-face ((,class (:foreground ,blue)))) +     (js3-jsdoc-tag-face ((,class (:foreground ,orange)))) +     (js3-jsdoc-type-face ((,class (:foreground ,aqua)))) +     (js3-jsdoc-value-face ((,class (:foreground ,yellow)))) +     (js3-jsdoc-html-tag-name-face ((,class (:foreground ,blue)))) +     (js3-jsdoc-html-tag-delimiter-face ((,class (:foreground ,green)))) +     (js3-instance-member-face ((,class (:foreground ,blue)))) +     (js3-private-function-call-face ((,class (:foreground ,red)))) + +     ;; nxml +     (nxml-name-face ((,class (:foreground unspecified :inherit font-lock-constant-face)))) +     (nxml-attribute-local-name-face ((,class (:foreground unspecified :inherit font-lock-variable-name-face)))) +     (nxml-ref-face ((,class (:foreground unspecified :inherit font-lock-preprocessor-face)))) +     (nxml-delimiter-face ((,class (:foreground unspecified :inherit font-lock-keyword-face)))) +     (nxml-delimited-data-face ((,class (:foreground unspecified :inherit font-lock-string-face)))) +     (rng-error-face ((,class (:underline ,red)))) + +     ;; RHTML +     (erb-delim-face ((,class (:background ,current-line)))) +     (erb-exec-face ((,class (:background ,current-line :weight bold)))) +     (erb-exec-delim-face ((,class (:background ,current-line)))) +     (erb-out-face ((,class (:background ,current-line :weight bold)))) +     (erb-out-delim-face ((,class (:background ,current-line)))) +     (erb-comment-face ((,class (:background ,current-line :weight bold :slant italic)))) +     (erb-comment-delim-face ((,class (:background ,current-line)))) + +     ;; Message-mode +     (message-header-other ((,class (:foreground nil :background nil :weight normal)))) +     (message-header-subject ((,class (:inherit message-header-other :weight bold :foreground ,yellow)))) +     (message-header-to ((,class (:inherit message-header-other :weight bold :foreground ,orange)))) +     (message-header-cc ((,class (:inherit message-header-to :foreground nil)))) +     (message-header-name ((,class (:foreground ,blue :background nil)))) +     (message-header-newsgroups ((,class (:foreground ,aqua :background nil :slant normal)))) +     (message-separator ((,class (:foreground ,purple)))) + +     ;; Jabber +     (jabber-chat-prompt-local ((,class (:foreground ,yellow)))) +     (jabber-chat-prompt-foreign ((,class (:foreground ,orange)))) +     (jabber-chat-prompt-system ((,class (:foreground ,yellow :weight bold)))) +     (jabber-chat-text-local ((,class (:foreground ,yellow)))) +     (jabber-chat-text-foreign ((,class (:foreground ,orange)))) +     (jabber-chat-text-error ((,class (:foreground ,red)))) + +     (jabber-roster-user-online ((,class (:foreground ,green)))) +     (jabber-roster-user-xa ((,class :foreground ,comment))) +     (jabber-roster-user-dnd ((,class :foreground ,yellow))) +     (jabber-roster-user-away ((,class (:foreground ,orange)))) +     (jabber-roster-user-chatty ((,class (:foreground ,purple)))) +     (jabber-roster-user-error ((,class (:foreground ,red)))) +     (jabber-roster-user-offline ((,class (:foreground ,comment)))) + +     (jabber-rare-time-face ((,class (:foreground ,comment)))) +     (jabber-activity-face ((,class (:foreground ,purple)))) +     (jabber-activity-personal-face ((,class (:foreground ,aqua)))) + +     ;; Gnus +     (gnus-cite-1 ((,class (:inherit outline-1 :foreground nil)))) +     (gnus-cite-2 ((,class (:inherit outline-2 :foreground nil)))) +     (gnus-cite-3 ((,class (:inherit outline-3 :foreground nil)))) +     (gnus-cite-4 ((,class (:inherit outline-4 :foreground nil)))) +     (gnus-cite-5 ((,class (:inherit outline-5 :foreground nil)))) +     (gnus-cite-6 ((,class (:inherit outline-6 :foreground nil)))) +     (gnus-cite-7 ((,class (:inherit outline-7 :foreground nil)))) +     (gnus-cite-8 ((,class (:inherit outline-8 :foreground nil)))) +     ;; there are several more -cite- faces... +     (gnus-header-content ((,class (:inherit message-header-other)))) +     (gnus-header-subject ((,class (:inherit message-header-subject)))) +     (gnus-header-from ((,class (:inherit message-header-other-face :weight bold :foreground ,orange)))) +     (gnus-header-name ((,class (:inherit message-header-name)))) +     (gnus-button ((,class (:inherit link :foreground nil)))) +     (gnus-signature ((,class (:inherit font-lock-comment-face)))) + +     (gnus-summary-normal-unread ((,class (:foreground ,blue :weight normal)))) +     (gnus-summary-normal-read ((,class (:foreground ,foreground :weight normal)))) +     (gnus-summary-normal-ancient ((,class (:foreground ,aqua :weight normal)))) +     (gnus-summary-normal-ticked ((,class (:foreground ,orange :weight normal)))) +     (gnus-summary-low-unread ((,class (:foreground ,comment :weight normal)))) +     (gnus-summary-low-read ((,class (:foreground ,comment :weight normal)))) +     (gnus-summary-low-ancient ((,class (:foreground ,comment :weight normal)))) +     (gnus-summary-high-unread ((,class (:foreground ,yellow :weight normal)))) +     (gnus-summary-high-read ((,class (:foreground ,green :weight normal)))) +     (gnus-summary-high-ancient ((,class (:foreground ,green :weight normal)))) +     (gnus-summary-high-ticked ((,class (:foreground ,orange :weight normal)))) +     (gnus-summary-cancelled ((,class (:foreground ,red :background nil :weight normal)))) + +     (gnus-group-mail-low ((,class (:foreground ,comment)))) +     (gnus-group-mail-low-empty ((,class (:foreground ,comment)))) +     (gnus-group-mail-1 ((,class (:foreground nil :weight normal :inherit outline-1)))) +     (gnus-group-mail-2 ((,class (:foreground nil :weight normal :inherit outline-2)))) +     (gnus-group-mail-3 ((,class (:foreground nil :weight normal :inherit outline-3)))) +     (gnus-group-mail-4 ((,class (:foreground nil :weight normal :inherit outline-4)))) +     (gnus-group-mail-5 ((,class (:foreground nil :weight normal :inherit outline-5)))) +     (gnus-group-mail-6 ((,class (:foreground nil :weight normal :inherit outline-6)))) +     (gnus-group-mail-1-empty ((,class (:inherit gnus-group-mail-1 :foreground ,comment)))) +     (gnus-group-mail-2-empty ((,class (:inherit gnus-group-mail-2 :foreground ,comment)))) +     (gnus-group-mail-3-empty ((,class (:inherit gnus-group-mail-3 :foreground ,comment)))) +     (gnus-group-mail-4-empty ((,class (:inherit gnus-group-mail-4 :foreground ,comment)))) +     (gnus-group-mail-5-empty ((,class (:inherit gnus-group-mail-5 :foreground ,comment)))) +     (gnus-group-mail-6-empty ((,class (:inherit gnus-group-mail-6 :foreground ,comment)))) +     (gnus-group-news-1 ((,class (:foreground nil :weight normal :inherit outline-5)))) +     (gnus-group-news-2 ((,class (:foreground nil :weight normal :inherit outline-6)))) +     (gnus-group-news-3 ((,class (:foreground nil :weight normal :inherit outline-7)))) +     (gnus-group-news-4 ((,class (:foreground nil :weight normal :inherit outline-8)))) +     (gnus-group-news-5 ((,class (:foreground nil :weight normal :inherit outline-1)))) +     (gnus-group-news-6 ((,class (:foreground nil :weight normal :inherit outline-2)))) +     (gnus-group-news-1-empty ((,class (:inherit gnus-group-news-1 :foreground ,comment)))) +     (gnus-group-news-2-empty ((,class (:inherit gnus-group-news-2 :foreground ,comment)))) +     (gnus-group-news-3-empty ((,class (:inherit gnus-group-news-3 :foreground ,comment)))) +     (gnus-group-news-4-empty ((,class (:inherit gnus-group-news-4 :foreground ,comment)))) +     (gnus-group-news-5-empty ((,class (:inherit gnus-group-news-5 :foreground ,comment)))) +     (gnus-group-news-6-empty ((,class (:inherit gnus-group-news-6 :foreground ,comment)))) + +     (erc-direct-msg-face ((,class (:foreground ,orange)))) +     (erc-error-face ((,class (:foreground ,red)))) +     (erc-header-face ((,class (:foreground ,foreground :background ,selection)))) +     (erc-input-face ((,class (:foreground ,green)))) +     (erc-keyword-face ((,class (:foreground ,yellow)))) +     (erc-current-nick-face ((,class (:foreground ,green)))) +     (erc-my-nick-face ((,class (:foreground ,green)))) +     (erc-nick-default-face ((,class (:weight normal :foreground ,purple)))) +     (erc-nick-msg-face ((,class (:weight normal :foreground ,yellow)))) +     (erc-notice-face ((,class (:foreground ,comment)))) +     (erc-pal-face ((,class (:foreground ,orange)))) +     (erc-prompt-face ((,class (:foreground ,blue)))) +     (erc-timestamp-face ((,class (:foreground ,aqua)))) + +     (custom-variable-tag ((,class (:foreground ,blue)))) +     (custom-group-tag ((,class (:foreground ,blue)))) +     (custom-state ((,class (:foreground ,green)))) +     ))) + +(defmacro color-theme-tomorrow--frame-parameter-specs () +  "Return a backquote which defines a list of frame parameter specs. + +These are required by color-theme's `color-theme-install', but +not by the new `deftheme' mechanism. It expects to be evaluated +in a scope in which the various color names to which it refers +are bound." +  (quote +   `(((background-color . ,background) +      (background-mode . light) +      (border-color . ,foreground) +      (cursor-color . ,purple) +      (foreground-color . ,foreground) +      (mouse-color . ,aqua))))) + +(defun color-theme-tomorrow--theme-name (mode) +  (intern (format "tomorrow-%s" (symbol-name mode)))) + +(defmacro color-theme-tomorrow--define-theme (mode) +  "Define a theme for the tomorrow variant `MODE'." +  (let ((name (color-theme-tomorrow--theme-name mode)) +        (doc (format "tomorrow-%s" mode))) +    `(progn +       (deftheme ,name ,doc) +       (color-theme-tomorrow--with-colors +        ',mode +        (apply 'custom-theme-set-faces ',name +               (color-theme-tomorrow--face-specs)) +        (custom-theme-set-variables +         ',name +         `(fci-rule-color ,current-line) +         `(ansi-color-names-vector (vector ,foreground ,red ,green ,yellow ,blue ,purple ,aqua ,background)) +         '(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold]))) +       (provide-theme ',name)))) + + +(defun color-theme-tomorrow-real (mode) +  "Apply the tomorrow variant theme." +  (if (fboundp 'load-theme) +      (let ((name (color-theme-tomorrow--theme-name mode))) +        (if (> emacs-major-version 23) +            (load-theme name t) +          (load-theme name))) +    (progn +      (require 'color-theme) +      (color-theme-tomorrow--with-colors +       mode +       (color-theme-install +        `(,(intern (concat "color-theme-tomorrow-" (symbol-name mode))) +          ,@(color-theme-tomorrow--frame-parameter-specs) +          ,@(color-theme-tomorrow--face-specs))) +       ;; ansi-color - comint and other modes that handle terminal color escape sequences +       (setq ansi-color-names-vector (vector foreground red green yellow blue purple aqua background)) +       (setq ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold]))))) + +;;;###autoload +(when (boundp 'custom-theme-load-path) +  (add-to-list 'custom-theme-load-path +               (file-name-as-directory (file-name-directory load-file-name)))) + +;;;###autoload +(defun color-theme-tomorrow-night () +  (interactive) +  (color-theme-tomorrow-real 'night)) + +;;;###autoload +(defun color-theme-tomorrow () +  (interactive) +  (color-theme-tomorrow-real 'day)) + +;;;###autoload +(defun color-theme-tomorrow-night-bright () +  (interactive) +  (color-theme-tomorrow-real 'night-bright)) + +;;;###autoload +(defun color-theme-tomorrow-night-eighties () +  (interactive) +  (color-theme-tomorrow-real 'night-eighties)) + +;;;###autoload +(defun color-theme-tomorrow-night-blue () +  (interactive) +  (color-theme-tomorrow-real 'night-blue)) + + +(provide 'color-theme-tomorrow) + +;; Local Variables: +;; byte-compile-warnings: (not cl-functions) +;; End: + +;;; color-theme-tomorrow.el ends here diff --git a/emacs/init.el b/emacs/init.el index 8a49306..dc9dead 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -3,13 +3,9 @@   ;; 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 (sanityinc-tomorrow-night))) - '(custom-safe-themes -   (quote -    ("06f0b439b62164c6f8f84fdda32b62fb50b6d00e8b01c2208e55543a6337433a" default)))   '(package-selected-packages     (quote -    (helm-swoop evil-leader helm spaceline evil use-package)))) +    (helm-flyspell flycheck which-key helm-swoop evil-leader helm spaceline evil use-package))))  (custom-set-faces   ;; custom-set-faces was added by Custom.   ;; If you edit it by hand, you could mess it up, so be careful. @@ -25,6 +21,8 @@   (package-refresh-contents)   (package-install 'use-package)) +;; packages --------------------------------------------------------------------------------------- +  ;; evil  (use-package evil-leader    :ensure t @@ -37,6 +35,11 @@    (modify-syntax-entry ?_ "w")    ) +;; flycheck +(use-package flycheck +  :ensure t +  :init (global-flycheck-mode)) +  ;; helm  (use-package helm    :ensure t @@ -45,6 +48,10 @@    (define-key helm-map (kbd "<tab>") #'helm-execute-persistent-action)    (define-key helm-map (kbd "C-z") #'helm-select-action)    ) +(use-package helm-flyspell +  :ensure t +  :init (flyspell-mode) +  )  (use-package helm-swoop    :ensure t    ) @@ -71,13 +78,105 @@  (setq powerline-default-separator 'bar)  (spaceline-emacs-theme) -;; theme +;; which-key +(use-package which-key +  :ensure t +  :config +  (setq which-key-popup-type 'minibuffer) +  (setq which-key-allow-evil-operators t) +  ) +(which-key-mode) + +;; theme ------------------------------------------------------------------------------------------ +  (menu-bar-mode -1)  (tool-bar-mode -1)  (toggle-scroll-bar -1) -(color-theme-sanityinc-tomorrow-night) +;; TODO: color theme + +(setq-default left-margin-width 0 right-margin-width 0) -;; keybindings +(load-file "~/source/dotfiles/emacs/color-theme-tomorrow.el") +(color-theme-tomorrow-night) +(set-face-attribute 'helm-selection nil  +                    :background "#373b41" +                    :foreground "#c5c8c6") + +;;; functions ------------------------------------------------------------------------------------- + +(defun flyspell-goto-previous-error (arg) +  "Go to arg previous spelling error." +  (interactive "p") +  (while (not (= 0 arg)) +    (let ((pos (point)) +          (min (point-min))) +      (if (and (eq (current-buffer) flyspell-old-buffer-error) +               (eq pos flyspell-old-pos-error)) +          (progn +            (if (= flyspell-old-pos-error min) +                ;; goto beginning of buffer +                (progn +                  (message "Restarting from end of buffer") +                  (goto-char (point-max))) +              (backward-word 1)) +            (setq pos (point)))) +      ;; seek the next error +      (while (and (> pos min) +                  (let ((ovs (overlays-at pos)) +                        (r '())) +                    (while (and (not r) (consp ovs)) +                      (if (flyspell-overlay-p (car ovs)) +                          (setq r t) +                        (setq ovs (cdr ovs)))) +                    (not r))) +        (backward-word 1) +        (setq pos (point))) +      ;; save the current location for next invocation +      (setq arg (1- arg)) +      (setq flyspell-old-pos-error pos) +      (setq flyspell-old-buffer-error (current-buffer)) +      (goto-char pos) +      (if (= pos min) +          (progn +            (message "No more miss-spelled word!") +            (setq arg 0)))))) + +(defun check-previous-spelling-error () +  "Jump to previous spelling error and correct it" +  (interactive) +  (push-mark-no-activate) +  (flyspell-goto-previous-error 1) +  (call-interactively 'helm-flyspell-correct)) + +(defun check-next-spelling-error () +  "Jump to next spelling error and correct it" +  (interactive) +  (push-mark-no-activate) +  (flyspell-buffer) +  (flyspell-goto-next-error) +  (call-interactively 'helm-flyspell-correct)) + +(defun push-mark-no-activate () +  "Pushes `point' to `mark-ring' and does not activate the region + Equivalent to \\[set-mark-command] when \\[transient-mark-mode] is disabled" +  (interactive) +  (push-mark (point) t nil) +  (message "Pushed mark to ring")) + +;;; hooks ----------------------------------------------------------------------------------------- + +(add-hook 'text-mode-hook 'flyspell-mode) + +;; keybindings ------------------------------------------------------------------------------------ + +(evil-leader/set-key "b" 'org-brain-visualize)  (evil-leader/set-key "f" 'helm-find-files) +(evil-leader/set-key "j" 'dired-jump) +(evil-leader/set-key "k" 'kill-buffer)  (evil-leader/set-key "m" 'helm-mini) -(evil-leader/set-key "b" 'org-brain-visualize) +(evil-leader/set-key "q" 'save-buffers-kill-terminal) +(evil-leader/set-key "s" 'check-next-spelling-error) +(evil-leader/set-key "t" 'color-theme-tomorrow-night) +(evil-leader/set-key "T" 'color-theme-tomorrow) +(evil-leader/set-key "x" 'helm-M-x) +(evil-leader/set-key "," 'other-window) diff --git a/emacs/tomorrow-day-theme.el b/emacs/tomorrow-day-theme.el new file mode 100644 index 0000000..58761dd --- /dev/null +++ b/emacs/tomorrow-day-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme day) diff --git a/emacs/tomorrow-night-blue-theme.el b/emacs/tomorrow-night-blue-theme.el new file mode 100644 index 0000000..32ffdde --- /dev/null +++ b/emacs/tomorrow-night-blue-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-blue) diff --git a/emacs/tomorrow-night-bright-theme.el b/emacs/tomorrow-night-bright-theme.el new file mode 100644 index 0000000..c1be97e --- /dev/null +++ b/emacs/tomorrow-night-bright-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-bright) diff --git a/emacs/tomorrow-night-eighties-theme.el b/emacs/tomorrow-night-eighties-theme.el new file mode 100644 index 0000000..4818341 --- /dev/null +++ b/emacs/tomorrow-night-eighties-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night-eighties) diff --git a/emacs/tomorrow-night-theme.el b/emacs/tomorrow-night-theme.el new file mode 100644 index 0000000..67c9a25 --- /dev/null +++ b/emacs/tomorrow-night-theme.el @@ -0,0 +1,2 @@ +(require 'color-theme-tomorrow) +(color-theme-tomorrow--define-theme night) | 
