solarized-emacs-2.0.4/0000755000175000017500000000000014533276022014435 5ustar dogslegdogslegsolarized-emacs-2.0.4/solarized-faces.el0000644000175000017500000040506414533276022020043 0ustar dogslegdogsleg;;; solarized-faces.el --- the faces definitions for solarized theme -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; Author: Bozhidar Batsov ;; Author: Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; the faces definitions for solarized theme ;;; Code: (defvar solarized-definition ;;; Color palette '( ;;; Theme Faces (custom-theme-set-faces theme-name ;;;; Built-in ;;;;; basic faces '(button ((t (:underline t)))) `(cursor ((,class (:foreground ,base03 :background ,base0 :inverse-video t)))) `(default ((,class (:foreground ,base0 :background ,base03)))) `(error ((,class (:foreground ,orange)))) `(escape-glyph ((,class (:foreground ,violet)))) `(fringe ((,class (:foreground ,s-fringe-fg :background ,s-fringe-bg)))) `(header-line ((,class (:inverse-video unspecified :overline nil :underline ,s-header-line-underline :foreground ,s-header-line-fg :background ,s-header-line-bg :box (:line-width 2 :color ,s-header-line-bg :style nil))))) `(highlight ((,class (:background ,base02)))) `(lazy-highlight ((,class (:foreground ,base03 :background ,yellow :weight normal)))) `(link ((,class (:foreground ,yellow :underline t :weight bold)))) `(link-visited ((,class (:foreground ,yellow :underline t :weight normal)))) `(match ((,class (:background ,base02 :foreground ,base1 :weight bold)))) `(menu ((,class (:foreground ,base0 :background ,base03)))) `(help-key-binding ((,class (:box (:line-width (1 . -1) :color ,s-line :style nil) :background ,base02)))) `(minibuffer-prompt ((,class (:foreground ,base0)))) `(mode-line ((,class (:inverse-video unspecified :overline ,s-mode-line-bg :underline ,s-mode-line-underline :foreground ,s-mode-line-fg :background ,s-mode-line-bg :box (:line-width 1 :color ,s-mode-line-bg :style nil))))) `(mode-line-buffer-id ((,class (:foreground ,s-mode-line-buffer-id-fg :weight bold)))) `(mode-line-inactive ((,class (:inverse-video unspecified :overline ,s-mode-line-inactive-bc :underline ,s-mode-line-underline :foreground ,s-mode-line-inactive-fg :background ,s-mode-line-inactive-bg :box (:line-width 1 :color ,s-mode-line-inactive-bg :style nil))))) `(region ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :foreground ,base03 :background ,base1)))) `(secondary-selection ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) `(shadow ((,class (:foreground ,base01)))) `(success ((,class (:foreground ,green )))) `(trailing-whitespace ((,class (:background ,red)))) `(vertical-border ((,class (:foreground ,s-line)))) `(warning ((,class (:foreground ,yellow )))) `(next-error ((,class (:foreground ,magenta-2fg :background ,magenta-2bg :weight normal)))) ;;;;; ansi-color `(ansi-color-black ((,class (:foreground ,base1 :background ,base1)))) `(ansi-color-red ((,class (:foreground ,red :background ,red)))) `(ansi-color-green ((,class (:foreground ,green :background ,green)))) `(ansi-color-yellow ((,class (:foreground ,yellow :background ,yellow)))) `(ansi-color-blue ((,class (:foreground ,blue :background ,blue)))) `(ansi-color-magenta ((,class (:foreground ,magenta :background ,magenta)))) `(ansi-color-cyan ((,class (:foreground ,cyan :background ,cyan)))) `(ansi-color-bright-black ((,class (:foreground ,base0 :background ,base0)))) `(ansi-color-bright-red ((,class (:foreground ,red-l :background ,red-l)))) `(ansi-color-bright-green ((,class (:foreground ,green-l :background ,green-l)))) `(ansi-color-bright-yellow ((,class (:foreground ,yellow-l :background ,yellow-l)))) `(ansi-color-bright-blue ((,class (:foreground ,blue-l :background ,blue-l)))) `(ansi-color-bright-magenta ((,class (:foreground ,magenta-l :background ,magenta-l)))) `(ansi-color-bright-cyan ((,class (:foreground ,cyan-l :background ,cyan-l)))) ;;;;; compilation `(compilation-column-face ((,class (:foreground ,cyan :underline nil)))) `(compilation-column-number ((,class (:inherit font-lock-doc-face :foreground ,cyan :underline nil)))) `(compilation-enter-directory-face ((,class (:foreground ,green :underline nil)))) `(compilation-error ((,class (:inherit error :underline nil)))) `(compilation-error-face ((,class (:foreground ,red : :underline nil)))) `(compilation-face ((,class (:foreground ,base0 :underline nil)))) `(compilation-info ((,class (:foreground ,base01 :underline nil :bold nil)))) `(compilation-info-face ((,class (:foreground ,blue :underline nil)))) `(compilation-leave-directory-face ((,class (:foreground ,green :underline nil)))) `(compilation-line-face ((,class (:foreground ,green :underline nil)))) `(compilation-line-number ((,class (:foreground ,green :underline nil)))) `(compilation-warning ((,class (:inherit warning :underline nil)))) `(compilation-warning-face ((,class (:foreground ,yellow :weight normal :underline nil)))) `(compilation-mode-line-exit ((,class (:foreground unspecified :weight bold)))) `(compilation-mode-line-fail ((,class (:inherit compilation-error :foreground ,red :weight bold)))) `(compilation-mode-line-run ((,class (:foreground ,orange :weight bold)))) ;;;;; completions `(completions-annotations ((t (:foreground ,base01)))) `(completions-common-part ((t (:foreground ,blue)))) ;;;;; cua `(cua-global-mark ((,class (:background ,yellow :foreground ,base03)))) `(cua-rectangle ((,class (:inherit region :background ,magenta :foreground ,base03)))) `(cua-rectangle-noselect ((,class (:inherit region :background ,base02 :foreground ,base01)))) ;;;;; debbugs `(debbugs-gnu-archived ((,class (:inverse-video t)))) `(debbugs-gnu-done ((,class (:foreground ,base01)))) `(debbugs-gnu-handled ((,class (:foreground ,green)))) `(debbugs-gnu-new ((,class (:foreground ,blue)))) `(debbugs-gnu-pending ((,class (:foreground ,cyan)))) `(debbugs-gnu-stale ((,class (:foreground ,yellow)))) ;@deprecated0.20 `(debbugs-gnu-stale-1 ((,class (:foreground ,yellow)))) `(debbugs-gnu-stale-2 ((,class (:foreground ,yellow-1fg)))) `(debbugs-gnu-stale-3 ((,class (:foreground ,yellow-2fg)))) `(debbugs-gnu-stale-4 ((,class (:foreground ,orange-1fg)))) `(debbugs-gnu-stale-5 ((,class (:foreground ,orange-2fg)))) `(debbugs-gnu-tagged ((,class (:foreground ,base1 :weight bold)))) ;;;;; diary `(diary ((,class (:foreground ,yellow)))) ;;;;; dired `(dired-directory ((,class (:foreground ,blue :weight normal)))) `(dired-flagged ((,class (:foreground ,red)))) `(dired-header ((,class (:foreground ,base03 :background ,blue)))) `(dired-ignored ((,class (:inherit shadow)))) `(dired-mark ((,class (:foreground ,yellow :weight bold)))) `(dired-marked ((,class (:foreground ,magenta :weight bold)))) `(dired-perm-write ((,class (:foreground ,base0 :underline t)))) `(dired-symlink ((,class (:foreground ,cyan :weight normal :slant italic)))) `(dired-warning ((,class (:foreground ,orange :underline t)))) ;;;;; dired-async `(dired-async-message ((,light-class (:background ,yellow-l )) (,dark-class (:background ,yellow )))) `(dired-async-mode-message ((,light-class (:background ,red-l)) (,dark-class (:background ,red)))) ;;;;; dired-efap `(dired-efap-face ((,class (:box nil :background ,base02 :foreground ,base1 :underline ,s-line :weight bold)))) ;;;;; display-fill-column-indicator `(fill-column-indicator ((,class :foreground ,base02 :weight semilight))) ;;;;; dropdown `(dropdown-list-face ((,class (:background ,base02 :foreground ,cyan)))) `(dropdown-list-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc)))) ;;;;; ecb `(ecb-default-highlight-face ((,class (:background ,blue :foreground ,base03)))) `(ecb-history-bucket-node-dir-soure-path-face ((,class (:inherit ecb-history-bucket-node-face :foreground ,yellow)))) `(ecb-source-in-directories-buffer-face ((,class (:inherit ecb-directories-general-face :foreground ,base0)))) `(ecb-history-dead-buffer-face ((,class (:inherit ecb-history-general-face :foreground ,base01)))) `(ecb-directory-not-accessible-face ((,class (:inherit ecb-directories-general-face :foreground ,base01)))) `(ecb-bucket-node-face ((,class (:inherit ecb-default-general-face :weight normal :foreground ,blue)))) `(ecb-tag-header-face ((,class (:background ,base02)))) `(ecb-analyse-bucket-element-face ((,class (:inherit ecb-analyse-general-face :foreground ,green)))) `(ecb-directories-general-face ((,class (:inherit ecb-default-general-face :height 1.0)))) `(ecb-method-non-semantic-face ((,class (:inherit ecb-methods-general-face :foreground ,cyan)))) `(ecb-mode-line-prefix-face ((,class (:foreground ,green)))) `(ecb-tree-guide-line-face ((,class (:inherit ecb-default-general-face :foreground ,base02 :height 1.0)))) ;;;;; ee `(ee-bookmarked ((,class (:foreground ,base1)))) `(ee-category ((,class (:foreground ,blue)))) `(ee-link ((,class (:inherit link)))) `(ee-link-visited ((,class (:inherit link-visited)))) `(ee-marked ((,class (:foreground ,magenta :weight bold)))) `(ee-omitted ((,class (:foreground ,base01)))) `(ee-shadow ((,class (:inherit shadow)))) ;;;;; enh-ruby-mode `(enh-ruby-string-delimiter-face ((,class (:foreground ,yellow)))) `(enh-ruby-heredoc-delimiter-face ((,class (:inherit enh-ruby-string-delimiter-face)))) `(enh-ruby-regexp-delimiter-face ((,class (:inherit enh-ruby-string-delimiter-face)))) `(enh-ruby-op-face ((,class (:foreground ,base0)))) `(erm-syn-errline ((,class (:inherit flymake-errline)))) `(erm-syn-warnline ((,class (:inherit flymake-warnline)))) ;;;;; grep `(grep-context-face ((,class (:foreground ,base0)))) `(grep-error-face ((,class (:foreground ,red :weight bold :underline t)))) `(grep-hit-face ((,class (:foreground ,blue)))) `(grep-match-face ((,class (:foreground ,orange :weight bold)))) ;;;;; isearch `(isearch ((,class (:foreground ,base03 :background ,magenta :weight normal)))) `(isearch-fail ((,class (:foreground ,red :background ,base03 :bold t)))) ;;;;; man `(Man-overstrike ((,class (:foreground ,blue :weight bold)))) `(Man-reverse ((,class (:foreground ,orange)))) `(Man-underline ((,class (:foreground ,green :underline t)))) ;;;;; pulse `(pulse-highlight-start-face ((,light-class (:background ,(solarized-color-blend yellow base03 0.4))) (,dark-class (:background ,(solarized-color-blend cyan base03 0.4))))) ;;;;; wid-edit `(widget-field ((,class (:background ,base02)))) ;;;;; font lock `(font-lock-builtin-face ((,class (:foreground ,base0 :weight ,s-maybe-bold :slant ,s-maybe-italic)))) `(font-lock-comment-delimiter-face ((,class (:foreground ,base01 :slant ,s-maybe-italic)))) `(font-lock-comment-face ((,class (:foreground ,base01)))) `(font-lock-constant-face ((,class (:foreground ,blue :weight bold)))) `(font-lock-doc-face ((,class (:foreground ,(if solarized-distinct-doc-face violet cyan) :slant ,s-maybe-italic)))) `(font-lock-function-name-face ((,class (:foreground ,blue)))) `(font-lock-keyword-face ((,class (:foreground ,green :weight ,s-maybe-bold)))) `(font-lock-negation-char-face ((,class (:foreground ,yellow :weight bold)))) `(font-lock-preprocessor-face ((,class (:foreground ,blue)))) `(font-lock-regexp-grouping-construct ((,class (:foreground ,yellow :weight bold)))) `(font-lock-regexp-grouping-backslash ((,class (:foreground ,green :weight bold)))) `(font-lock-string-face ((,class (:foreground ,cyan)))) `(font-lock-type-face ((,class (:foreground ,yellow)))) `(font-lock-variable-name-face ((,class (:foreground ,blue)))) `(font-lock-warning-face ((,class (:inherit error :weight bold)))) `(c-annotation-face ((,class (:inherit font-lock-constant-face)))) ;;;; Third-party ;;;;; ace-jump-mode `(ace-jump-face-background ((,class (:foreground ,base01 :background ,base03 :inverse-video nil)))) `(ace-jump-face-foreground ((,class (:foreground ,red :background ,base03 :inverse-video nil :weight bold)))) ;;;;; all-the-icons, all-the-icons-dired, spaceline-all-the-icons `(spaceline-all-the-icons-info-face ((,class (:foreground ,blue)))) `(spaceline-all-the-icons-sunrise-face ((,class (:foreground ,yellow)))) `(spaceline-all-the-icons-sunrise-face ((,class (:foreground ,orange)))) `(all-the-icons-red ((,class (:foreground ,red)))) `(all-the-icons-lred ((,class (:foreground ,red-lc)))) `(all-the-icons-dred ((,class (:foreground ,red-hc)))) `(all-the-icons-red-alt ((,class (:foreground ,red)))) `(all-the-icons-green ((,class (:foreground ,green)))) `(all-the-icons-lgreen ((,class (:foreground ,green-lc)))) `(all-the-icons-dgreen ((,class (:foreground ,green-hc)))) `(all-the-icons-yellow ((,class (:foreground ,yellow)))) `(all-the-icons-lyellow ((,class (:foreground ,yellow-lc)))) `(all-the-icons-dyellow ((,class (:foreground ,yellow-hc)))) `(all-the-icons-blue ((,class (:foreground ,blue)))) `(all-the-icons-blue-alt ((,class (:foreground ,blue)))) `(all-the-icons-lblue ((,class (:foreground ,blue-lc)))) `(all-the-icons-dblue ((,class (:foreground ,blue-hc)))) `(all-the-icons-maroon ((,class (:foreground ,magenta-d)))) `(all-the-icons-lmaroon ((,class (:foreground ,magenta-d)))) `(all-the-icons-dmaroon ((,class (:foreground ,magenta-d)))) `(all-the-icons-purple ((,class (:foreground ,violet)))) `(all-the-icons-lpurple ((,class (:foreground ,violet-lc)))) `(all-the-icons-dpurple ((,class (:foreground ,violet-hc)))) `(all-the-icons-orange ((,class (:foreground ,orange)))) `(all-the-icons-lorange ((,class (:foreground ,orange-lc)))) `(all-the-icons-dorange ((,class (:foreground ,orange-hc)))) `(all-the-icons-cyan ((,class (:foreground ,cyan)))) `(all-the-icons-cyan-alt ((,class (:foreground ,cyan)))) `(all-the-icons-lcyan ((,class (:foreground ,cyan-lc)))) `(all-the-icons-dcyan ((,class (:foreground ,cyan-hc)))) `(all-the-icons-pink ((,class (:foreground ,magenta)))) `(all-the-icons-lpink ((,class (:foreground ,magenta-lc)))) `(all-the-icons-dpink ((,class (:foreground ,magenta-hc)))) `(all-the-icons-silver ((,class (:foreground ,base0)))) `(all-the-icons-lsilver ((,class (:foreground ,base01)))) `(all-the-icons-dsilver ((,class (:foreground ,base1)))) ;;;;; android-mode `(android-mode-debug-face ((,class (:foreground ,green)))) `(android-mode-error-face ((,class (:foreground ,orange :weight bold)))) `(android-mode-info-face ((,class (:foreground ,base0)))) `(android-mode-verbose-face ((,class (:foreground ,base01)))) `(android-mode-warning-face ((,class (:foreground ,yellow)))) ;;;;; anzu-mode `(anzu-mode-line ((,class (:foreground ,yellow :weight bold)))) ;;;;; auctex `(font-latex-bold-face ((,class (:inherit bold :foreground ,base1)))) `(font-latex-doctex-documentation-face ((,class (:background unspecified)))) `(font-latex-doctex-preprocessor-face ((,class (:inherit (font-latex-doctex-documentation-face font-lock-builtin-face font-lock-preprocessor-face))))) `(font-latex-italic-face ((,class (:inherit italic :foreground ,base1)))) `(font-latex-math-face ((,class (:foreground ,violet)))) `(font-latex-sectioning-0-face ((,class (:inherit font-latex-sectioning-1-face :height ,solarized-height-plus-1)))) `(font-latex-sectioning-1-face ((,class (:inherit font-latex-sectioning-2-face :height ,solarized-height-plus-1)))) `(font-latex-sectioning-2-face ((,class (:inherit font-latex-sectioning-3-face :height ,solarized-height-plus-1)))) `(font-latex-sectioning-3-face ((,class (:inherit font-latex-sectioning-4-face :height ,solarized-height-plus-1)))) `(font-latex-sectioning-4-face ((,class (:inherit font-latex-sectioning-5-face :height ,solarized-height-plus-1)))) `(font-latex-sectioning-5-face ((,class (:inherit ,s-variable-pitch :foreground ,yellow :weight bold)))) `(font-latex-sedate-face ((,class (:foreground ,base1)))) `(font-latex-slide-title-face ((,class (:inherit (,s-variable-pitch font-lock-type-face) :weight bold :height ,solarized-height-plus-3)))) `(font-latex-string-face ((,class (:foreground ,cyan)))) `(font-latex-subscript-face ((,class (:height ,solarized-height-minus-1)))) `(font-latex-superscript-face ((,class (:height ,solarized-height-minus-1)))) `(font-latex-verbatim-face ((,class (:inherit fixed-pitch :foreground ,base0 :slant italic)))) `(font-latex-warning-face ((,class (:inherit bold :foreground ,orange)))) ;;;;; auto-complete `(ac-candidate-face ((,class (:background ,base02 :foreground ,cyan)))) `(ac-selection-face ((,class (:background ,cyan-lc :foreground ,cyan-hc)))) `(ac-candidate-mouse-face ((,class (:background ,cyan-hc :foreground ,cyan-lc)))) `(ac-completion-face ((,class (:foreground ,base1 :underline t)))) `(ac-gtags-candidate-face ((,class (:background ,base02 :foreground ,blue)))) `(ac-gtags-selection-face ((,class (:background ,blue-lc :foreground ,blue-hc)))) `(ac-yasnippet-candidate-face ((,class (:background ,base02 :foreground ,yellow)))) `(ac-yasnippet-selection-face ((,class (:background ,yellow-lc :foreground ,yellow-hc)))) ;;;;; auto-dim-other-buffers `(auto-dim-other-buffers-face ((,class (:background ,base02)))) ;;;;; auto-highlight-symbol `(ahs-definition-face ((,class (:foreground ,magenta :background unspecified :slant normal)))) `(ahs-definition-face-unfocused ((,class (:foreground ,magenta :background unspecified :slant normal)))) `(ahs-edit-mode-face ((,class (:foreground ,base03 :background ,magenta)))) `(ahs-face ((,class (:foreground ,magenta :background unspecified)))) `(ahs-face-unfocused ((,class (:foreground ,magenta :background unspecified)))) `(ahs-plugin-bod-face ((,class (:foreground ,magenta :background unspecified )))) `(ahs-plugin-default-face ((,class (:foreground ,magenta :background unspecified)))) `(ahs-plugin-default-face-unfocused ((,class (:foreground ,magenta :background unspecified)))) `(ahs-plugin-whole-buffer-face ((,class (:foreground ,magenta :background unspecified)))) `(ahs-warning-face ((,class (:foreground ,red :weight bold)))) ;;;;; avy-mode `(avy-lead-face ((,class (:inherit isearch)))) `(avy-lead-face-0 ((,class (:inherit isearch :background ,violet)))) `(avy-lead-face-1 ((,class (:inherit isearch :background ,orange)))) `(avy-lead-face-2 ((,class (:inherit isearch :background ,cyan)))) `(avy-background-face ((,class (:inherit font-lock-comment-face)))) ;;;;; bm `(bm-face ((,class (:overline ,base0)))) `(bm-fringe-face ((,class (:overline ,base0)))) `(bm-fringe-persistent-face ((,class (:overline ,base0)))) `(bm-persistent-face ((,class (:overline ,base0)))) ;;;;; calfw `(cfw:face-day-title ((,class (:background ,base02)))) `(cfw:face-annotation ((,class (:inherit cfw:face-day-title :foreground ,yellow)))) `(cfw:face-default-content ((,class (:foreground ,green)))) `(cfw:face-default-day ((,class (:inherit cfw:face-day-title :weight bold)))) `(cfw:face-disable ((,class (:inherit cfw:face-day-title :foreground ,base01)))) `(cfw:face-grid ((,class (:foreground ,base01)))) `(cfw:face-header ((,class (:foreground ,blue-hc :background ,blue-lc :weight bold)))) `(cfw:face-holiday ((,class (:background nil :foreground ,red :weight bold)))) `(cfw:face-periods ((,class (:foreground ,magenta)))) `(cfw:face-select ((,class (:background ,magenta-lc :foreground ,magenta-hc)))) `(cfw:face-saturday ((,class (:foreground ,cyan-hc :background ,cyan-lc)))) `(cfw:face-sunday ((,class (:foreground ,red-hc :background ,red-lc :weight bold)))) `(cfw:face-title ((,class (:inherit ,s-variable-pitch :foreground ,yellow :weight bold :height ,solarized-height-plus-4)))) `(cfw:face-today ((,class (:weight bold :background ,base02 :foreground nil)))) `(cfw:face-today-title ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold)))) `(cfw:face-toolbar ((,class (:background ,base02 :foreground ,base0)))) `(cfw:face-toolbar-button-off ((,class (:background ,yellow-lc :foreground ,yellow-hc :weight bold)))) `(cfw:face-toolbar-button-on ((,class (:background ,yellow-hc :foreground ,yellow-lc :weight bold)))) ;;;;; cider `(cider-result-overlay-face ((t (:background unspecified)))) `(cider-enlightened-face ((t (:box (:color ,magenta :line-width -1))))) `(cider-enlightened-local-face ((t (:weight bold :foreground ,green-l)))) `(cider-deprecated-face ((t (:underline (:color ,yellow))))) `(cider-instrumented-face ((t (:box (:color ,red-l :line-width -1))))) `(cider-traced-face ((t (:box (:color ,cyan :line-width -1))))) `(cider-fringe-good-face ((t (:foreground ,green-l)))) ;;;;; cider-repl-mode `(cider-repl-err-output-face ((t (:inherit ,font-lock-warning-face :underline nil)))) ;;;;; cider-test-mode `(cider-test-failure-face ((t (:foreground ,orange :weight bold :underline t)))) `(cider-test-error-face ((t (:foreground ,red :weight bold :underline t)))) `(cider-test-success-face ((t (:foreground ,green :weight bold :underline t)))) ;;;;; coffee `(coffee-mode-class-name ((,class (:foreground ,yellow :weight bold)))) `(coffee-mode-function-param ((,class (:foreground ,violet :slant italic)))) ;;;;; column-enforce-mode `(column-enforce-face ((,class (:background unspecified :foreground ,magenta :inverse-video unspecified)))) ;;;;; col-highlight `(col-highlight ((,class (:background ,base02)))) ;;;;; company-box `(company-box-scrollbar ((,class (:background ,base01)))) ;;;;; company-mode `(company-echo ((,class nil))) `(company-echo-common ((,class (:background ,red)))) `(company-preview ((,class (:background ,base02 :foreground ,base1)))) `(company-preview-common ((,class (:foreground ,base1)))) `(company-preview-search ((,class (:foreground ,magenta)))) `(company-scrollbar-bg ((,class (:background ,base02 :foreground ,cyan)))) `(company-scrollbar-fg ((,class (:foreground ,base03 :background ,base0)))) `(company-template-field ((,class (:background ,yellow :foreground ,base02)))) `(company-tooltip ((,class (:foreground ,base1 :background ,base02)))) `(company-tooltip-annotation ((,class (:foreground ,cyan)))) `(company-tooltip-annotation-selection ((,class (:foreground ,cyan)))) `(company-tooltip-common ((,class (:foreground ,base0)))) `(company-tooltip-common-selection ((,class (:weight bold)))) `(company-tooltip-mouse ((,class (:background ,cyan-2bg :foreground ,cyan-2fg)))) `(company-tooltip-search ((,class (:foreground ,magenta)))) `(company-tooltip-search-selection ((,class (:foreground ,magenta :weight bold)))) `(company-tooltip-selection ((,class (:weight bold)))) ;;;;; corfu `(corfu-default ((,class (:foreground ,base1 :background ,base02)))) `(corfu-current ((,class (:inherit corfu-default :weight bold :inverse-video t)))) `(corfu-bar ((,class (:background ,base0)))) `(corfu-border ((,class (:background ,base02)))) ;;;;; consult `(consult-preview-insertion ((,class (:background ,base02)))) `(consult-preview-line ((,class (:background ,base02)))) ;;;;; cperl-mode `(cperl-array-face ((,class (:background unspecified :foreground ,blue)))) `(cperl-hash-face ((,class (:background unspecified :foreground ,blue)))) `(cperl-nonoverridable-face ((,class (:foreground ,base0 :weight bold)))) ;;;;; cscope `(cscope-file-face ((,class (:foreground ,green :weight bold)))) `(cscope-function-face ((,class (:foreground ,blue)))) `(cscope-line-number-face ((,class (:foreground ,yellow)))) `(cscope-line-face ((,class (:foreground ,base0)))) `(cscope-mouse-face ((,class (:background ,blue :foreground ,base0)))) ;;;;; ctable `(ctbl:face-cell-select ((,class (:background ,base02 :foreground ,base1 :underline ,base1 :weight bold)))) `(ctbl:face-continue-bar ((,class (:background ,base02 :foreground ,yellow)))) `(ctbl:face-row-select ((,class (:background ,base02 :foreground ,base0 :underline t)))) ;;;;; custom `(custom-face-tag ((,class (:inherit ,s-variable-pitch :height ,solarized-height-plus-3 :foreground ,violet :weight normal)))) `(custom-variable-tag ((,class (:inherit ,s-variable-pitch :foreground ,cyan :height ,solarized-height-plus-3)))) `(custom-comment-tag ((,class (:foreground ,base01)))) `(custom-group-tag ((,class (:inherit ,s-variable-pitch :foreground ,blue :height ,solarized-height-plus-3)))) `(custom-group-tag-1 ((,class (:inherit ,s-variable-pitch :foreground ,red :height ,solarized-height-plus-3)))) `(custom-state ((,class (:foreground ,green)))) `(custom-button ((,class (:background ,base02 :foreground ,base1 :box (:line-width 2 :style released-button))))) `(custom-button-mouse ((,class (:background ,base01 :foreground ,base02 :box (:line-width 2 :style released-button))))) `(custom-button-pressed ((,class (:background ,base01 :foreground ,base1 :box (:line-width 2 :style pressed-button))))) `(custom-button-unraised ((,class (:inherit underline)))) `(custom-button-pressed-unraised ((,class (:inherit custom-button-unraised :foreground ,magenta)))) ;;;;; deadgrep `(deadgrep-filename-face ((,class (:foreground ,base01 :underline t)))) `(deadgrep-match-face ((,class (:background ,base02 :foreground ,base1)))) `(deadgrep-meta-face ((,class (:inherit font-lock-comment-face)))) `(deadgrep-regexp-metachar-face ((,class (:inherit font-lock-constant-face)))) `(deadgrep-search-term-face ((,class (:inherit font-lock-variable-name-face)))) ;;;;; diff `(diff-added ((,class (:background ,s-diff-B-bg :foreground ,s-diff-B-fg)))) `(diff-changed ((t nil))) `(diff-removed ((,class (:background ,s-diff-A-bg :foreground ,s-diff-A-fg)))) `(diff-refine-added ((,class (:background ,s-diff-fine-B-bg :foreground ,s-diff-fine-B-fg)))) `(diff-refine-changed ((,class (:background ,s-diff-fine-C-bg :foreground ,s-diff-fine-C-fg)))) `(diff-refine-removed ((,class (:background ,s-diff-fine-A-bg :foreground ,s-diff-fine-A-fg)))) `(diff-header ((t (:background ,s-diff-heading-bg)))) `(diff-file-header ((,class (:background ,base03 :foreground ,base0 :weight bold)))) `(diff-context ((,class :foreground ,s-diff-context-fg))) `(diff-indicator-added ((t (:foreground ,s-diffstat-added-fg)))) `(diff-indicator-changed ((t (:foreground ,s-diffstat-changed-fg)))) `(diff-indicator-removed ((t (:foreground ,s-diffstat-removed-fg)))) ;;;;; diff-hl `(diff-hl-change ((,class (:background ,s-diff-C-bg :foreground ,s-diff-C-fg)))) `(diff-hl-delete ((,class (:background ,s-diff-A-bg :foreground ,s-diff-A-fg)))) `(diff-hl-insert ((,class (:background ,s-diff-B-bg :foreground ,s-diff-B-fg)))) `(diff-hl-reverted-hunk-highlight ((,class (:background ,s-diff-Ancestor-bg :foreground ,s-diff-Ancestor-fg)))) ;;;;; ediff `(ediff-even-diff-A ((t (:background ,base02)))) `(ediff-even-diff-Ancestor ((t (:background ,base02)))) `(ediff-even-diff-B ((t (:background ,base02)))) `(ediff-even-diff-C ((t (:background ,base02)))) `(ediff-odd-diff-A ((t (:background ,base02)))) `(ediff-odd-diff-Ancestor ((t (:background ,base02)))) `(ediff-odd-diff-B ((t (:background ,base02)))) `(ediff-odd-diff-C ((t (:background ,base02)))) `(ediff-current-diff-A ((,class (:background ,s-diff-A-bg :foreground ,s-diff-A-fg)))) `(ediff-current-diff-Ancestor ((,class (:background ,s-diff-Ancestor-bg :foreground ,s-diff-Ancestor-fg)))) `(ediff-current-diff-B ((,class (:background ,s-diff-B-bg :foreground ,s-diff-B-fg)))) `(ediff-current-diff-C ((,class (:background ,s-diff-C-bg :foreground ,s-diff-C-fg)))) `(ediff-fine-diff-A ((,class (:background ,s-diff-fine-A-bg :foreground ,s-diff-fine-A-fg)))) `(ediff-fine-diff-Ancestor ((,class (:background ,s-diff-fine-Ancestor-bg :foreground ,s-diff-fine-Ancestor-fg)))) `(ediff-fine-diff-B ((,class (:background ,s-diff-fine-B-bg :foreground ,s-diff-fine-B-fg)))) `(ediff-fine-diff-C ((,class (:background ,s-diff-fine-C-bg :foreground ,s-diff-fine-C-fg)))) ;;;;; smerge `(smerge-base ((,class (:background ,s-diff-Ancestor-bg :foreground ,s-diff-Ancestor-fg)))) `(smerge-lower ((,class (:background ,s-diff-B-bg :foreground ,s-diff-B-fg)))) `(smerge-markers ((t (:background ,s-diff-heading-bg)))) `(smerge-refined-added ((,class (:background ,s-diff-fine-B-bg :foreground ,s-diff-fine-B-fg)))) `(smerge-refined-removed ((,class (:background ,s-diff-fine-A-bg :foreground ,s-diff-fine-A-fg)))) `(smerge-upper ((,class (:background ,s-diff-A-bg :foreground ,s-diff-A-fg)))) ;;;;; edts `(edts-face-error-line ((,(append '((supports :underline (:style line))) light-class) (:underline (:style line :color ,red-l) :inherit unspecified)) (,(append '((supports :underline (:style line))) dark-class) (:underline (:style line :color ,red) :inherit unspecified)) (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t)))) `(edts-face-warning-line ((,(append '((supports :underline (:style line))) light-class) (:underline (:style line :color ,yellow-l) :inherit unspecified)) (,(append '((supports :underline (:style line))) dark-class) (:underline (:style line :color ,yellow) :inherit unspecified)) (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t)))) `(edts-face-error-fringe-bitmap ((,light-class (:foreground ,red-l :background unspecified :weight bold)) (,dark-class (:foreground ,red :background unspecified :weight bold)))) `(edts-face-warning-fringe-bitmap ((,light-class (:foreground ,yellow-l :background unspecified :weight bold)) (,dark-class (:foreground ,yellow :background unspecified :weight bold)))) `(edts-face-error-mode-line ((,light-class (:background ,red-l :foreground unspecified)) (,dark-class (:background ,red :foreground unspecified)))) `(edts-face-warning-mode-line ((,light-class (:background ,yellow-l :foreground unspecified)) (,dark-class (:background ,yellow :foreground unspecified)))) ;;;;; elfeed `(elfeed-search-date-face ((,class (:foreground ,base01)))) `(elfeed-search-feed-face ((,class (:foreground ,base01)))) `(elfeed-search-tag-face ((,class (:foreground ,base0)))) `(elfeed-search-title-face ((,class (:foreground ,base0)))) ;;;;; elscreen `(elscreen-tab-background-face ((,class (:background ,base03)))) `(elscreen-tab-current-screen-face ((,class (:background ,base1 :foreground ,base03)) (t (:underline t)))) `(elscreen-tab-other-screen-face ((,class (:background ,base02 :foreground ,base01)))) `(elscreen-tab-control-face ((,class (:background ,base03 :foreground ,base0)))) ;;;;; epa `(epa-mark ((,class (:foreground ,magenta :weight bold)))) `(epa-string ((,class (:foreground ,violet)))) `(epa-validity-disabled ((,class (:inverse-video t :slant italic)))) `(epa-validity-high ((,class (:weight bold)))) `(epa-validity-low ((,class (:slant italic)))) `(epa-validity-medium ((,class (:slant italic)))) ;;;;; epc `(epc:face-title ((,class (:foreground ,blue :background ,base03 :weight normal :underline nil)))) ;;;;; erc `(erc-action-face ((,class (:inherit erc-default-face)))) `(erc-bold-face ((,class (:weight bold)))) `(erc-current-nick-face ((,class (:foreground ,blue :weight bold)))) `(erc-dangerous-host-face ((,class (:inherit font-lock-warning-face)))) `(erc-default-face ((,class (:foreground ,base0)))) `(erc-highlight-face ((,class (:inherit erc-default-face :background ,base02)))) `(erc-direct-msg-face ((,class (:inherit erc-default-face)))) `(erc-error-face ((,class (:inherit font-lock-warning-face)))) `(erc-fool-face ((,class (:inherit erc-default-face)))) `(erc-input-face ((,class (:foreground ,yellow)))) `(erc-keyword-face ((,class (:foreground ,blue :weight bold)))) `(erc-nick-default-face ((,class (:foreground ,yellow :weight bold)))) `(erc-my-nick-face ((,class (:foreground ,red :weight bold)))) `(erc-nick-msg-face ((,class (:inherit erc-default-face)))) `(erc-notice-face ((,class (:foreground ,green)))) `(erc-pal-face ((,class (:foreground ,orange :weight bold)))) `(erc-prompt-face ((,class (:foreground ,orange :background ,base03 :weight bold)))) `(erc-timestamp-face ((,class (:foreground ,green)))) `(erc-underline-face ((t (:underline t)))) ;;;;; eros `(eros-result-overlay-face ((t (:background unspecified)))) ;;;;; eshell `(eshell-prompt ((,class (:foreground ,yellow :weight bold)))) `(eshell-ls-archive ((,class (:foreground ,red :weight bold)))) `(eshell-ls-backup ((,class (:inherit font-lock-comment-face)))) `(eshell-ls-clutter ((,class (:inherit font-lock-comment-face)))) `(eshell-ls-directory ((,class (:foreground ,blue :weight bold)))) `(eshell-ls-executable ((,class (:foreground ,red :weight bold)))) `(eshell-ls-unreadable ((,class (:foreground ,base0)))) `(eshell-ls-missing ((,class (:inherit font-lock-warning-face)))) `(eshell-ls-product ((,class (:inherit font-lock-doc-face)))) `(eshell-ls-special ((,class (:foreground ,yellow :weight bold)))) `(eshell-ls-symlink ((,class (:foreground ,cyan :weight bold)))) ;;;;; evil-search-highlight-persist `(evil-search-highlight-persist-highlight-face ((,light-class (:background ,green-lc)) (,dark-class (:background ,violet-lc)))) ;;;;; fic `(fic-author-face ((,class (:background ,base03 :foreground ,orange :underline t :slant italic)))) `(fic-face ((,class (:background ,base03 :foreground ,orange :weight normal :slant italic)))) `(font-lock-fic-face ((,class (:background ,base03 :foreground ,orange :weight normal :slant italic)))) ;;;;; fixmee `(fixmee-notice-face ((,class (:background nil :foreground ,base1 :underline nil :slant italic :weight bold)))) ;;;;; flx `(flx-highlight-face ((,class (:foreground ,blue :weight normal :underline nil)))) ;;;;; flycheck `(flycheck-error ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,red) :inherit unspecified)) (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t)))) `(flycheck-warning ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,yellow) :inherit unspecified)) (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t)))) `(flycheck-info ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,(if solarized-emphasize-indicators blue base03)) :inherit unspecified)) (,class (:foreground ,blue-hc :background ,blue-lc :weight bold :underline t)))) `(flycheck-fringe-error ((,class (:foreground ,(if solarized-emphasize-indicators red-hc red) :background ,(if solarized-emphasize-indicators red-lc s-fringe-bg) :weight bold)))) `(flycheck-fringe-warning ((,class (:foreground ,(if solarized-emphasize-indicators yellow-hc yellow) :background ,(if solarized-emphasize-indicators yellow-lc s-fringe-bg) :weight bold)))) `(flycheck-fringe-info ((,class (:foreground ,(if solarized-emphasize-indicators blue-hc base01) :background ,(if solarized-emphasize-indicators blue-lc s-fringe-bg) :weight bold)))) ;;;;; flymake `(flymake-errline ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,red) :inherit unspecified :foreground unspecified :background unspecified)) (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t)))) `(flymake-infoline ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,green) :inherit unspecified :foreground unspecified :background unspecified)) (,class (:foreground ,green-hc :background ,green-lc)))) `(flymake-warnline ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,yellow) :inherit unspecified :foreground unspecified :background unspecified)) (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t)))) ;;;;; flyspell `(flyspell-duplicate ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,yellow) :inherit unspecified)) (,class (:foreground ,yellow :weight bold :underline t)))) `(flyspell-incorrect ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,red) :inherit unspecified)) (,class (:foreground ,red :weight bold :underline t)))) ;;;;; fold-this `(fold-this-overlay ((,class (:inherit default :foreground ,violet)))) ;;;;; form-feed `(form-feed-line ((,class (:strike-through ,s-line)))) ;;;;; git-commit `(git-commit-comment-action ((,class (:foreground ,base0 :weight bold)))) `(git-commit-comment-branch ; obsolete ((,class (:foreground ,blue :weight bold)))) `(git-commit-comment-branch-local ((,class (:foreground ,blue :weight bold)))) `(git-commit-comment-branch-remote ((,class (:foreground ,green :weight bold)))) `(git-commit-comment-heading ((,class (:foreground ,yellow :weight bold)))) ;;;;; git-gutter `(git-gutter:added ((,class (:weight normal :foreground ,(if solarized-emphasize-indicators green s-fringe-fg) :background ,s-fringe-bg)))) `(git-gutter:deleted ((,class (:weight normal :foreground ,(if solarized-emphasize-indicators red s-fringe-fg) :background ,s-fringe-bg)))) `(git-gutter:modified ((,class (:weight normal :foreground ,(if solarized-emphasize-indicators blue s-fringe-fg) :background ,s-fringe-bg)))) `(git-gutter:unchanged ((,class (:weight normal :foreground ,(if solarized-emphasize-indicators base01 s-fringe-fg) :background ,s-fringe-bg)))) ;;;;; git-gutter-fr `(git-gutter-fr:added ((,class (:foreground ,green :weight bold)))) `(git-gutter-fr:deleted ((,class (:foreground ,red :weight bold)))) `(git-gutter-fr:modified ((,class (:foreground ,blue :weight bold)))) ;;;;; git-gutter+ and git-gutter+-fr `(git-gutter+-added ((,class (:background ,green :foreground ,base03 :weight bold)))) `(git-gutter+-deleted ((,class (:background ,red :foreground ,base03 :weight bold)))) `(git-gutter+-modified ((,class (:background ,blue :foreground ,base03 :weight bold)))) `(git-gutter+-unchanged ((,class (:background ,base02 :foreground ,base03 :weight bold)))) `(git-gutter-fr+-added ((,class (:foreground ,green :weight bold)))) `(git-gutter-fr+-deleted ((,class (:foreground ,red :weight bold)))) `(git-gutter-fr+-modified ((,class (:foreground ,blue :weight bold)))) ;;;;; git-rebase `(git-rebase-hash ((,class (:foreground ,base01)))) ;;;;; git-timemachine `(git-timemachine-minibuffer-author-face ((,class (:foreground ,orange)))) `(git-timemachine-minibuffer-detail-face ((,class (:foreground ,yellow)))) ;;;;; gnus `(gnus-group-mail-1 ((,class (:weight bold :inherit gnus-group-mail-1-empty)))) `(gnus-group-mail-1-empty ((,class (:inherit gnus-group-news-1-empty)))) `(gnus-group-mail-2 ((,class (:weight bold :inherit gnus-group-mail-2-empty)))) `(gnus-group-mail-2-empty ((,class (:inherit gnus-group-news-2-empty)))) `(gnus-group-mail-3 ((,class (:weight bold :inherit gnus-group-mail-3-empty)))) `(gnus-group-mail-3-empty ((,class (:inherit gnus-group-news-3-empty)))) `(gnus-group-mail-low ((,class (:weight bold :inherit gnus-group-mail-low-empty)))) `(gnus-group-mail-low-empty ((,class (:inherit gnus-group-news-low-empty)))) `(gnus-group-news-1 ((,class (:weight bold :inherit gnus-group-news-1-empty)))) `(gnus-group-news-2 ((,class (:weight bold :inherit gnus-group-news-2-empty)))) `(gnus-group-news-3 ((,class (:weight bold :inherit gnus-group-news-3-empty)))) `(gnus-group-news-4 ((,class (:weight bold :inherit gnus-group-news-4-empty)))) `(gnus-group-news-5 ((,class (:weight bold :inherit gnus-group-news-5-empty)))) `(gnus-group-news-6 ((,class (:weight bold :inherit gnus-group-news-6-empty)))) `(gnus-group-news-low ((,class (:weight bold :inherit gnus-group-news-low-empty)))) `(gnus-header-content ((,class (:inherit message-header-other)))) `(gnus-header-from ((,class (:inherit message-header-other)))) `(gnus-header-name ((,class (:inherit message-header-name)))) `(gnus-header-newsgroups ((,class (:inherit message-header-other)))) `(gnus-header-subject ((,class (:inherit message-header-subject)))) `(gnus-summary-cancelled ((,class (:foreground ,orange)))) `(gnus-summary-high-ancient ((,class (:foreground ,blue :weight bold)))) `(gnus-summary-high-read ((,class (:foreground ,green :weight bold)))) `(gnus-summary-high-ticked ((,class (:foreground ,orange :weight bold)))) `(gnus-summary-high-unread ((,class (:foreground ,base0 :weight bold)))) `(gnus-summary-low-ancient ((,class (:foreground ,blue)))) `(gnus-summary-low-read ((t (:foreground ,green)))) `(gnus-summary-low-ticked ((,class (:foreground ,orange)))) `(gnus-summary-low-unread ((,class (:foreground ,base0)))) `(gnus-summary-normal-ancient ((,class (:foreground ,blue)))) `(gnus-summary-normal-read ((,class (:foreground ,green)))) `(gnus-summary-normal-ticked ((,class (:foreground ,orange)))) `(gnus-summary-normal-unread ((,class (:foreground ,base0)))) `(gnus-summary-selected ((,class (:foreground ,yellow :weight bold)))) `(gnus-cite-1 ((,class (:foreground ,blue)))) `(gnus-cite-2 ((,class (:foreground ,blue)))) `(gnus-cite-3 ((,class (:foreground ,blue)))) `(gnus-cite-4 ((,class (:foreground ,green)))) `(gnus-cite-5 ((,class (:foreground ,green)))) `(gnus-cite-6 ((,class (:foreground ,green)))) `(gnus-cite-7 ((,class (:foreground ,red)))) `(gnus-cite-8 ((,class (:foreground ,red)))) `(gnus-cite-9 ((,class (:foreground ,red)))) `(gnus-cite-10 ((,class (:foreground ,yellow)))) `(gnus-cite-11 ((,class (:foreground ,yellow)))) `(gnus-group-news-1-empty ((,class (:foreground ,yellow)))) `(gnus-group-news-2-empty ((,class (:foreground ,green)))) `(gnus-group-news-3-empty ((,class (:foreground ,green)))) `(gnus-group-news-4-empty ((,class (:foreground ,blue)))) `(gnus-group-news-5-empty ((,class (:foreground ,blue)))) `(gnus-group-news-6-empty ((,class (:foreground ,blue-lc)))) `(gnus-group-news-low-empty ((,class (:foreground ,base01)))) `(gnus-signature ((,class (:foreground ,yellow)))) `(gnus-x-face ((,class (:background ,base0 :foreground ,base03)))) ;;;;; go-direx `(go-direx-header ((,class (:foreground ,blue)))) `(go-direx-label ((,class (:foreground ,green)))) `(go-direx-package ((,class (:foreground ,base1 :weight bold)))) ;;;;; go-guru `(go-guru-hl-identifier-face ((,class (:foreground ,magenta)))) ;;;;; go-mode `(go-coverage-0 ((,class (:foreground ,orange)))) `(go-coverage-1 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 2.0 6)))))) `(go-coverage-2 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 3.0 6)))))) `(go-coverage-3 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 4.0 6)))))) `(go-coverage-4 ((,class (:foreground ,(solarized-color-blend blue yellow (/ 5.0 6)))))) `(go-coverage-5 ((,class (:foreground ,blue)))) `(go-coverage-6 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 2.0 6)))))) `(go-coverage-7 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 3.0 6)))))) `(go-coverage-8 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 4.0 6)))))) `(go-coverage-9 ((,class (:foreground ,(solarized-color-blend cyan blue (/ 5.0 6)))))) `(go-coverage-10 ((,class (:foreground ,cyan)))) `(go-coverage-covered ((,class (:foreground ,green)))) `(go-coverage-untracked ((,class (:foreground ,base01)))) ;;;;; guide-key `(guide-key/highlight-command-face ((,class (:foreground ,blue)))) `(guide-key/key-face ((,class (:foreground ,base01)))) `(guide-key/prefix-command-face ((,class (:foreground ,green)))) ;;;;; helm ;; These probably needs tweaking. `(helm-apt-deinstalled ((,class (:foreground ,base01)))) `(helm-apt-installed ((,class (:foreground ,green)))) `(helm-bookmark-directory ((,class (:inherit helm-ff-directory)))) `(helm-bookmark-file ((,class (:foreground ,base0)))) `(helm-bookmark-gnus ((,class (:foreground ,cyan)))) `(helm-bookmark-info ((,class (:foreground ,green)))) `(helm-bookmark-man ((,class (:foreground ,violet)))) `(helm-bookmark-w3m ((,class (:foreground ,yellow)))) `(helm-bookmarks-su ((,class (:foreground ,orange)))) `(helm-buffer-not-saved ((,class (:foreground ,orange)))) `(helm-buffer-saved-out ((,class (:foreground ,red :background ,base03 :inverse-video t)))) `(helm-buffer-size ((,class (:foreground ,base01)))) `(helm-candidate-number ((,class (:background ,base02 :foreground ,base1 :bold t)))) `(helm-ff-dotted-directory ((,class (:foreground ,base03 :background ,base01)))) `(helm-ff-directory ((,class (:background ,base03 :foreground ,blue)))) `(helm-ff-executable ((,class (:foreground ,green)))) `(helm-ff-socket ((,class (:foreground ,magenta)))) `(helm-ff-pipe ((,class (:foreground ,yellow)))) `(helm-ff-suid ((,class (:foreground ,base03 :background ,red)))) `(helm-ff-file ((,class (:background ,base03 :foreground ,base0)))) `(helm-ff-backup-file ((,class (:foreground ,base01)))) `(helm-ff-invalid-symlink ((,class (:background ,base03 :foreground ,orange :slant italic)))) `(helm-ff-prefix ((,class (:background ,yellow :foreground ,base03)))) `(helm-ff-symlink ((,class (:foreground ,cyan)))) `(helm-grep-file ((,class (:foreground ,cyan :underline t)))) `(helm-grep-finish ((,class (:foreground ,green)))) `(helm-grep-lineno ((,class (:foreground ,orange)))) `(helm-grep-match ((,class (:inherit match)))) `(helm-grep-running ((,class (:foreground ,red)))) `(helm-header ((,class (:inherit header-line)))) `(helm-header-line-left-margin ((,class (:inherit header-line)))) `(helm-lisp-completion-info ((,class (:foreground ,base0)))) `(helm-lisp-show-completion ((,class (:foreground ,yellow :background ,base02 :bold t)))) `(helm-M-x-key ((,class (:foreground ,orange :underline t)))) `(helm-moccur-buffer ((,class (:foreground ,cyan :underline t)))) `(helm-match ((,class (:inherit match)))) `(helm-selection ((,class (:background ,base02 :underline t)))) `(helm-selection-line ((,class (:background ,base02 :foreground ,base1 :underline nil)))) `(helm-separator ((,class (:foreground ,red)))) `(helm-source-header ((,class (:background ,blue-lc :foreground ,base03 :underline nil)))) `(helm-time-zone-current ((,class (:foreground ,green)))) `(helm-time-zone-home ((,class (:foreground ,red)))) `(helm-visible-mark ((,class (:background ,base03 :foreground ,magenta :bold t)))) ;;;;; helm-css-scss `(helm-css-scss-selector-depth-face-1 ((,class (:foreground ,base0)))) `(helm-css-scss-selector-depth-face-2 ((,class (:foreground ,blue)))) `(helm-css-scss-selector-depth-face-3 ((,class (:foreground ,cyan)))) `(helm-css-scss-selector-depth-face-4 ((,class (:foreground ,green)))) `(helm-css-scss-selector-depth-face-5 ((,class (:foreground ,yellow)))) `(helm-css-scss-selector-depth-face-6 ((,class (:foreground ,violet)))) `(helm-css-scss-target-line-face ((,class (:background unspecified :foreground ,magenta)))) ;;;;; helm-go-package `(helm-source-go-package-godoc-description ((,class (:foreground ,base01)))) ;;;;; helm-swoop `(helm-swoop-target-line-face ((,class (:foreground unspecified :background ,base02)))) `(helm-swoop-target-line-block-face ((,class (:foreground unspecified :background ,base02)))) `(helm-swoop-target-word-face ((,class (:foreground ,magenta :background unspecified)))) ;;;;; hi-lock-mode `(hi-yellow ((,class (:foreground ,(solarized-color-blend yellow base1 0.5) :background,(solarized-color-blend yellow base03 0.15))))) `(hi-pink ((,class (:foreground ,(solarized-color-blend magenta base1 0.5) :background,(solarized-color-blend magenta base03 0.15))))) `(hi-green ((,class (:foreground ,(solarized-color-blend green base1 0.5) :background,(solarized-color-blend green base03 0.15))))) `(hi-blue ((,class (:foreground ,(solarized-color-blend blue base1 0.5) :background,(solarized-color-blend blue base03 0.15))))) `(hi-black-b ((,class (:foreground ,base1 :background ,base03 :weight bold)))) `(hi-blue-b ((,class (:weight bold :foreground ,(solarized-color-blend cyan base1 0.7) :background ,(solarized-color-blend cyan base03 0.2))))) `(hi-green-b ((,class (:weight bold :foreground ,(solarized-color-blend green base1 0.7) :background ,(solarized-color-blend green base03 0.2))))) `(hi-red-b ((,class (:weight bold :foreground ,(solarized-color-blend red base1 0.7) :background ,(solarized-color-blend red base03 0.2))))) `(hi-black-hb ((,class (:weight bold :foreground ,base1 :background ,base02)))) ;;;;; highlight-changes `(highlight-changes ((,class (:foreground ,orange)))) `(highlight-changes-delete ((,class (:foreground ,red :underline t)))) ;;;;; highlight-indentation `(highlight-indentation-face ((,class (:background ,base02)))) `(highlight-indentation-current-column-face((,class (:background ,base02)))) ;;;;; highlight-numbers `(highlight-numbers-number ((,class (:foreground ,violet :bold nil)))) ;;;;; highlight-symbol `(highlight-symbol-face ((,class (:foreground ,magenta)))) ;;;;; hl-line-mode `(hl-line ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) `(hl-line-face ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) ;;;;; hydra `(hydra-face-red ((,class (:foreground ,base1 :weight bold)))) `(hydra-face-blue ((,class (:foreground ,blue)))) `(hydra-face-amaranth ((,class (:foreground ,orange)))) `(hydra-face-pink ((,class (:foreground ,magenta)))) `(hydra-face-teal ((,class (:foreground ,cyan)))) ;;;;; ido-mode `(ido-first-match ((,class (:foreground ,yellow :weight normal)))) `(ido-only-match ((,class (:foreground ,base03 :background ,yellow :weight normal)))) `(ido-subdir ((,class (:foreground ,blue)))) `(ido-incomplete-regexp ((,class (:foreground ,red :weight bold )))) `(ido-indicator ((,class (:background ,red :foreground ,base03 :width condensed)))) `(ido-virtual ((,class (:foreground ,cyan)))) ;;;;; iedit-mode `(iedit-occurrence ((,class (:background ,base03 :foreground ,magenta :bold t)))) ;;;;; imenu-list `(imenu-list-entry-face-0 ((,class (:inherit font-lock-type-face)))) `(imenu-list-entry-face-1 ((,class (:inherit font-lock-function-name-face)))) `(imenu-list-entry-face-2 ((,class (:inherit font-lock-variable-name-face)))) `(imenu-list-entry-face-3 ((,class (:inherit font-lock-string-face)))) ;;;;; info `(info-title-1 ((,class (:foreground ,base1 :weight bold)))) `(info-title-2 ((,class (:foreground ,base1 :weight bold)))) `(info-title-3 ((,class (:weight bold)))) `(info-title-4 ((,class (:weight bold)))) `(info-node ((,class (:foreground ,base1 :slant italic :weight bold)))) `(info-header-node ((,class (:inherit info-node)))) `(info-header-xref ((,class (:inherit info-xref)))) `(info-index-match ((,class (:inherit match)))) `(info-menu-header ((,class (:inherit variable-pitch :weight bold)))) `(info-menu-star ((,class (:foreground ,orange)))) `(info-xref ((,class (:inherit link)))) `(info-xref-visited ((,class (:inherit (link-visited info-xref))))) ;;;;; info+ `(info-file ((,class (:foreground ,yellow :background ,base02)))) `(info-menu ((,class (:foreground ,violet :background ,base02)))) `(info-single-quote ((,class (:foreground ,cyan :inherit font-lock-string-face)))) `(info-quoted-name ((,class (:foreground ,orange :inherit font-lock-string-face)))) `(info-string ((,class (:foreground ,blue :inherit font-lock-string-face)))) `(info-command-ref-item ((,class (:foreground ,green :background ,base02)))) `(info-constant-ref-item ((,class (:foreground ,red :background ,base02)))) `(info-function-ref-item ((,class (:foreground ,cyan :background ,base02)))) `(info-macro-ref-item ((,class (:foreground ,green :background ,base02)))) `(info-reference-item ((,class (:background ,base02)))) `(info-special-form-ref-item ((,class (:foreground ,magenta :background ,base02)))) `(info-syntax-class-item ((,class (:foreground ,magenta :background ,base02)))) `(info-user-option-ref-item ((,class (:foreground ,orange :background ,base02)))) ;;;;; ivy `(ivy-confirm-face ((,class (:foreground ,green)))) `(ivy-current-match ((,class (:weight bold :background ,base02 :underline t)))) `(ivy-match-required-face ((,class (:foreground ,red)))) `(ivy-minibuffer-match-face-1 ((,class (:foreground ,base1)))) `(ivy-minibuffer-match-face-2 ((,class (:foreground ,yellow)))) `(ivy-minibuffer-match-face-3 ((,class (:foreground ,yellow)))) `(ivy-minibuffer-match-face-4 ((,class (:foreground ,yellow)))) `(ivy-remote ((,class (:foreground ,blue)))) ;;;;; jabber `(jabber-activity-face ((,class (:weight bold :foreground ,red)))) `(jabber-activity-personal-face ((,class (:weight bold :foreground ,blue)))) `(jabber-chat-error ((,class (:weight bold :foreground ,red)))) `(jabber-chat-prompt-foreign ((,class (:weight bold :foreground ,red)))) `(jabber-chat-prompt-local ((,class (:weight bold :foreground ,blue)))) `(jabber-chat-prompt-system ((,class (:weight bold :foreground ,green)))) `(jabber-chat-text-foreign ((,class (:foreground ,base1)))) `(jabber-chat-text-local ((,class (:foreground ,base0)))) `(jabber-chat-rare-time-face ((,class (:underline t :foreground ,green)))) `(jabber-roster-user-away ((,class (:slant italic :foreground ,green)))) `(jabber-roster-user-chatty ((,class (:weight bold :foreground ,orange)))) `(jabber-roster-user-dnd ((,class (:slant italic :foreground ,red)))) `(jabber-roster-user-error ((,class (:weight light :slant italic :foreground ,red)))) `(jabber-roster-user-offline ((,class (:foreground ,base01)))) `(jabber-roster-user-online ((,class (:weight bold :foreground ,blue)))) `(jabber-roster-user-xa ((,class (:slant italic :foreground ,magenta)))) ;;;;; jedi `(jedi:highlight-function-argument ((,class (:inherit bold)))) ;;;;; js2-mode `(js2-error ((,class (:foreground ,red)))) `(js2-external-variable ((,class (:foreground ,orange)))) `(js2-function-param ((,class (:foreground ,green)))) `(js2-instance-member ((,class (:foreground ,magenta)))) `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,cyan)))) `(js2-jsdoc-html-tag-name ((,class (:foreground ,orange)))) `(js2-jsdoc-tag ((,class (:foreground ,cyan)))) `(js2-jsdoc-type ((,class (:foreground ,blue)))) `(js2-jsdoc-value ((,class (:foreground ,violet)))) `(js2-magic-paren ((,class (:underline t)))) `(js2-private-function-call ((,class (:foreground ,yellow)))) `(js2-private-member ((,class (:foreground ,blue)))) `(js2-warning ((,class (:underline ,orange)))) ;;;;; js3-mode `(js3-error ((,class (:foreground ,red)))) `(js3-external-variable ((,class (:foreground ,orange)))) `(js3-function-param ((,class (:foreground ,green)))) `(js3-instance-member ((,class (:foreground ,magenta)))) `(js3-jsdoc-html-tag-delimiter ((,class (:foreground ,cyan)))) `(js3-jsdoc-html-tag-name ((,class (:foreground ,orange)))) `(js3-jsdoc-tag ((,class (:foreground ,cyan)))) `(js3-jsdoc-type ((,class (:foreground ,blue)))) `(js3-jsdoc-value ((,class (:foreground ,violet)))) `(js3-magic-paren ((,class (:underline t)))) `(js3-private-function-call ((,class (:foreground ,yellow)))) `(js3-private-member ((,class (:foreground ,blue)))) `(js3-warning ((,class (:underline ,orange)))) ;;;;; langtool `(langtool-errline ((,(append '((supports :underline (:style wave))) class) (:underline (:style wave :color ,green) :inherit unspecified)) (,class (:foreground ,red :weight bold :underline t)))) `(langtool-correction-face ((,class (:inherit default :weight bold)))) ;;;;; ledger-mode `(ledger-font-payee-uncleared-face ((t (:foreground ,red)))) `(ledger-font-payee-cleared-face ((t (:foreground ,green :weight normal)))) `(ledger-font-xact-highlight-face ((t (:background ,base02)))) `(ledger-font-pending-face ((t (:foreground ,yellow weight: normal)))) `(ledger-font-other-face ((t (:foreground ,base0)))) `(ledger-font-posting-account-face ((t (:foreground ,cyan)))) `(ledger-font-posting-account-cleared-face ((t (:foreground ,base0)))) `(ledger-font-posting-account-pending-face ((t (:foreground ,yellow)))) `(ledger-font-posting-amount-face ((t (:foreground ,yellow)))) `(ledger-occur-narrowed-face ((t (:foreground ,base3 :invisible t)))) `(ledger-occur-xact-face ((t (:background ,base02)))) `(ledger-font-comment-face ((t (:foreground ,base01)))) `(ledger-font-reconciler-uncleared-face ((t (:foreground ,red :weight bold)))) `(ledger-font-reconciler-cleared-face ((t (:foreground ,base0 :weight normal)))) `(ledger-font-reconciler-pending-face ((t (:foreground ,yellow :weight normal)))) `(ledger-font-report-clickable-face ((t (:foreground ,yellow :weight normal)))) ;;;;; linum-mode `(linum ((,class (:weight extra-light :underline nil :foreground ,s-fringe-fg :background ,s-fringe-bg)))) `(linum-relative-current-face ((,class (:inherit linum)))) ;;;;; display-line-number-mode `(line-number ((,class (:weight extra-light :underline nil :foreground ,s-fringe-fg :background ,s-fringe-bg)))) `(line-number-minor-tick ((,class (:inherit line-number :weight normal)))) `(line-number-major-tick ((,class (:inherit line-number-minor-tick :weight bold)))) `(line-number-current-line ((,class (:inherit line-number :background ,base03 :foreground ,base0)))) ;;;;; lsp-ui `(lsp-ui-doc-background ((,class (:background ,base03)))) `(lsp-ui-doc-header ((,class (:background ,yellow-1bg :foreground ,yellow-1fg)))) `(lsp-ui-doc-url ((,class (:inherit link)))) `(lsp-ui-sideline-code-action ((,class (:foreground ,yellow-1fg :background ,yellow-1bg :weight normal)))) `(lsp-ui-sideline-current-symbol ((,class (:foreground ,magenta :weight normal)))) `(lsp-ui-sideline-global ((,class (:underline ,s-line)))) `(lsp-ui-sideline-symbol ((,class (:foreground ,base1 :background ,base02)))) ;;;;; lusty-explorer `(lusty-directory-face ((,class (:inherit dired-directory)))) `(lusty-file-face ((,class nil))) `(lusty-match-face ((,class (:inherit ido-first-match)))) `(lusty-slash-face ((,class (:foreground ,cyan :weight bold)))) ;;;;; macrostep `(macrostep-expansion-highlight-face ((,class (:background ,base02)))) ;;;;; magit ;;;;;; headings and diffs `(magit-section-highlight ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) `(magit-section-heading ((t (:foreground ,yellow :weight bold)))) `(magit-section-heading-selection ((t (:foreground ,orange :weight bold)))) `(magit-diff-file-heading ((t (:weight bold)))) `(magit-diff-file-heading-highlight ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) `(magit-diff-file-heading-selection ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02 :foreground ,orange)))) `(magit-diff-hunk-heading ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,yellow-1bg :foreground ,yellow-1fg)))) `(magit-diff-hunk-heading-highlight ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,yellow-2bg :foreground ,yellow-2fg)))) `(magit-diff-hunk-heading-selection ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,(solarized-color-blend yellow base02 0.1) :foreground ,orange :weight bold)))) `(magit-diff-lines-heading ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,orange :foreground ,base3)))) `(magit-diff-context-highlight ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02 :foreground ,base1)))) `(magit-diff-added ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,green-1bg :foreground ,green-1fg)))) `(magit-diff-added-highlight ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,green-1bg :foreground ,green-1fg)))) `(magit-diff-base ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,yellow-1bg :foreground ,yellow-1fg)))) `(magit-diff-base-highlight ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,yellow-1bg :foreground ,yellow-1fg)))) `(magit-diff-conflict-heading ((,class (:inherit magit-diff-hunk-heading)))) `(magit-diff-context ((,class (:foreground ,base0)))) `(magit-diff-removed ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,red-1bg :foreground ,red-1fg)))) `(magit-diff-removed-highlight ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,red-1bg :foreground ,red-1fg)))) `(magit-diffstat-added ((t (:foreground ,s-diffstat-added-fg)))) `(magit-diffstat-removed ((t (:foreground ,s-diffstat-removed-fg)))) ;;;;;; process `(magit-process-ok ((t (:foreground ,green :weight bold)))) `(magit-process-ng ((t (:foreground ,red :weight bold)))) ;;;;;; log `(magit-log-author ((t (:foreground ,base01 :weight bold)))) `(magit-log-date ((t (:foreground ,base01)))) `(magit-log-graph ((t (:foreground ,base1)))) ;;;;;; sequence `(magit-sequence-pick ((t (:foreground ,yellow-d)))) `(magit-sequence-stop ((t (:foreground ,green)))) `(magit-sequence-part ((t (:foreground ,yellow)))) `(magit-sequence-head ((t (:foreground ,blue)))) `(magit-sequence-drop ((t (:foreground ,red)))) `(magit-sequence-done ((t (:foreground ,base01)))) `(magit-sequence-onto ((t (:foreground ,base01)))) ;;;;;; bisect `(magit-bisect-good ((t (:foreground ,green)))) `(magit-bisect-skip ((t (:foreground ,yellow)))) `(magit-bisect-bad ((t (:foreground ,red)))) ;;;;;; blame `(magit-blame-highlight ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02)))) `(magit-blame-heading ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,base02 :box (:color ,base02 :line-width 2))))) `(magit-blame-summary ((t (:foreground ,base0)))) `(magit-blame-hash ((t (:foreground ,violet)))) `(magit-blame-name ((t (:foreground ,violet)))) `(magit-blame-date ((t (:foreground ,violet)))) ;;;;;; references etc. `(magit-dimmed ((t (:foreground ,base01)))) `(magit-hash ((t (:foreground ,base01)))) `(magit-tag ((t (:foreground ,cyan :weight bold)))) `(magit-branch-remote ((t (:foreground ,green :weight bold)))) `(magit-branch-local ((t (:foreground ,blue :weight bold)))) `(magit-head ((t (:foreground ,blue :weight bold)))) `(magit-refname ((t (:background ,base02 :foreground ,base01 :weight bold)))) `(magit-refname-stash ((t (:background ,base02 :foreground ,base01 :weight bold)))) `(magit-refname-wip ((t (:background ,base02 :foreground ,base01 :weight bold)))) `(magit-signature-good ((t (:foreground ,green)))) `(magit-signature-bad ((t (:foreground ,red)))) `(magit-signature-untrusted ((t (:foreground ,yellow)))) `(magit-cherry-unmatched ((t (:foreground ,cyan)))) `(magit-cherry-equivalent ((t (:foreground ,magenta)))) `(magit-reflog-commit ((t (:foreground ,green)))) `(magit-reflog-amend ((t (:foreground ,magenta)))) `(magit-reflog-merge ((t (:foreground ,green)))) `(magit-reflog-checkout ((t (:foreground ,blue)))) `(magit-reflog-reset ((t (:foreground ,red)))) `(magit-reflog-rebase ((t (:foreground ,magenta)))) `(magit-reflog-cherry-pick ((t (:foreground ,green)))) `(magit-reflog-remote ((t (:foreground ,cyan)))) `(magit-reflog-other ((t (:foreground ,cyan)))) ;;;;; magit-popup `(magit-popup-heading ((t (:foreground ,yellow :weight bold)))) `(magit-popup-key ((t (:foreground ,base1 :weight bold)))) `(magit-popup-argument ((t (:foreground ,cyan :weight bold)))) `(magit-popup-disabled-argument ((t (:foreground ,base01 :weight normal)))) `(magit-popup-option-value ((t (:foreground ,cyan :weight bold)))) ;;;;; markdown-mode `(markdown-blockquote-face ((,class (:inherit font-lock-doc-face)))) `(markdown-bold-face ((,class (:inherit bold)))) `(markdown-code-face ((,class (:inherit fixed-pitch :foreground ,base01 :background unspecified)))) `(markdown-comment-face ((,class (:foreground ,base01 :strike-through t)))) `(markdown-footnote-face ((,class (:inherit default)))) `(markdown-header-delimiter-face ((,class (:foreground ,base01)))) `(markdown-header-face ((,class (:foreground ,blue)))) `(markdown-header-face-1 ((,class (:inherit markdown-header-face ,@(when solarized-scale-markdown-headlines (list :height solarized-height-plus-4)))))) `(markdown-header-face-2 ((,class (:inherit markdown-header-face ,@(when solarized-scale-markdown-headlines (list :height solarized-height-plus-3)))))) `(markdown-header-face-3 ((,class (:inherit markdown-header-face ,@(when solarized-scale-markdown-headlines (list :height solarized-height-plus-2)))))) `(markdown-header-face-4 ((,class (:inherit markdown-header-face ,@(when solarized-scale-markdown-headlines (list :height solarized-height-plus-1)))))) `(markdown-header-face-5 ((,class (:inherit markdown-header-face)))) `(markdown-header-face-6 ((,class (:inherit markdown-header-face)))) `(markdown-header-rule-face ((,class (:foreground ,base01)))) `(markdown-inline-code-face ((,class (:foreground ,base01)))) `(markdown-italic-face ((,class (:inherit italic)))) `(markdown-language-keyword-face ((,class (:inherit default)))) `(markdown-line-break-face ((,class (:inherit default :underline t)))) `(markdown-link-face ((,class (:inherit default :foreground ,yellow)))) `(markdown-link-title-face ((,class (:inherit font-lock-comment-face)))) `(markdown-list-face ((,class (:inherit font-lock-builtin-face)))) `(markdown-math-face ((,class (:inherit font-lock-string-face)))) `(markdown-metadata-key-face ((,class (:inherit font-lock-comment-face)))) `(markdown-metadata-value-face ((,class (:inherit default)))) `(markdown-missing-link-face ((,class (:inherit font-lock-warning-face)))) `(markdown-pre-face ((,class (:foreground ,base01)))) `(markdown-reference-face ((,class (:inherit default :foreground ,base01)))) `(markdown-url-face ((,class (:foreground ,base01)))) ;;;;; message-mode `(message-cited-text ((,class (:foreground ,base01)))) `(message-header-name ((,class (:foreground ,base01)))) `(message-header-other ((,class (:foreground ,base0 :weight normal)))) `(message-header-to ((,class (:foreground ,base0 :weight normal)))) `(message-header-cc ((,class (:foreground ,base0 :weight normal)))) `(message-header-newsgroups ((,class (:foreground ,yellow :weight bold)))) `(message-header-subject ((,class (:foreground ,cyan :weight normal)))) `(message-header-xheader ((,class (:foreground ,cyan)))) `(message-mml ((,class (:foreground ,yellow :weight bold)))) `(message-separator ((,class (:foreground ,base01 :slant italic)))) ;;;;; mew `(mew-face-header-subject ((,class (:foreground ,orange)))) `(mew-face-header-from ((,class (:foreground ,yellow)))) `(mew-face-header-date ((,class (:foreground ,green)))) `(mew-face-header-to ((,class (:foreground ,red)))) `(mew-face-header-key ((,class (:foreground ,green)))) `(mew-face-header-private ((,class (:foreground ,green)))) `(mew-face-header-important ((,class (:foreground ,blue)))) `(mew-face-header-marginal ((,class (:foreground ,base0 :weight bold)))) `(mew-face-header-warning ((,class (:foreground ,red)))) `(mew-face-header-xmew ((,class (:foreground ,green)))) `(mew-face-header-xmew-bad ((,class (:foreground ,red)))) `(mew-face-body-url ((,class (:foreground ,orange)))) `(mew-face-body-comment ((,class (:foreground ,base0 :slant italic)))) `(mew-face-body-cite1 ((,class (:foreground ,green)))) `(mew-face-body-cite2 ((,class (:foreground ,blue)))) `(mew-face-body-cite3 ((,class (:foreground ,orange)))) `(mew-face-body-cite4 ((,class (:foreground ,yellow)))) `(mew-face-body-cite5 ((,class (:foreground ,red)))) `(mew-face-mark-review ((,class (:foreground ,blue)))) `(mew-face-mark-escape ((,class (:foreground ,green)))) `(mew-face-mark-delete ((,class (:foreground ,red)))) `(mew-face-mark-unlink ((,class (:foreground ,yellow)))) `(mew-face-mark-refile ((,class (:foreground ,green)))) `(mew-face-mark-unread ((,class (:foreground ,red)))) `(mew-face-eof-message ((,class (:foreground ,green)))) `(mew-face-eof-part ((,class (:foreground ,yellow)))) ;;;;; mic-paren `(paren-face-match ((,class (:foreground ,magenta :background unspecified :weight ,s-maybe-bold)))) `(paren-face-mismatch ((,class (:foreground ,base02 :background ,red :weight ,s-maybe-bold)))) `(paren-face-no-match ((,class (:foreground ,base02 :background ,red :weight ,s-maybe-bold)))) ;;;;; mingus `(mingus-directory-face ((,class (:foreground ,blue)))) `(mingus-pausing-face ((,class (:foreground ,magenta)))) `(mingus-playing-face ((,class (:foreground ,cyan)))) `(mingus-playlist-face ((,class (:foreground ,cyan )))) `(mingus-song-file-face ((,class (:foreground ,yellow)))) `(mingus-stopped-face ((,class (:foreground ,red)))) ;;;;; moccur `(moccur-current-line-face ((,class (:underline t)))) `(moccur-edit-done-face ((,class (:foreground ,base01 :background ,base03 :slant italic)))) `(moccur-edit-face ((,class (:background ,yellow :foreground ,base03)))) `(moccur-edit-file-face ((,class (:background ,base02)))) `(moccur-edit-reject-face ((,class (:foreground ,red)))) `(moccur-face ((,class (:background ,base02 :foreground ,base1 :weight bold)))) `(search-buffers-face ((,class (:background ,base02 :foreground ,base1 :weight bold)))) `(search-buffers-header-face ((,class (:background ,base02 :foreground ,yellow :weight bold)))) ;;;;; mu4e `(mu4e-cited-1-face ((,class (:foreground ,green :slant italic :weight normal)))) `(mu4e-cited-2-face ((,class (:foreground ,blue :slant italic :weight normal)))) `(mu4e-cited-3-face ((,class (:foreground ,orange :slant italic :weight normal)))) `(mu4e-cited-4-face ((,class (:foreground ,yellow :slant italic :weight normal)))) `(mu4e-cited-5-face ((,class (:foreground ,cyan :slant italic :weight normal)))) `(mu4e-cited-6-face ((,class (:foreground ,green :slant italic :weight normal)))) `(mu4e-cited-7-face ((,class (:foreground ,blue :slant italic :weight normal)))) `(mu4e-flagged-face ((,class (:foreground ,blue :weight normal)))) `(mu4e-unread-face ((,class (:foreground ,green :weight normal)))) `(mu4e-view-url-number-face ((,class (:foreground ,yellow :weight normal)))) `(mu4e-warning-face ((,class (:foreground ,red :slant normal :weight bold)))) `(mu4e-header-highlight-face ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :inherit unspecified :foreground unspecified :background ,base02 :underline unspecified :weight unspecified)))) `(mu4e-view-contact-face ((,class (:foreground ,base0 :weight normal)))) `(mu4e-view-header-key-face ((,class (:inherit message-header-name :weight normal)))) `(mu4e-view-header-value-face ((,class (:foreground ,cyan :weight normal :slant normal)))) `(mu4e-view-link-face ((,class (:inherit link)))) `(mu4e-view-special-header-value-face ((,class (:foreground ,blue :weight normal :underline nil)))) ;;;;; multiple-cursors `(mc/cursor-face ((,class (:inherit cursor :inverse-video nil)))) ;;;;; mumamo `(mumamo-background-chunk-submode1 ((,class (:background ,base02)))) ;;;;; nav `(nav-face-heading ((,class (:foreground ,yellow)))) `(nav-face-button-num ((,class (:foreground ,cyan)))) `(nav-face-dir ((,class (:foreground ,green)))) `(nav-face-hdir ((,class (:foreground ,red)))) `(nav-face-file ((,class (:foreground ,base0)))) `(nav-face-hfile ((,class (:foreground ,red)))) ;;;;; nav-flash ;; `(nav-flash-face ((,class (:background ,base02)))) `(nav-flash-face ((,light-class (:foreground ,(solarized-color-blend yellow base1 0.2) :background ,(solarized-color-blend yellow base03 0.2))) (,dark-class (:foreground ,(solarized-color-blend cyan base1 0.1) :background ,(solarized-color-blend cyan base03 0.3))))) ;;;;; navi2ch `(navi2ch-list-category-face ((,class (:foreground ,blue )))) `(navi2ch-list-add-board-name-face ((,class (:foreground ,yellow)))) `(navi2ch-list-board-name-face ((,class (:foreground ,blue)))) `(navi2ch-list-change-board-name-face ((,class (:foreground ,green :weight bold)))) `(navi2ch-bm-unread-face ((,class (:foreground ,green)))) `(navi2ch-bm-view-face ((,class (:foreground ,yellow)))) `(navi2ch-bm-cache-face ((,class (:foreground ,blue)))) `(navi2ch-bm-update-face ((,class (:foreground ,orange)))) `(navi2ch-bm-down-face ((,class (:foreground ,base1)))) `(navi2ch-bm-mark-face ((,class (:foreground ,red)))) `(navi2ch-bm-new-unread-face ((,class (:foreground ,green)))) `(navi2ch-bm-new-view-face ((,class (:foreground ,yellow)))) `(navi2ch-bm-new-cache-face ((,class (:foreground ,blue)))) `(navi2ch-bm-new-update-face ((,class (:foreground ,orange)))) `(navi2ch-bm-new-mark-face ((,class (:foreground ,red)))) `(navi2ch-bm-updated-unread-face ((,class (:foreground ,green)))) `(navi2ch-bm-updated-view-face ((,class (:foreground ,yellow)))) `(navi2ch-bm-updated-cache-face ((,class (:foreground ,blue)))) `(navi2ch-bm-updated-update-face ((,class (:foreground ,orange)))) `(navi2ch-bm-updated-navi2ch-bm-updated-mark-facemark-face ((,class (:foreground ,red)))) `(navi2ch-bm-seen-unread-face ((,class (:foreground ,green)))) `(navi2ch-bm-seen-view-face ((,class (:foreground ,yellow)))) `(navi2ch-bm-seen-cache-face ((,class (:foreground ,blue)))) `(navi2ch-bm-seen-update-face ((,class (:foreground ,orange)))) `(navi2ch-bm-seen-mark-face ((,class (:foreground ,red)))) `(navi2ch-article-header-face ((,class (:foreground ,base1)))) `(navi2ch-article-header-contents-face ((,class (:foreground ,blue)))) `(navi2ch-article-header-fusianasan-face ((,class (:foreground ,blue :underline t)))) `(navi2ch-article-link-face ((,class (:weight bold)))) `(navi2ch-article-url-face ((,class (:weight bold)))) `(navi2ch-article-citation-face ((,class (:foreground ,yellow)))) `(navi2ch-article-auto-decode-face ((,class (:foreground ,base03)))) `(navi2ch-article-message-separator-face ((,class (:foreground ,green)))) `(navi2ch-splash-screen-face ((,class (:foreground ,cyan)))) `(navi2ch-message-link-face ((,class (:weight bold)))) `(navi2ch-message-url-face ((,class (:weight bold)))) `(navi2ch-message-citation-face ((,class (:foreground ,magenta)))) ;;;;; neotree `(neo-banner-face ((,class (:foreground ,base01)))) `(neo-header-face ((,class (:foreground ,blue)))) `(neo-root-dir-face ((,class (:foreground ,base1 :weight bold)))) `(neo-dir-link-face ((,class (:foreground ,blue)))) `(neo-file-link-face ((,class (:foreground ,base0)))) `(neo-expand-btn-face ((,class (:foreground ,base01)))) ;;;;; notmuch `(notmuch-message-summary-face ((,class (:inherit highlight)))) `(notmuch-search-date ((,class (:inherit default)))) `(notmuch-search-count ((,class (:inherit default)))) `(notmuch-search-subject ((,class (:inherit default)))) `(notmuch-search-matching-authors ((,class (:inherit default)))) `(notmuch-search-non-matching-authors ((,class (:inherit shadow)))) `(notmuch-tag-face ((,class (:foreground ,yellow)))) `(notmuch-tag-unread ((,class (:foreground ,magenta)))) `(notmuch-search-flagged-face ((,class (:foreground ,blue)))) `(notmuch-search-unread-face ((,class (:weight bold)))) `(notmuch-tree-match-author-face ((,class (:foreground ,blue)))) `(notmuch-tree-match-date-face ((,class (:foreground ,yellow)))) `(notmuch-tree-match-tag-face ((,class (:foreground ,cyan)))) `(notmuch-tree-no-match-face ((,class (:inherit font-lock-comment-face)))) ;;;;; orderless `(orderless-match-face-0 ((,class (:foreground ,blue)))) `(orderless-match-face-1 ((,class (:foreground ,magenta)))) `(orderless-match-face-2 ((,class (:foreground ,yellow)))) `(orderless-match-face-3 ((,class (:foreground ,green)))) ;;;;; org-mode `(org-agenda-structure ((,class (:foreground ,base1 :background ,base02 :weight bold :slant normal :inverse-video nil :height ,solarized-height-plus-1 :underline nil :box (:line-width 2 :color ,base03))))) `(org-agenda-calendar-event ((,class (:foreground ,base1)))) `(org-agenda-calendar-sexp ((,class (:foreground ,base0 :slant italic)))) `(org-agenda-date ((,class (:foreground ,base01 :background ,base03 :weight normal :box (:line-width 2 :color ,base03) :inverse-video nil :overline nil :slant normal :height 1.0)))) `(org-agenda-date-weekend ((,class (:inherit org-agenda-date :inverse-video nil :background unspecified :foreground ,base01 :weight unspecified :underline t :overline nil :box unspecified)))) `(org-agenda-date-today ((,class (:inherit org-agenda-date :inverse-video t :weight bold :underline unspecified :overline nil :box unspecified :foreground ,blue :background ,base03)))) `(org-agenda-done ((,class (:foreground ,base01 :slant italic)))) `(org-archived ((,class (:foreground ,base01 :weight normal)))) `(org-block ((,class nil))) `(org-block-begin-line ((,class (:inherit org-meta-line :underline t)))) `(org-block-end-line ((,class (:inherit org-meta-line :overline t)))) `(org-checkbox ((,class (:background ,base03 :foreground ,base0 :box (:line-width 1 :style released-button))))) `(org-code ((,class (:foreground ,base01)))) `(org-date ((,class (:foreground ,blue :underline t)))) `(org-done ((,class (:weight bold :foreground ,green)))) `(org-ellipsis ((,class (:foreground ,base01)))) `(org-formula ((,class (:foreground ,yellow)))) `(org-headline-done ((,class (:foreground ,green)))) `(org-hide ((,class (:foreground ,base03)))) `(org-level-1 ((,class (:inherit ,s-variable-pitch :foreground ,orange ,@(when solarized-scale-org-headlines (list :height solarized-height-plus-4)))))) `(org-level-2 ((,class (:inherit ,s-variable-pitch :foreground ,green ,@(when solarized-scale-org-headlines (list :height solarized-height-plus-3)))))) `(org-level-3 ((,class (:inherit ,s-variable-pitch :foreground ,blue ,@(when solarized-scale-org-headlines (list :height solarized-height-plus-2)))))) `(org-level-4 ((,class (:inherit ,s-variable-pitch :foreground ,yellow ,@(when solarized-scale-org-headlines (list :height solarized-height-plus-1)))))) `(org-level-5 ((,class (:inherit ,s-variable-pitch :foreground ,cyan)))) `(org-level-6 ((,class (:inherit ,s-variable-pitch :foreground ,green)))) `(org-level-7 ((,class (:inherit ,s-variable-pitch :foreground ,red)))) `(org-level-8 ((,class (:inherit ,s-variable-pitch :foreground ,blue)))) `(org-link ((,class (:inherit link)))) `(org-meta-line ((,class (:foreground ,base01 :slant italic)))) `(org-macro ((,class (:foreground ,s-base1)))) `(org-sexp-date ((,class (:foreground ,violet)))) `(org-scheduled ((,class (:foreground ,green)))) `(org-scheduled-previously ((,class (:foreground ,cyan)))) `(org-scheduled-today ((,class (:foreground ,blue :weight normal)))) `(org-special-keyword ((,class (:foreground ,base01 :weight bold)))) `(org-table ((,class (:foreground ,green)))) `(org-tag ((,class (:weight bold)))) `(org-time-grid ((,class (:foreground ,base01)))) `(org-todo ((,class (:foreground ,cyan :weight bold)))) `(org-upcoming-deadline ((,class (:foreground ,yellow :weight normal :underline nil)))) `(org-warning ((,class (:foreground ,orange :weight normal :underline nil)))) ;; org-habit ;; (clear=blue, ready=green, alert=yellow, overdue=red. future=lower contrast) `(org-habit-clear-face ((,class (:background ,blue-lc :foreground ,blue-hc)))) `(org-habit-clear-future-face ((,class (:background ,blue-lc)))) `(org-habit-ready-face ((,class (:background ,green-lc :foreground ,green)))) `(org-habit-ready-future-face ((,class (:background ,green-lc)))) `(org-habit-alert-face ((,class (:background ,yellow :foreground ,yellow-lc)))) `(org-habit-alert-future-face ((,class (:background ,yellow-lc)))) `(org-habit-overdue-face ((,class (:background ,red :foreground ,red-lc)))) `(org-habit-overdue-future-face ((,class (:background ,red-lc)))) ;; latest additions `(org-agenda-dimmed-todo-face ((,class (:foreground ,base01)))) `(org-agenda-restriction-lock ((,class (:background ,yellow)))) `(org-clock-overlay ((,class (:background ,base02)))) `(org-column ((,class (:background ,base02 :strike-through nil :underline nil :slant normal :weight normal :inherit default)))) `(org-column-title ((,class (:background ,base02 :underline t :weight bold)))) `(org-date-selected ((,class (:foreground ,red :inverse-video t)))) `(org-document-info ((,class (:foreground ,base0)))) `(org-document-title ((,class (:foreground ,base1 :weight bold :height ,solarized-height-plus-4)))) `(org-drawer ((,class (:foreground ,cyan)))) `(org-footnote ((,class (:foreground ,magenta :underline t)))) `(org-latex-and-export-specials ((,class (:foreground ,orange)))) `(org-mode-line-clock-overrun ((,class (:inherit mode-line :background ,red)))) ;;;;; outline `(outline-1 ((,class (:inherit ,s-variable-pitch :foreground ,orange ,@(and solarized-scale-outline-headlines (list :height solarized-height-plus-4)))))) `(outline-2 ((,class (:inherit ,s-variable-pitch :foreground ,green ,@(and solarized-scale-outline-headlines (list :height solarized-height-plus-3)))))) `(outline-3 ((,class (:inherit ,s-variable-pitch :foreground ,blue ,@(and solarized-scale-outline-headlines (list :height solarized-height-plus-2)))))) `(outline-4 ((,class (:inherit ,s-variable-pitch :foreground ,yellow ,@(when solarized-scale-outline-headlines (list :height solarized-height-plus-1)))))) `(outline-5 ((,class (:inherit ,s-variable-pitch :foreground ,cyan)))) `(outline-6 ((,class (:inherit ,s-variable-pitch :foreground ,green)))) `(outline-7 ((,class (:inherit ,s-variable-pitch :foreground ,red)))) `(outline-8 ((,class (:inherit ,s-variable-pitch :foreground ,blue)))) ;;;;; outline-minor-faces `(outline-minor-0 ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :weight bold :background ,base02)))) `(outline-minor-1 ((,class (,@(and (>= emacs-major-version 27) '(:extend t)) :inherit (outline-minor-0 outline-1) :background ,(solarized-color-blend base03 yellow .9))))) ;;;;; paren-face `(paren-face ((,class (:foreground ,base01)))) ;;;;; perspective `(persp-selected-face ((,class (:foreground ,yellow)))) ;;;;; pophint `(pophint:tip-face ((,class (:background ,magenta :foreground ,base03)))) `(pophint:match-face ((,class (:background ,blue :foreground ,base03)))) `(pophint:pos-tip-face ((,class (:background ,base02 :foreground ,base0)))) ;;;;; popup `(popup-face ((,class (:background ,base02 :foreground ,base0)))) `(popup-isearch-match ((,class (:background ,yellow :foreground ,base03)))) `(popup-menu-face ((,class (:background ,base02 :foreground ,base0)))) `(popup-menu-mouse-face ((,class (:background ,blue :foreground ,base03)))) `(popup-menu-selection-face ((,class (:background ,magenta :foreground ,base03)))) `(popup-scroll-bar-background-face ((,class (:background ,base01)))) `(popup-scroll-bar-foreground-face ((,class (:background ,base1)))) `(popup-tip-face ((,class (:background ,base02 :foreground ,base0)))) ;;;;; powerline `(powerline-active1 ((,class ,(if solarized-high-contrast-mode-line `(:background ,base00 :foreground ,base03) `(:background ,base03 :foreground ,base00))))) `(powerline-active2 ((,class ,(if solarized-high-contrast-mode-line `(:background ,base01 :foreground ,base03) `(:background ,base02 :foreground ,base00))))) `(powerline-inactive1 ((,class ,(if solarized-high-contrast-mode-line `(:background ,base03 :foreground ,base1) `(:background ,base02 :foreground ,base01))))) `(powerline-inactive2 ((,class ,(if solarized-high-contrast-mode-line `(:background ,base02 :foreground ,base1) `(:background ,base03 :foreground ,base01))))) ;;;;; pretty-mode `(pretty-mode-symbol-face ((,class (:foreground ,yellow :weight normal)))) ;;;;; prodigy `(prodigy-green-face ((,class (:foreground ,green)))) `(prodigy-red-face ((,class (:foreground ,orange)))) `(prodigy-yellow-face ((,class (:foreground ,yellow)))) `(prodigy-line-face ((,class (:background ,base02)))) ;;;;; rainbow-blocks `(rainbow-blocks-depth-1-face ((,class (:foreground ,cyan)))) `(rainbow-blocks-depth-2-face ((,class (:foreground ,yellow)))) `(rainbow-blocks-depth-3-face ((,class (:foreground ,blue)))) `(rainbow-blocks-depth-4-face ((,class (:foreground ,violet)))) `(rainbow-blocks-depth-5-face ((,class (:foreground ,green)))) `(rainbow-blocks-depth-6-face ((,class (:foreground ,yellow)))) `(rainbow-blocks-depth-7-face ((,class (:foreground ,blue)))) `(rainbow-blocks-depth-8-face ((,class (:foreground ,violet)))) `(rainbow-blocks-depth-9-face ((,class (:foreground ,green)))) `(rainbow-blocks-unmatched-face ((,class (:foreground ,red)))) ;;;;; rainbow-delimiters `(rainbow-delimiters-depth-1-face ((,class (:foreground ,cyan)))) `(rainbow-delimiters-depth-2-face ((,class (:foreground ,yellow)))) `(rainbow-delimiters-depth-3-face ((,class (:foreground ,blue)))) `(rainbow-delimiters-depth-4-face ((,class (:foreground ,violet)))) `(rainbow-delimiters-depth-5-face ((,class (:foreground ,green)))) `(rainbow-delimiters-depth-6-face ((,class (:foreground ,yellow)))) `(rainbow-delimiters-depth-7-face ((,class (:foreground ,blue)))) `(rainbow-delimiters-depth-8-face ((,class (:foreground ,violet)))) `(rainbow-delimiters-depth-9-face ((,class (:foreground ,green)))) `(rainbow-delimiters-depth-10-face ((,class (:foreground ,yellow)))) `(rainbow-delimiters-depth-11-face ((,class (:foreground ,blue)))) `(rainbow-delimiters-depth-12-face ((,class (:foreground ,violet)))) `(rainbow-delimiters-unmatched-face ((,class (:foreground ,base0 :background ,base03 :inverse-video t)))) ;;;;; rpm-mode `(rpm-spec-dir-face ((,class (:foreground ,green)))) `(rpm-spec-doc-face ((,class (:foreground ,green)))) `(rpm-spec-ghost-face ((,class (:foreground ,red)))) `(rpm-spec-macro-face ((,class (:foreground ,yellow)))) `(rpm-spec-obsolete-tag-face ((,class (:foreground ,red)))) `(rpm-spec-package-face ((,class (:foreground ,red)))) `(rpm-spec-section-face ((,class (:foreground ,yellow)))) `(rpm-spec-tag-face ((,class (:foreground ,blue)))) `(rpm-spec-var-face ((,class (:foreground ,red)))) ;;;;; rst-mode `(rst-level-1 ((,class (:inherit org-level-1)))) `(rst-level-2 ((,class (:inherit org-level-2)))) `(rst-level-3 ((,class (:inherit org-level-3)))) `(rst-level-4 ((,class (:inherit org-level-4)))) `(rst-level-5 ((,class (:inherit org-level-5)))) `(rst-level-6 ((,class (:inherit org-level-6)))) ;;;;; selectrum-mode `(selectrum-current-candidate ((,class (:weight bold :background ,base02 :underline t)))) `(selectrum-primary-highlight ((,class (:foreground ,yellow)))) `(selectrum-secondary-highlight ((,class (:foreground ,blue)))) ;;;;; sh-mode `(sh-quoted-exec ((,class (:foreground ,violet :weight bold)))) `(sh-escaped-newline ((,class (:foreground ,yellow :weight bold)))) `(sh-heredoc ((,class (:foreground ,yellow :weight bold)))) ;;;;; show-paren `(show-paren-match ((,class (:foreground ,magenta :background unspecified :weight ,s-maybe-bold)))) `(show-paren-mismatch ((,class (:foreground ,base02 :background ,red :weight ,s-maybe-bold)))) ;;;;; skewer-mode `(skewer-error-face ((,class (:foreground ,orange :underline nil)))) `(skewer-repl-log-face ((,class (:foreground ,violet)))) ;;;;; slime `(slime-repl-inputed-output-face ((,class (:foreground ,red)))) ;;;;; smart-mode-line ;; use (setq sml/theme nil) to enable Solarized for sml `(sml/filename ((,class (:foreground ,base1 :weight bold)))) `(sml/prefix ((,class (:foreground unspecified)))) `(sml/git ((,class (:foreground unspecified)))) `(sml/process ((,class (:weight bold)))) `(sml/sudo ((,class (:foreground ,orange :weight bold)))) `(sml/read-only ((,class (:foreground ,cyan)))) `(sml/outside-modified ((,class (:foreground , cyan)))) `(sml/modified ((,class (:foreground ,cyan)))) `(sml/vc-edited ((,class (:foreground ,green)))) `(sml/charging ((,class (:foreground ,base1)))) `(sml/discharging ((,class (:foreground ,base1 :weight bold)))) ;;;;; solaire `(solaire-default-face ((,class (:inherit default :background ,(solarized-color-blend base02 base03 0.5))))) `(solaire-minibuffer-face ((,class (:inherit default :background ,(solarized-color-blend base02 base03 0.5))))) `(solaire-line-number-face ((,class (:inherit (line-number solaire-default-face) :background ,(solarized-color-blend base02 base03 0.5))))) `(solaire-hl-line-face ((,class (:inherit hl-line :background ,(solarized-color-blend base02 base03 0.95))))) `(solaire-org-hide-face ((,class (:inherit org-hide :background ,(solarized-color-blend base02 base03 0.5))))) `(solaire-mode-line-face ((,class (:inherit default :background ,s-mode-line-bg)))) `(solaire-mode-line-inactive-face ((,class (:inherit default :background ,s-mode-line-inactive-bg)))) ;;;;; smartparens `(sp-pair-overlay-face ((,class (:background ,base02)))) `(sp-wrap-overlay-face ((,class (:background ,base02)))) `(sp-wrap-tag-overlay-face ((,class (:background ,base02)))) `(sp-show-pair-enclosing ((,class (:inherit highlight)))) `(sp-show-pair-match-face ((,class (:background unspecified :foreground ,magenta :weight ,s-maybe-bold)))) `(sp-show-pair-mismatch-face ((,class (:foreground ,base02 :background ,red :weight ,s-maybe-bold)))) ;;;;; spaceline `(spaceline-highlight-face ((,class (:foreground ,base1 :background ,yellow-lc)))) `(spaceline-flycheck-error ((,class (:foreground ,red)))) `(spaceline-flycheck-warning ((,class (:foreground ,yellow)))) `(spaceline-flycheck-info ((,class (:foreground ,cyan)))) ;;;;; speedbar `(speedbar-button-face ((,class (:inherit ,s-variable-pitch :foreground ,base01)))) `(speedbar-directory-face ((,class (:inherit ,s-variable-pitch :foreground ,blue)))) `(speedbar-file-face ((,class (:inherit ,s-variable-pitch :foreground ,base0)))) `(speedbar-highlight-face ((,class (:inherit ,s-variable-pitch :background ,base02)))) `(speedbar-selected-face ((,class (:inherit ,s-variable-pitch :foreground ,yellow :underline t)))) `(speedbar-separator-face ((,class (:inherit ,s-variable-pitch :background ,blue :foreground ,base03 :overline ,cyan-lc)))) `(speedbar-tag-face ((,class (:inherit ,s-variable-pitch :foreground ,green)))) ;;;;; stripe-buffer `(stripe-highlight ((,class (:background ,base02)))) ;;;;; structured-haskell `(shm-current-face ((,class (:background ,base02)))) `(shm-quarantine-face ((,class (:background ,base01)))) ;;;;; swiper `(swiper-line-face ((,class (:background ,base02)))) `(swiper-match-face-1 ((,class (:weight bold :foreground ,base1)))) `(swiper-match-face-2 ((,class (:weight bold :foreground ,yellow)))) `(swiper-match-face-3 ((,class (:weight bold :foreground ,yellow)))) `(swiper-match-face-4 ((,class (:weight bold :foreground ,yellow)))) ;;;;; swoop `(swoop-face-header-format-line ((,class (:foreground ,yellow :weight bold :height unspecified)))) `(swoop-face-line-buffer-name ((,class (:background ,base02 :foreground ,base1 :weight bold :height unspecified)))) `(swoop-face-line-number ((,class (:foreground ,base01)))) `(swoop-face-target-line ((,class (:background ,base02 :foreground unspecified)))) `(swoop-face-target-words ((,class (:background unspecified :foreground ,magenta)))) ;;;;; sx (WIP) `(sx-custom-button ((,class (:background ,base02 :foreground ,base1 :box (:line-width 2 :style released-button :height 0.9))))) `(sx-question-list-answers ((,class (:inherit sx-question-list-parent :foreground ,green :height 1.0)))) `(sx-question-list-answers-accepted ((,class (:inherit sx-question-list-answers :weight bold :underline t)))) `(sx-question-list-bounty ((,class (:foreground ,cyan)))) `(sx-question-list-date ((,class (:inherit font-lock-comment-face)))) `(sx-question-list-favorite ((,class (:inherit sx-question-list-score-upvoted)))) `(sx-question-list-parent ((,class (:inherit default)))) `(sx-question-list-read-question ((,class (:inherit sx-question-list-parent :height 1.0)))) `(sx-question-list-score ((,class (:inherit sx-question-list-parent :foreground ,base01 :height 1.0)))) `(sx-question-list-score-upvoted ((,class (:inherit sx-question-list-score :weight bold)))) `(sx-question-list-unread-question ((,class (:inherit sx-question-list-read-question :weight bold)))) `(sx-question-mode-accepted ((,class (:inherit sx-question-mode-title :foreground ,green :height 1.3)))) `(sx-question-mode-closed ((,class (:inherit font-lock-warning-face :box 2)))) `(sx-question-mode-closed-reason ((,class (:inherit sx-question-mode-title :box (:line-width 2 :color ,yellow))))) ;; TODO: sx-question-mode-content-faceexposes a general problem that's hard to deal with, ;; if base02 is used as bg some things are not visible enough.. It might be a good idea to ;; introduce yet another special color that goes a little furhter towards netural gray and ;; ensures readability as a bg for all solarized faces. If it's possible, that is. `(sx-question-mode-content-face ((,class (:background unspecified)))) `(sx-question-mode-date ((,class (:inherit font-lock-string-face)))) `(sx-question-mode-header ((,class (:inherit message-header-name :weight normal)))) `(sx-question-mode-kbd-tag ((,class (:box (:line-width 3 :style released-button :color ,base02) :weight semibold :height 0.9)))) `(sx-question-mode-score ((,class nil))) `(sx-question-mode-score-downvoted ((,class (:inherit (font-lock-warning-face sx-question-mode-score))))) `(sx-question-mode-score-upvoted ((,class (:inherit (font-lock-function-name-face sx-question-mode-score) :weight bold)))) `(sx-question-mode-sub-sup-tag ((,class (:height 0.7)))) `(sx-question-mode-title ((,class (:inherit default :weight bold)))) `(sx-question-mode-title-comments ((,class (:inherit sx-question-mode-title)))) `(sx-tag ((,class (:foreground ,base0)))) `(sx-user-accept-rate ((,class nil))) `(sx-user-name ((,class (:inherit font-lock-builtin-face)))) `(sx-user-reputation ((,class (:inherit font-lock-comment-face)))) ;;;;; syslog-mode `(syslog-ip ((,class (:background unspecified :foreground ,green :underline nil :weight normal :slant normal)))) `(syslog-hour ((,class (:background unspecified :foreground ,yellow)))) `(syslog-error ((,class (:background unspecified :foreground ,orange :weight bold)))) `(syslog-warn ((,class (:background unspecified :foreground ,yellow :weight bold)))) `(syslog-info ((,class (:background unspecified :foreground ,blue :weight bold)))) `(syslog-debug ((,class (:background unspecified :foreground ,cyan :weight bold)))) `(syslog-su ((,class (:background unspecified :foreground ,violet :weight normal)))) ;;;;;; headings `(sr-active-path-face ((,class (:background ,blue :foreground ,base03 :height ,solarized-height-plus-1 :weight bold)))) `(sr-editing-path-face ((,class (:background ,yellow :foreground ,base03 :weight bold :height ,solarized-height-plus-1)))) `(sr-highlight-path-face ((,class (:background ,green :foreground ,base03 :weight bold :height ,solarized-height-plus-1)))) `(sr-passive-path-face ((,class (:background ,base01 :foreground ,base03 :weight bold :height ,solarized-height-plus-1)))) ;;;;;; marked `(sr-marked-dir-face ((,class (:inherit dired-marked)))) `(sr-marked-file-face ((,class (:inherit dired-marked)))) `(sr-alt-marked-dir-face ((,class (:background ,magenta :foreground ,base03 :weight bold)))) `(sr-alt-marked-file-face ((,class (:background ,magenta :foreground ,base03 :weight bold)))) ;;;;;; fstat `(sr-directory-face ((,class (:inherit dired-directory :weight normal)))) `(sr-symlink-directory-face ((,class (:inherit dired-directory :slant italic :weight normal)))) `(sr-symlink-face ((,class (:inherit dired-symlink :slant italic :weight normal)))) `(sr-broken-link-face ((,class (:inherit dired-warning :slant italic :weight normal)))) ;;;;;; file types `(sr-compressed-face ((,class (:foreground ,base0)))) `(sr-encrypted-face ((,class (:foreground ,base0)))) `(sr-log-face ((,class (:foreground ,base0)))) `(sr-packaged-face ((,class (:foreground ,base0)))) `(sr-html-face ((,class (:foreground ,base0)))) `(sr-xml-face ((,class (:foreground ,base0)))) ;;;;;; misc `(sr-clex-hotchar-face ((,class (:background ,red :foreground ,base03 :weight bold)))) ;;;;; tab-bar `(tab-bar ((t (:background ,base03 :foreground ,base0)))) `(tab-bar-tab ((t (:background ,base03 :foreground ,base1)))) `(tab-bar-tab-inactive ((t (:background ,base02 :foreground ,base01)))) ;;;;; tabbar `(tabbar-default ((,class (:foreground ,base03 :background ,base03)))) `(tabbar-highlight ((,class (:underline t)))) `(tabbar-button ((,class (:foreground ,base3 :background ,base03)))) `(tabbar-button-highlight ((,class (:inherit 'tabbar-button :inverse-video t)))) `(tabbar-modified ((,class (:inherit tabbar-button :foreground ,blue :weight light :slant italic)))) `(tabbar-unselected ((,class (:inherit tabbar-default :background ,base02 :slant italic :underline nil :box (:line-width 1 :color ,base03))))) `(tabbar-unselected-modified ((,class (:inherit tabbar-modified :background ,base02 :underline nil :box (:line-width 1 :color ,base03))))) `(tabbar-selected ((,class (:inherit tabbar-default :foreground ,base3 :background ,base03 :weight bold :underline nil :box (:line-width 1 :color ,base03))))) `(tabbar-selected-modified ((,class (:inherit tabbar-selected :foreground ,blue :underline nil :box (:line-width 1 :color ,base03))))) ;;;;; centaur-tabs `(centaur-tabs-default ((t (:background ,base03 :foreground ,base0 :box nil)))) `(centaur-tabs-selected ((t (:background ,base03 :foreground ,base1 :box nil)))) `(centaur-tabs-unselected ((t (:background ,base02 :foreground ,base01 :box nil)))) `(centaur-tabs-selected-modified ((t (:background ,base03 :foreground ,orange :box nil)))) `(centaur-tabs-unselected-modified ((t (:background ,base02 :foreground ,orange :box nil)))) `(centaur-tabs-active-bar-face ((t (:background ,yellow :box nil)))) `(centaur-tabs-modified-marker-selected ((t (:inherit 'centaur-tabs-selected-modified :foreground ,yellow :box nil)))) `(centaur-tabs-modified-marker-unselected ((t (:inherit 'centaur-tabs-unselected-modified :foreground ,yellow :box nil)))) ;;;;; table `(table-cell ((,class (:foreground ,base0 :background ,base02)))) ;;;;; term `(term ((t ( :background ,base03 :foreground ,base0)))) `(term-color-black ((t (:foreground ,base02 :background ,base02)))) `(term-color-red ((t (:foreground ,red :background ,red)))) `(term-color-green ((t (:foreground ,green :background ,green)))) `(term-color-yellow ((t (:foreground ,yellow :background ,yellow)))) `(term-color-blue ((t (:foreground ,blue :background ,blue)))) `(term-color-magenta ((t (:foreground ,magenta :background ,magenta)))) `(term-color-cyan ((t (:foreground ,cyan :background ,cyan)))) `(term-color-white ((t (:foreground ,base2 :background ,base2)))) ;;;;; terraform-mode `(terraform-resource-name-face ((,class (:foreground ,green)))) `(terraform-resource-type-face ((,class (:foreground ,yellow)))) `(terraform-builtin-face ((,class (:inherit font-lock-builtin-face)))) ;;;;; todotxt `(todotxt-priority-a-face ((,class (:foreground ,orange)))) `(todotxt-priority-b-face ((,class (:foreground ,yellow)))) `(todotxt-priority-c-face ((,class (:foreground ,violet)))) ;;;;; tooltip ;; NOTE: This setting has no effect on the os widgets for me ;; zencoding uses this or setting x-gtk-use-system-tooltips nil `(tooltip ((,class (:background ,yellow-1bg :foreground ,yellow-1fg :inherit ,s-variable-pitch)))) ;;;;; transient `(transient-heading ((t (:foreground ,yellow :weight bold)))) `(transient-key ((t (:foreground ,base1 :weight bold)))) `(transient-argument ((t (:foreground ,cyan :weight bold)))) `(transient-value ((t (:foreground ,cyan :weight bold)))) `(transient-inactive-argument ((t (:foreground ,base01 :weight normal)))) `(transient-inactive-value ((t (:foreground ,base01 :weight normal)))) `(transient-unreachable ((t (:foreground ,base01 :weight normal)))) `(transient-unreachable-key ((t (:foreground ,base01 :weight normal)))) `(transient-enabled-suffix ((t (:foreground ,s-base3 :background ,green :weight bold)))) `(transient-disabled-suffix ((t (:foreground ,s-base3 :background ,red :weight bold)))) `(transient-nonstandard-key ((t (:underline nil :background ,(solarized-color-blend yellow-l s-base3 0.2))))) `(transient-mismatched-key ((t (:underline nil :background ,(solarized-color-blend red-l s-base3 0.2))))) `(transient-separator ((t (,@(and (>= emacs-major-version 27) '(:extend t)) :background ,s-line)))) ;;;;; tuareg `(tuareg-font-lock-governing-face ((,class (:foreground ,magenta :weight bold)))) `(tuareg-font-lock-multistage-face ((,class (:foreground ,blue :background ,base02 :weight bold)))) `(tuareg-font-lock-operator-face ((,class (:foreground ,base1)))) `(tuareg-font-lock-error-face ((,class (:foreground ,yellow :background ,red :weight bold)))) `(tuareg-font-lock-interactive-output-face ((,class (:foreground ,cyan)))) `(tuareg-font-lock-interactive-error-face ((,class (:foreground ,red)))) ;;;;; undo-tree `(undo-tree-visualizer-default-face ((,class (:foreground ,base01 :background ,base03)))) `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,green)))) `(undo-tree-visualizer-current-face ((,class (:foreground ,blue :inverse-video t)))) `(undo-tree-visualizer-active-branch-face ((,class (:foreground ,base1 :background ,base03 :weight bold)))) `(undo-tree-visualizer-register-face ((,class (:foreground ,yellow)))) ;;;;; volatile highlights `(vhl/default-face ((,class (:background ,green-lc :foreground ,green-hc)))) ;;;;; w3m `(w3m-anchor ((,class (:inherit link)))) `(w3m-arrived-anchor ((,class (:inherit link-visited)))) `(w3m-form ((,class (:background ,base03 :foreground ,base0)))) `(w3m-header-line-location-title ((,class (:background ,base02 :foreground ,yellow)))) `(w3m-header-line-location-content ((,class (:background ,base02 :foreground ,base0)))) `(w3m-bold ((,class (:foreground ,base1 :weight bold)))) `(w3m-image-anchor ((,class (:background ,base03 :foreground ,cyan :inherit link)))) `(w3m-image ((,class (:background ,base03 :foreground ,cyan)))) `(w3m-lnum-minibuffer-prompt ((,class (:foreground ,base1)))) `(w3m-lnum-match ((,class (:background ,base02)))) `(w3m-lnum ((,class (:underline nil :bold nil :foreground ,red)))) `(w3m-session-select ((,class (:foreground ,base0)))) `(w3m-session-selected ((,class (:foreground ,base1 :bold t :underline t)))) `(w3m-tab-background ((,class (:background ,base03 :foreground ,base0)))) `(w3m-tab-selected-background ((,class (:background ,base03 :foreground ,base0)))) `(w3m-tab-mouse ((,class (:background ,base02 :foreground ,yellow)))) `(w3m-tab-selected ((,class (:background ,base02 :foreground ,base1 :bold t)))) `(w3m-tab-unselected ((,class (:background ,base02 :foreground ,base0)))) `(w3m-tab-selected-retrieving ((,class (:background ,base02 :foreground ,red)))) `(w3m-tab-unselected-retrieving ((,class (:background ,base02 :foreground ,orange)))) `(w3m-tab-unselected-unseen ((,class (:background ,base02 :foreground ,violet)))) ;;;;; wanderlust `(wl-highlight-folder-few-face ((,class (:foreground ,red)))) `(wl-highlight-folder-many-face ((,class (:foreground ,red)))) `(wl-highlight-folder-path-face ((,class (:foreground ,orange)))) `(wl-highlight-folder-unread-face ((,class (:foreground ,blue)))) `(wl-highlight-folder-zero-face ((,class (:foreground ,base0)))) `(wl-highlight-folder-unknown-face ((,class (:foreground ,blue)))) `(wl-highlight-message-citation-header ((,class (:foreground ,red)))) `(wl-highlight-message-cited-text-1 ((,class (:foreground ,red)))) `(wl-highlight-message-cited-text-2 ((,class (:foreground ,green)))) `(wl-highlight-message-cited-text-3 ((,class (:foreground ,blue)))) `(wl-highlight-message-cited-text-4 ((,class (:foreground ,blue)))) `(wl-highlight-message-header-contents-face ((,class (:foreground ,green)))) `(wl-highlight-message-headers-face ((,class (:foreground ,red)))) `(wl-highlight-message-important-header-contents ((,class (:foreground ,green)))) `(wl-highlight-message-header-contents ((,class (:foreground ,green)))) `(wl-highlight-message-important-header-contents2 ((,class (:foreground ,green)))) `(wl-highlight-message-signature ((,class (:foreground ,green)))) `(wl-highlight-message-unimportant-header-contents ((,class (:foreground ,base0)))) `(wl-highlight-summary-answered-face ((,class (:foreground ,blue)))) `(wl-highlight-summary-disposed-face ((,class (:foreground ,base0 :slant italic)))) `(wl-highlight-summary-new-face ((,class (:foreground ,blue)))) `(wl-highlight-summary-normal-face ((,class (:foreground ,base0)))) `(wl-highlight-summary-thread-top-face ((,class (:foreground ,yellow)))) `(wl-highlight-thread-indent-face ((,class (:foreground ,magenta)))) `(wl-highlight-summary-refiled-face ((,class (:foreground ,base0)))) `(wl-highlight-summary-displaying-face ((,class (:underline t :weight bold)))) ;;;;; web-mode `(web-mode-builtin-face ((,class (:inherit font-lock-builtin-face)))) `(web-mode-comment-face ((,class (:foreground ,base01)))) `(web-mode-constant-face ((,class (:foreground ,blue :weight bold)))) `(web-mode-current-element-highlight-face ((,class (:underline unspecified :weight unspecified :background ,base02)))) `(web-mode-css-at-rule-face ((,class (:foreground ,violet :slant italic)))) `(web-mode-css-pseudo-class-face ((,class (:foreground ,green :slant italic)))) `(web-mode-doctype-face ((,class (:foreground ,base01 :slant italic :weight bold)))) `(web-mode-folded-face ((,class (:underline t)))) `(web-mode-function-name-face ((,class (:foreground ,blue)))) `(web-mode-html-attr-name-face ((,class (:foreground ,blue :slant normal)))) `(web-mode-html-attr-value-face ((,class (:foreground ,cyan :slant italic)))) `(web-mode-html-tag-face ((,class (:foreground ,green)))) `(web-mode-keyword-face ((,class (:foreground ,yellow :weight normal)))) `(web-mode-preprocessor-face ((,class (:foreground ,yellow :slant normal :weight unspecified)))) `(web-mode-string-face ((,class (:foreground ,cyan)))) `(web-mode-type-face ((,class (:foreground ,yellow)))) `(web-mode-variable-name-face ((,class (:foreground ,base0)))) `(web-mode-warning-face ((,class (:inherit font-lock-warning-face)))) `(web-mode-block-attr-name-face ((,class (:inherit web-mode-html-attr-name-face)))) `(web-mode-block-attr-value-face ((,class (:inherit web-mode-html-attr-value-face)))) `(web-mode-block-comment-face ((,class (:inherit web-mode-comment-face)))) `(web-mode-block-control-face ((,class (:foreground ,base0)))) `(web-mode-block-face ((,class (:background unspecified)))) `(web-mode-block-string-face ((,class (:inherit web-mode-string-face)))) `(web-mode-comment-keyword-face ((,class (:box 1 :weight bold)))) `(web-mode-css-color-face ((,class (:inherit font-lock-builtin-face)))) `(web-mode-css-function-face ((,class (:inherit font-lock-builtin-face)))) `(web-mode-css-priority-face ((,class (:inherit font-lock-builtin-face)))) `(web-mode-css-property-name-face ((,class (:inherit font-lock-variable-name-face)))) `(web-mode-css-selector-face ((,class (:inherit font-lock-keyword-face)))) `(web-mode-css-string-face ((,class (:inherit web-mode-string-face)))) `(web-mode-javascript-string-face ((,class (:inherit web-mode-string-face)))) `(web-mode-json-context-face ((,class (:foreground ,violet)))) `(web-mode-json-key-face ((,class (:foreground ,violet)))) `(web-mode-json-string-face ((,class (:inherit web-mode-string-face)))) `(web-mode-param-name-face ((,class (:foreground ,base0)))) `(web-mode-part-comment-face ((,class (:inherit web-mode-comment-face)))) `(web-mode-part-face ((,class (:inherit web-mode-block-face)))) `(web-mode-part-string-face ((,class (:inherit web-mode-string-face)))) `(web-mode-symbol-face ((,class (:foreground ,yellow)))) `(web-mode-whitespace-face ((,class (:background ,red)))) `(web-mode-html-tag-bracket-face ((,class (:foreground ,base01)))) `(web-mode-block-delimiter-face ((,class (:foreground ,base01 :bold t)))) `(web-mode-css-comment-face ((,class (:inherit web-mode-comment-face)))) `(web-mode-css-variable-face ((,class (:inherit web-mode-variable-name-face :slant italic)))) `(web-mode-error-face ((,class (:background ,red)))) `(web-mode-function-call-face ((,class (:inherit font-lock-function-name-face)))) `(web-mode-html-attr-custom-face ((,class (:inherit web-mode-html-attr-name-face)))) `(web-mode-html-attr-engine-face ((,class (:inherit web-mode-html-attr-custom-face)))) `(web-mode-html-attr-equal-face ((,class (:inherit web-mode-html-attr-name-face)))) `(web-mode-html-tag-custom-face ((,class (:inherit web-mode-html-tag-face)))) `(web-mode-javascript-comment-face ((,class (:inherit web-mode-comment-face)))) `(web-mode-json-comment-face ((,class (:inherit web-mode-comment-face)))) ;;;;; weather-metno `(weather-metno-date ((,class (:foreground ,yellow :height ,solarized-height-plus-3)))) `(weather-metno-date-range ((,class (:foreground ,blue)))) `(weather-metno-entry ((,class (:foreground ,cyan)))) `(weather-metno-footer ((,class (:inherit font-lock-comment-face)))) `(weather-metno-header ((,class (:inherit header-line)))) ;;;;; weechat `(weechat-error-face ((,class (:inherit error)))) `(weechat-highlight-face ((,class (:foreground ,base0 :weight bold)))) `(weechat-nick-self-face ((,class (:foreground ,base01 :weight unspecified)))) `(weechat-prompt-face ((,class (:inherit minibuffer-prompt)))) `(weechat-time-face ((,class (:foreground ,base01)))) ;;;;; wgrep `(wgrep-delete-face ((,class (:background unspecified :foreground ,blue)))) `(wgrep-done-face ((,class (:foreground ,green)))) `(wgrep-face ((,class (:background unspecified :foreground ,blue)))) `(wgrep-file-face ((,class (:background unspecified :foreground ,magenta)))) `(wgrep-reject-face ((,class (:foreground ,red :weight unspecified)))) ;;;;; which-func-mode `(which-func ((,class (:foreground ,green)))) ;;;;; which-key-mode `(which-key-command-description-face ((,class (:foreground ,base0)))) `(which-key-group-description-face ((,class (:foreground ,cyan)))) `(which-key-key-face ((,class (:bold t)))) ;;;;; whitespace-mode `(whitespace-space ((,class (:background unspecified :foreground ,base01 :inverse-video unspecified :slant italic)))) `(whitespace-hspace ((,class (:background unspecified :foreground ,base1 :inverse-video unspecified)))) `(whitespace-tab ((,class (:background unspecified :foreground ,red :inverse-video t)))) `(whitespace-newline ((,class(:background unspecified :foreground ,base01 :inverse-video unspecified)))) `(whitespace-trailing ((,class (:background unspecified :foreground ,orange-lc :inverse-video t)))) `(whitespace-line ((,class (:background unspecified :foreground ,magenta :inverse-video unspecified)))) `(whitespace-space-before-tab ((,class (:background ,red-lc :foreground unspecified :inverse-video unspecified)))) `(whitespace-indentation ((,class (:background unspecified :foreground ,yellow :inverse-video unspecified :weight bold)))) `(whitespace-empty ((,class (:background unspecified :foreground ,red-lc :inverse-video t)))) `(whitespace-space-after-tab ((,class (:background unspecified :foreground ,orange :inverse-video t :weight bold)))) ;;;;; window-divider-mode `(window-divider ((,class (:foreground ,s-mode-line-bg)))) `(window-divider-first-pixel ((,class (:foreground ,s-mode-line-bg)))) `(window-divider-last-pixel ((,class (:foreground ,s-mode-line-bg)))) ;;;;; window-number-mode `(window-number-face ((,class (:foreground ,green)))) ;;;;; woman `(woman-bold ((,class (:inherit Man-overstrike)))) `(woman-italic ((,class (:inherit Man-underline)))) ;;;;; yascroll `(yascroll:thumb-text-area ((,class (:foreground ,base01 :background ,base01)))) `(yascroll:thumb-fringe ((,class (:foreground ,base01 :background ,base01)))) ;;;;; yasnippet `(yas-field-highlight-face ((,class (:inherit secondary-selection)))) ;;;;; zencoding `(zencoding-preview-input ((,class (:background ,base02 :box ,base1)))) ;;;;; ztree `(ztreep-arrow-face ((,class (:foreground ,base01)))) `(ztreep-diff-header-face ((,class (:foreground ,base01 :weight bold :height 1.2)))) `(ztreep-diff-header-small-face ((,class (:foreground ,base01 :weight bold)))) `(ztreep-diff-model-add-face ((,class (:foreground ,blue)))) `(ztreep-diff-model-diff-face ((,class (:foreground ,red)))) `(ztreep-diff-model-normal-face ((,class (:foreground ,base0)))) `(ztreep-expand-sign-face ((,class (:foreground ,base01)))) `(ztreep-header-face ((,class (:foreground ,base01 :weight bold :height 1.2)))) `(ztreep-leaf-face ((,class (:foreground ,base0)))) `(ztreep-node-face ((,class (:foreground ,blue))))) ;;; Theme Variables (custom-theme-set-variables theme-name ;;;;; ansi-colors `(ansi-color-names-vector [,base02 ,red ,green ,yellow ,blue ,magenta ,cyan ,base00]) ;;;;; compilation `(compilation-message-face 'default) ;;;;; cua `(cua-normal-cursor-color ,base0) `(cua-read-only-cursor-color ,green) `(cua-global-mark-cursor-color ,cyan) `(cua-overwrite-cursor-color ,yellow) ;;;;; fill-column-indicator `(fci-rule-color ,base02) ;;;;; nrepl-client `(nrepl-message-colors '(,red ,orange ,yellow ,green-d ,green-l ,blue-d ,cyan ,magenta ,violet)) ;;;;; highlight-changes `(highlight-changes-colors '(,magenta ,violet)) ;;;;; highlight-parentheses `(hl-paren-colors '(,cyan ,yellow ,blue ,violet ,green)) ;;;;; highlight-symbol `(highlight-symbol-foreground-color ,base1) `(highlight-symbol-colors '(,@(mapcar (lambda (color) (solarized-color-blend color base03 0.25)) `(,yellow ,cyan ,red ,violet ,green ,orange ,blue)))) ;;;;; highlight-tail `(highlight-tail-colors '((,base02 . 0) (,green-lc . 20) (,cyan-lc . 30) (,blue-lc . 50) (,yellow-lc . 60) (,orange-lc . 70) (,magenta-lc . 85) (,base02 . 100))) ;;;;; hl-anything `(hl-fg-colors '(,base03 ,base03 ,base03 ,base03 ,base03 ,base03 ,base03 ,base03)) `(hl-bg-colors '(,yellow-lc ,orange-lc ,red-lc ,magenta-lc ,violet-lc ,blue-lc ,cyan-lc ,green-lc)) ;;;;; lsp-mode `(lsp-ui-doc-border ,base1) ;;;;; pos-tip `(pos-tip-foreground-color ,base1) `(pos-tip-background-color ,base02) ;;;;; smartrep `(smartrep-mode-line-active-bg (solarized-color-blend ,green ,s-mode-line-bg 0.2)) ;;;;; term `(term-default-fg-color ,base0) ;; @deprecated24.3 `(term-default-bg-color ,base03) ;; @deprecated24.3 ;;;;; vc `(vc-annotate-background-mode nil) `(vc-annotate-color-map '((20 . ,red) (40 . ,(solarized-color-blend yellow red (/ 2.0 4))) (60 . ,(solarized-color-blend yellow red (/ 3.0 4))) (80 . ,yellow) (100 . ,(solarized-color-blend green yellow (/ 2.0 6))) (120 . ,(solarized-color-blend green yellow (/ 3.0 6))) (140 . ,(solarized-color-blend green yellow (/ 4.0 6))) (160 . ,(solarized-color-blend green yellow (/ 5.0 6))) (180 . ,green) (200 . ,(solarized-color-blend cyan green (/ 2.0 6))) (220 . ,(solarized-color-blend cyan green (/ 3.0 6))) (240 . ,(solarized-color-blend cyan green (/ 4.0 6))) (260 . ,(solarized-color-blend cyan green (/ 5.0 6))) (280 . ,cyan) (300 . ,(solarized-color-blend blue cyan (/ 2.0 5))) (320 . ,(solarized-color-blend blue cyan (/ 3.0 5))) (340 . ,(solarized-color-blend blue cyan (/ 4.0 5))) (360 . ,blue))) `(vc-annotate-very-old-color nil) `(vc-annotate-background nil) ;;;;; weechat `(weechat-color-list '(unspecified ,base03 ,base02 ,red-d ,red ,green-d ,green ,yellow-d ,yellow ,blue-d ,blue ,magenta-d ,magenta ,cyan-d ,cyan ,base0 ,base00)) ;;;;; xterm-color `(xterm-color-names [,base02 ,red ,green ,yellow ,blue ,magenta ,cyan ,base2]) `(xterm-color-names-bright [,base03 ,orange ,base01 ,base00 ,base0 ,violet ,base1 ,base3])))) (provide 'solarized-faces) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-faces.el ends here solarized-emacs-2.0.4/solarized-zenburn-theme.el0000644000175000017500000000243714533276022021542 0ustar dogslegdogsleg;;; solarized-zenburn-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme with a zenburn palette. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-zenburn "The dark variant of the Solarized colour theme with gruvbox color palette") (solarized-with-color-variables 'dark 'solarized-zenburn solarized-zenburn-color-palette-alist) (provide-theme 'solarized-zenburn) (provide 'solarized-zenburn-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-zenburn-theme.el ends here solarized-emacs-2.0.4/Makefile0000644000175000017500000000160414533276022016076 0ustar dogslegdogslegCASK = cask export EMACS ?= emacs EMACSFLAGS = TESTFLAGS = SRCS = $(wildcard *.el) OBJS = $(SRCS:.el=.elc) .PHONY: compile test clean elpa all: compile elpa-$(EMACS): $(CASK) install $(CASK) update touch $@ elpa: elpa-$(EMACS) elpaclean: rm -f elpa* rm -rf .cask # Clean packages installed for development compile: elpa $(CASK) build clean: rm -f $(OBJS) # test: elpa # $(CASK) exec buttercup -L . run: $(CASK) exec emacs -q -l ./dev-emacs.d/init.el ${ARGS} test: elpa $(MAKE) run dev: clean elpa $(MAKE) ARGS="dev-emacs.d/test-files/* dev-emacs.d/init.el *-theme.el solarized*.el" run dev-merge: clean elpa rm -rf dev-emacs.d/test-repo git clone dev-emacs.d/test.git dev-emacs.d/test-repo git -C dev-emacs.d/test-repo checkout v2 git -C dev-emacs.d/test-repo merge origin/v1 || exit 0 $(MAKE) ARGS="dev-emacs.d/init.el *-theme.el solarized.el dev-emacs.d/test-repo" run solarized-emacs-2.0.4/solarized-dark-theme.el0000644000175000017500000000235114533276022020773 0ustar dogslegdogsleg;;; solarized-dark-theme.el --- Solarized Dark Theme for Emacs -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-dark "The dark variant of the Solarized colour theme") (solarized-with-color-variables 'dark 'solarized-dark solarized-dark-color-palette-alist) (provide-theme 'solarized-dark) (provide 'solarized-dark-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-dark-theme.el ends here solarized-emacs-2.0.4/solarized-theme-utils.el0000644000175000017500000000601514533276022021213 0ustar dogslegdogsleg;;; solarized-theme-utils.el --- Utilities for solarized theme development -*- lexical-binding: t -*- ;; Copyright (C) 2012 Thomas Frössman ;; Author: Thomas Frössman ;; URL: http://github.com/bbatsov/solarized-emacs ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; Development utilities, these are not needed for normal theme usage ;; ;;;; Code: (require 'cl-lib) (require 'solarized) (defun solarized-import-faces (&optional regexp already-defined) "Imports current effective face definitions by regular expression in the format of solarized-theme.el." (interactive (list (read-regexp "List faces matching regexp"))) (let* ((all-faces (zerop (length regexp))) (faces (delq nil (mapcar (lambda (face) (let ((s (symbol-name face))) (when (or all-faces (string-match regexp s)) face))) (sort (face-list) #'string-lessp))))) (mapc (lambda(face) (when (or (not (get face 'theme-face)) already-defined) (insert (format "`(%s ((,class %s)))%s " face (let (result) (dolist (entry face-attribute-name-alist result) (let* ((attribute (car entry)) (value (face-attribute face attribute))) (unless (eq value 'unspecified) (setq result (nconc (list attribute (cond ((cl-member attribute '(":background" ":foreground") :test 'string=) (format "\"%s\"" value)) (t value))) result)))))) (if (get face 'theme-face) (format " ;; Already set by current theme!") ""))))) faces))) (provide 'solarized-theme-utils) ;; Local Variables: ;; byte-compile-warnings: (not cl-functions) ;; indent-tabs-mode: nil ;; End: ;;; solarized-theme-utils.el ends here solarized-emacs-2.0.4/solarized-gruvbox-light-theme.el0000644000175000017500000000251614533276022022656 0ustar dogslegdogsleg;;; solarized-gruvbox-light-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme with gruvbox color palette ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-gruvbox-light "The light variant of the Solarized colour theme with gruvbox color palette") (solarized-with-color-variables 'light 'solarized-gruvbox-light solarized-gruvbox-light-color-palette-alist) (provide-theme 'solarized-gruvbox-light) (provide 'solarized-gruvbox-light-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-gruvbox-light-theme.el ends here solarized-emacs-2.0.4/solarized-light-high-contrast-theme.el0000644000175000017500000000256114533276022023734 0ustar dogslegdogsleg;;; solarized-light-high-contrast-theme.el --- Solarized Light Theme for Emacs -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The light variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-light-high-contrast "The light variant of the Solarized colour theme with slightly higher text contrast") (solarized-with-color-variables 'light 'solarized-light-high-contrast solarized-light-high-contrast-palette-alist) (provide-theme 'solarized-light-high-contrast) (provide 'solarized-light-high-contrast-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-light-high-contrast-theme.el ends here solarized-emacs-2.0.4/solarized-gruvbox-dark-theme.el0000644000175000017500000000245314533276022022470 0ustar dogslegdogsleg;;; solarized-gruvbox-dark-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-gruvbox-dark "The dark variant of the Solarized colour theme with gruvbox color palette") (solarized-with-color-variables 'dark 'solarized-gruvbox-dark solarized-gruvbox-dark-color-palette-alist) (provide-theme 'solarized-gruvbox-dark) (provide 'solarized-gruvbox-dark-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-gruvbox-dark-theme.el ends here solarized-emacs-2.0.4/colorlab/0000755000175000017500000000000014533276022016232 5ustar dogslegdogslegsolarized-emacs-2.0.4/colorlab/main.go0000644000175000017500000002651314533276022017514 0ustar dogslegdogslegpackage main import ( "bufio" "bytes" "flag" "fmt" "io" "io/ioutil" "log" "os" "strconv" "strings" cl "github.com/go-pa/colorlab" ) // Options are command line flags . type Options struct { NoElispUpdate bool } func (o *Options) Register() { flag.BoolVar(&o.NoElispUpdate, "no-update", false, "don't update ../solarized-palettes.el") } func main() { var opts Options opts.Register() flag.Parse() for _, pal := range palettes { fmt.Println(pal.Name) nc := pal.Generate() PrintAlist(os.Stdout, nc, 0) // nc.FilterPrefix("base").PrintAlist(os.Stdout, 0) // Merge(nc.FilterSuffix("-d"), oldDarkAccents.NamedColors().WithSuffix("-do")).PrintAlist(os.Stdout, 0) // Merge(nc.FilterSuffix("-l"), oldLightAccents.NamedColors().WithSuffix("-lo")).PrintAlist(os.Stdout, 0) if !opts.NoElispUpdate { RewritePalette(nc, pal.Name) } } fmt.Println("\n-----\n") } var ( default1BgFg = cl.AccentPairGenerator{ BlendBackgroundAmout: 0.85, BlendForegroundAmout: 0.3, Gamma: 0.01, MinimumLightnessDifference: 0.35, ForegroundBlendFinder: cl.ExtremeColorFgFinder, BackgroundBlendFinder: cl.ExtremeColorBgFinder, } default2BgFg = cl.AccentPairGenerator{ BlendBackgroundAmout: 0.6, BlendForegroundAmout: 0.45, Gamma: 0.04, MinimumLightnessDifference: 0.35, ForegroundBlendFinder: cl.ExtremeColorFgFinder, BackgroundBlendFinder: cl.ExtremeColorBgFinder, } palettes = []cl.Palette{ { Name: "solarized-dark", Solarized: solarized, Accent1Pair: cl.AccentPairGenerator{ BlendBackgroundAmout: default1BgFg.BlendBackgroundAmout, BlendForegroundAmout: default1BgFg.BlendForegroundAmout, Gamma: default1BgFg.Gamma, ForegroundBlendFinder: cl.NamedColorFinder("base1"), BackgroundBlendFinder: default1BgFg.BackgroundBlendFinder, MinimumLightnessDifference: 0.4, }, Accent2Pair: cl.AccentPairGenerator{ BlendBackgroundAmout: default2BgFg.BlendBackgroundAmout, BlendForegroundAmout: default2BgFg.BlendForegroundAmout, Gamma: default2BgFg.Gamma, ForegroundBlendFinder: cl.NamedColorFinder("base1"), BackgroundBlendFinder: default2BgFg.BackgroundBlendFinder, MinimumLightnessDifference: 0.4, }, }, { Name: "solarized-light", Solarized: solarized, Inverse: true, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "solarized-dark-high-contrast", Solarized: solarizedDarkHighContrast, Accent1Pair: cl.AccentPairGenerator{ BlendBackgroundAmout: default1BgFg.BlendBackgroundAmout, BlendForegroundAmout: default1BgFg.BlendForegroundAmout, Gamma: default1BgFg.Gamma, ForegroundBlendFinder: cl.NamedColorFinder("base1"), BackgroundBlendFinder: default1BgFg.BackgroundBlendFinder, MinimumLightnessDifference: 0.4, }, Accent2Pair: cl.AccentPairGenerator{ BlendBackgroundAmout: default2BgFg.BlendBackgroundAmout, BlendForegroundAmout: default2BgFg.BlendForegroundAmout, Gamma: default2BgFg.Gamma, ForegroundBlendFinder: cl.NamedColorFinder("base1"), BackgroundBlendFinder: default2BgFg.BackgroundBlendFinder, MinimumLightnessDifference: 0.4, }, }, { Name: "solarized-light-high-contrast", Solarized: solarizedLightHighContrast, Inverse: true, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "gruvbox-dark", Solarized: gruvboxDark, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "gruvbox-light", Solarized: gruvboxLight, Inverse: true, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "zenburn", Solarized: zenburn, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "monokai", Solarized: monokai, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "selenized-dark", Solarized: selenizedDark, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "selenized-black", Solarized: selenizedBlack, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "selenized-light", Solarized: selenizedLight, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, { Name: "selenized-white", Solarized: selenizedWhite, Accent1Pair: default1BgFg, Accent2Pair: default2BgFg, }, } // The original solarized color palette solarized = cl.Solarized{ Base: cl.Base{ Base03: cl.SolarizedBase03, Base02: cl.SolarizedBase02, Base01: cl.SolarizedBase01, Base00: cl.SolarizedBase00, Base0: cl.SolarizedBase0, Base1: cl.SolarizedBase1, Base2: cl.SolarizedBase2, Base3: cl.SolarizedBase3, }, Accents: cl.Accents{ Blue: cl.SolarizedBlue, Cyan: cl.SolarizedCyan, Green: cl.SolarizedGreen, Magenta: cl.SolarizedMagenta, Orange: cl.SolarizedOrange, Red: cl.SolarizedRed, Violet: cl.SolarizedViolet, Yellow: cl.SolarizedYellow, }, } solarizedDarkHighContrast = cl.Solarized{ Base: solarized.Base.Clone().ChangeLightness(0.04, -0.02), Accents: solarized.Accents.Clone().ChangeLightness(0.05), } solarizedLightHighContrast = cl.Solarized{ Base: solarized.Base.Clone().ChangeLightness(0.02, -0.05), Accents: solarized.Accents.Clone().ChangeLightness(-0.05), } // the current -d colors in the emacs theme oldDarkAccents = cl.Accents{ Blue: "#00629D", Cyan: "#00736F", Green: "#546E00", Magenta: "#93115C", Orange: "#8B2C02", Red: "#990A1B", Violet: "#3F4D91", Yellow: "#7B6000", } // the current -l colors in the emacs theme oldLightAccents = cl.Accents{ Blue: "#69B7F0", Cyan: "#69CABF", Green: "#B4C342", Magenta: "#F771AC", Orange: "#F2804F", Red: "#FF6E64", Violet: "#9EA0E5", Yellow: "#DEB542", } gruvboxDark = cl.Solarized{ Base: cl.Base{ Base03: cl.GruvboxDark0, Base02: cl.GruvboxDark0Soft, Base01: cl.GruvboxDark4, Base00: cl.GruvboxDark0, Base0: cl.GruvboxLight4, Base1: cl.GruvboxLight3, Base2: cl.GruvboxLight4, Base3: cl.GruvboxLight0, }, Accents: cl.Accents{ Blue: cl.GruvboxBlue, Cyan: cl.GruvboxAqua, Green: cl.GruvboxGreen, Magenta: cl.GruvboxBrightPurple, Orange: cl.GruvboxOrange, Red: cl.GruvboxBrightRed, Violet: cl.GruvboxPurple, Yellow: cl.GruvboxYellow, }, } // note: not inversed here gruvboxLight = cl.Solarized{ Base: cl.Base{ Base03: cl.GruvboxDark0, Base02: cl.GruvboxDark0Soft, Base01: cl.GruvboxDark3, Base00: cl.GruvboxDark4, Base0: cl.GruvboxDark1, Base1: cl.GruvboxLight4, Base2: cl.GruvboxLight1, Base3: cl.GruvboxLight0, }, Accents: cl.Accents{ Blue: cl.GruvboxDarkBlue, Cyan: cl.GruvboxAqua, Green: cl.GruvboxGreen, Magenta: cl.GruvboxBrightPurple, Orange: cl.GruvboxDarkOrange, Red: cl.GruvboxDarkRed, Violet: cl.GruvboxDarkPurple, Yellow: cl.GruvboxDarkYellow, }, } zenburn = cl.Solarized{ Base: cl.Base{ Base03: cl.ZenburnBg, Base02: cl.ZenburnBgP1, Base01: cl.HexColor(cl.ZenburnFgM1).Blend(cl.ZenburnFg, 0.3), Base00: cl.ZenburnBgP3, Base0: cl.ZenburnFg, Base1: cl.ZenburnFgP1, Base2: cl.HexColor(cl.ZenburnFgP1).Blend(cl.ZenburnFgP2, 0.5), Base3: cl.ZenburnFgP2, }, Accents: cl.Accents{ Blue: cl.ZenburnBlue, Cyan: cl.ZenburnCyan, Green: cl.ZenburnGreen, Magenta: cl.ZenburnMagenta, Orange: cl.ZenburnOrange, Red: cl.ZenburnRed, Violet: cl.HexColor(cl.ZenburnBlue).Blend(cl.ZenburnMagenta, 0.5), Yellow: cl.ZenburnYellow, }, } monokai = cl.Solarized{ Base: cl.Base{ Base03: cl.Monokai03, Base02: cl.Monokai02, Base01: cl.Monokai01, Base00: cl.Monokai00, Base0: cl.Monokai0, Base1: cl.Monokai0, Base2: cl.Monokai0, Base3: cl.Monokai0, }, Accents: cl.Accents{ Blue: cl.MonokaiBlue, Cyan: cl.MonokaiCyan, Green: cl.MonokaiGreen, Magenta: cl.MonokaiMagenta, Orange: cl.MonokaiOrange, Red: cl.MonokaiRed, Violet: cl.MonokaiViolet, Yellow: cl.MonokaiYellow, }, } selenizedDark = cl.Solarized{ Base: cl.Base{ Base03: "#103c48", Base02: "#184956", Base01: "#72898f", Base00: "#103c48", Base0: "#adbcbc", Base1: "#cad8d9", Base2: "#ece3cc", Base3: "#fbf3db", }, Accents: cl.Accents{ Blue: "#4695f7", Cyan: "#41c7b9", Green: "#75b938", Magenta: "#f275be", Orange: "#ed8649", Red: "#fa5750", Violet: "#af88eb", Yellow: "#dbb32d", }, } selenizedBlack = cl.Solarized{ Base: cl.Base{ Base03: "#181818", Base02: "#252525", Base01: "#777777", Base00: "#181818", Base0: "#b9b9b9", Base1: "#dedede", Base2: "#53676d", Base3: "#3a4d53", }, Accents: cl.Accents{ Blue: "#368aeb", Cyan: "#3fc5b7", Green: "#70b433", Magenta: "#eb6eb7", Orange: "#e67f43", Red: "#ed4a46", Violet: "#a580e2", Yellow: "#dbb32d", }, } selenizedLight = cl.Solarized{ Base: cl.Base{ Base03: "#fbf3db", Base02: "#ece3cc", Base01: "#909995", Base00: "#fbf3db", Base0: "#53676d", Base1: "#3a4d53", Base2: "#adbcbc", Base3: "#cad8d9", }, Accents: cl.Accents{ Blue: "#0072d4", Cyan: "#009c8f", Green: "#489100", Magenta: "#ca4898", Orange: "#c25d1e", Red: "#d2212d", Violet: "#8762c6", Yellow: "#ad8900", }, } selenizedWhite = cl.Solarized{ Base: cl.Base{ Base03: "#ffffff", Base02: "#ebebeb", Base01: "#878787", Base00: "#ffffff", Base0: "#474747", Base1: "#282828", Base2: "#b9b9b9", Base3: "#dedede", }, Accents: cl.Accents{ Blue: "#0064e4", Cyan: "#00ad9c", Green: "#1d9700", Magenta: "#dd0f9d", Orange: "#d04a00", Red: "#d6000c", Violet: "#7f51d6", Yellow: "#c49700", }, } ) // PrintAlist prints the named colors list in a way that is compatible with solarized-palettes.el. func PrintAlist(w io.Writer, n cl.NamedColors, indent int) (int, error) { keys := cl.OrderedKeys(n) var longestKey int for _, n := range keys { l := len(n) if l > longestKey { longestKey = l } } prefix := "" for i := 0; i < indent; i++ { prefix += " " } var nt int for _, name := range keys { n, err := fmt.Fprintf(w, "%s(%-"+strconv.Itoa(longestKey)+"s . \"%s\")\n", prefix, name, n[name]) n = n + nt if err != nil { return nt, err } } return nt, nil } func RewritePalette(nc cl.NamedColors, paletteName string) { var dst bytes.Buffer file, err := os.Open("../solarized-palettes.el") if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) var insideReplacement bool for scanner.Scan() { txt := scanner.Text() if insideReplacement && strings.HasSuffix(txt, ";; palette end") { insideReplacement = false } if !insideReplacement { dst.WriteString(txt) dst.WriteString("\n") } if strings.HasSuffix(txt, fmt.Sprintf(";; %s palette", paletteName)) { insideReplacement = true PrintAlist(&dst, nc, 4) } } if err := scanner.Err(); err != nil { log.Fatal(err) } file.Close() ioutil.WriteFile("../solarized-palettes.el", dst.Bytes(), 0x776) } solarized-emacs-2.0.4/colorlab/go.mod0000644000175000017500000000014614533276022017341 0ustar dogslegdogslegmodule github.com/bbatsov/solarized-emacs/colorlab go 1.13 require github.com/go-pa/colorlab v0.1.2 solarized-emacs-2.0.4/colorlab/README.md0000644000175000017500000000135714533276022017517 0ustar dogslegdogsleg# colorlab This utility generates color palette lists for use in themes. `color.el` can be a bit cumbersome and it *might* not have every color feature we want so for the sake of easy experimentation it's written in Go because I found a more fully featured color package to work with. When we know more about which color functionality is actually required we might port missing features and translate color palette generation into elisp as well. This utility is currently not documented or very user friendly since it's an internal tool under development. The utility requires at least go 1.13 `go run main.go` will rewrite all palettes in `../solarized-palettes.el` when run. See https://godoc.org/github.com/bbatsov/solarized-emacs/colorlab solarized-emacs-2.0.4/colorlab/go.sum0000644000175000017500000000054414533276022017370 0ustar dogslegdogsleggithub.com/go-pa/colorlab v0.1.2 h1:Bc1QO8LgETEpSQS01Q/mgPrWf3PxjHUaYoF+fq86Wt8= github.com/go-pa/colorlab v0.1.2/go.mod h1:aeT2ZeYjnocSnxMNS+t1hQkJA+xmBC0xHKSPo6pk3a8= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= solarized-emacs-2.0.4/solarized-selenized-white-theme.el0000644000175000017500000000250414533276022023152 0ustar dogslegdogsleg;;; solarized-selenized-white-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The white variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-selenized-white "The white variant of the Solarized colour theme with selenized color palette") (solarized-with-color-variables 'dark 'solarized-selenized-white solarized-selenized-white-color-palette-alist) (provide-theme 'solarized-selenized-white) (provide 'solarized-selenized-white-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-selenized-white-theme.el ends here solarized-emacs-2.0.4/solarized-light-theme.el0000644000175000017500000000236414533276022021165 0ustar dogslegdogsleg;;; solarized-light-theme.el --- Solarized Light Theme for Emacs -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The light variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-light "The light variant of the Solarized colour theme") (solarized-with-color-variables 'light 'solarized-light solarized-light-color-palette-alist) (provide-theme 'solarized-light) (provide 'solarized-light-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-light-theme.el ends here solarized-emacs-2.0.4/child-theme-example/0000755000175000017500000000000014533276022020251 5ustar dogslegdogslegsolarized-emacs-2.0.4/child-theme-example/my-solarized.el0000644000175000017500000000030514533276022023210 0ustar dogslegdogsleg(defvar my-solarized-theme '("My solarized child theme." (custom-theme-set-faces theme-name `(default ((,class (:foreground ,red :background ,base03))))))) (provide 'my-solarized) solarized-emacs-2.0.4/child-theme-example/themes/0000755000175000017500000000000014533276022021536 5ustar dogslegdogslegsolarized-emacs-2.0.4/child-theme-example/themes/my-solarized-dark-theme.el0000644000175000017500000000061614533276022026521 0ustar dogslegdogsleg(require 'solarized) (require 'my-solarized) (eval-when-compile (require 'solarized-palettes)) ;; This files needs to be places iside the custom-theme-load-path list (deftheme my-solarized-dark "The dark variant of the Solarized colour theme") (solarized-with-color-variables 'dark 'my-solarized-dark solarized-dark-color-palette-alist my-solarized-theme) (provide-theme 'my-solarized-dark) solarized-emacs-2.0.4/child-theme-example/themes/my-solarized-light-theme.el0000644000175000017500000000062414533276022026706 0ustar dogslegdogsleg(require 'solarized) (require 'my-solarized) (eval-when-compile (require 'solarized-palettes)) ;; This files needs to be places iside the custom-theme-load-path list (deftheme my-solarized-light "The light variant of the Solarized colour theme") (solarized-with-color-variables 'light 'my-solarized-light solarized-light-color-palette-alist my-solarized-theme) (provide-theme 'my-solarized-light) solarized-emacs-2.0.4/child-theme-example/.nosearch0000644000175000017500000000000014533276022022042 0ustar dogslegdogslegsolarized-emacs-2.0.4/solarized-theme.el0000644000175000017500000000302114533276022020047 0ustar dogslegdogsleg;;; solarized-theme.el --- The Solarized color theme -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; Author: Bozhidar Batsov ;; Author: Thomas Frössman ;; URL: http://github.com/bbatsov/solarized-emacs ;; Version: 2.0.1 ;; Package-Requires: ((emacs "24.1")) ;; Keywords: convenience, themes, solarized ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; A port of Solarized to Emacs. ;; ;;; Installation: ;; ;; Drop the `solarized-theme.el` somewhere in your `load-path` and ;; the two themes in a folder that is on `custom-theme-load-path' ;; and enjoy! ;; ;; Don't forget that the theme requires Emacs 24. ;; ;;; Credits ;; ;; Ethan Schoonover created the original theme for vim on such this port ;; is based. ;; ;;; Code: (require 'solarized) (provide 'solarized-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-theme.el ends here solarized-emacs-2.0.4/solarized-dark-high-contrast-theme.el0000644000175000017500000000255014533276022023544 0ustar dogslegdogsleg;;; solarized-dark-high-contrast-theme.el --- Solarized Light Theme for Emacs -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-dark-high-contrast "The dark variant of the Solarized colour theme with slightly higher text contrast") (solarized-with-color-variables 'dark 'solarized-dark-high-contrast solarized-dark-high-contrast-palette-alist) (provide-theme 'solarized-dark-high-contrast) (provide 'solarized-dark-high-contrast-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-dark-high-contrast-theme.el ends here solarized-emacs-2.0.4/UPGRADE-GUIDE.md0000644000175000017500000000513614533276022016706 0ustar dogslegdogsleg# solarized theme upgrade guide This upgrade guide is meant as a way for people who don't read emacs lisp to adapt to structural changes with minimal effort. ## 2019-11-17 - child theme usage This is an example of how to adapt derived child themes to the changes: ### before **my-solarized.el** ```el (require 'solarized) (defun my-solarized-theme () "My personal solarized theme customization." (custom-theme-set-faces theme-name `(rainbow-delimiters-depth-1-face ((,class (:foreground ,base02))))) (custom-theme-set-variables theme-name `(org-todo-keyword-faces (quote (("TODO" :foreground ,cyan :weight bold :slant italic :underline nil)))))) (provide 'my-solarized) ``` **themes/my-solarized-light-theme.el** ```el (require 'solarized) (require 'my-solarized) (deftheme my-solarized-light "The light variant of the Solarized colour theme") (create-solarized-theme 'light 'my-solarized-light 'my-solarized-theme) (provide-theme 'my-solarized-light) ``` **themes/my-solarized-dark-theme.el** ```el (require 'solarized) (require 'my-solarized) (deftheme my-solarized-dark "The light variant of the Solarized colour theme") (create-solarized-theme 'dark 'my-solarized-dark 'my-solarized-theme) (provide-theme 'my-solarized-dark) ``` ### after **my-solarized.el** ```el (require 'solarized) (setq my-solarized-faces '("My personal solarized theme customization." (custom-theme-set-faces theme-name `(rainbow-delimiters-depth-1-face ((,class (:foreground ,base02))))) (custom-theme-set-variables theme-name `(org-todo-keyword-faces (quote (("TODO" :foreground ,cyan :weight bold :slant italic :underline nil))))))) (provide 'my-solarized) ``` **themes/my-solarized-light-theme.el** ```el (require 'solarized) (require 'my-solarized) (eval-when-compile (require 'solarized-palettes)) ;; This files needs to be places iside the custom-theme-load-path list (deftheme my-solarized-light "The light variant of the Solarized colour theme") (solarized-with-color-variables 'light 'my-solarized-light solarized-light-color-palette-alist my-solarized-faces) (provide-theme 'my-solarized-light) ``` **my-solarized-dark-theme.el** ```el (require 'solarized) (require 'my-solarized) (eval-when-compile (require 'solarized-palettes)) ;; This files needs to be places iside the custom-theme-load-path list (deftheme my-solarized-dark "The dark variant of the Solarized colour theme") (solarized-with-color-variables 'dark 'my-solarized-dark solarized-dark-color-palette-alist my-solarized-faces) (provide-theme 'my-solarized-dark) ``` solarized-emacs-2.0.4/solarized.el0000644000175000017500000004550114533276022016760 0ustar dogslegdogsleg;;; solarized.el --- Solarized theme -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; Author: Bozhidar Batsov ;; Author: Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Main solarized file ;;; Code: (require 'cl-lib) (require 'color) (require 'solarized-faces) ;;; Options (defgroup solarized nil "Solarized theme options. The theme has to be reloaded after changing anything in this group." :group 'faces) (defcustom solarized-theme-dir (locate-user-emacs-file "themes/") "Directory to save theme file." :type 'directory :group 'solarized) (defcustom solarized-distinct-fringe-background nil "Make the fringe background different from the normal background color. Also affects `linum-mode' background." :type 'boolean :group 'solarized) (defcustom solarized-distinct-doc-face nil "Make `font-lock-doc-face' stand out more. Related discussion: https://github.com/bbatsov/solarized-emacs/issues/158" :type 'boolean :group 'solarized) (defcustom solarized-use-variable-pitch t "Use variable pitch face for some headings and titles." :type 'boolean :group 'solarized) (defcustom solarized-use-less-bold nil "Use bold weight less often." :type 'boolean :group 'solarized) (defcustom solarized-use-more-italic nil "Use italic slant more often." :type 'boolean :group 'solarized) (defcustom solarized-emphasize-indicators t "Use more colors for indicators such as git:gutter, flycheck and similar." :type 'boolean :group 'solarized) (defcustom solarized-high-contrast-mode-line nil "Make the active/inactive mode line stand out more." :type 'boolean :group 'solarized) (defcustom solarized-height-minus-1 0.8 "Font size -1." :type 'number :group 'solarized) (defcustom solarized-height-plus-1 1.1 "Font size +1." :type 'number :group 'solarized) (defcustom solarized-height-plus-2 1.15 "Font size +2." :type 'number :group 'solarized) (defcustom solarized-height-plus-3 1.2 "Font size +3." :type 'number :group 'solarized) (defcustom solarized-height-plus-4 1.3 "Font size +4." :type 'number :group 'solarized) (defcustom solarized-scale-org-headlines t "Whether `org-mode' headlines should be scaled." :type 'boolean :group 'solarized) (defcustom solarized-scale-markdown-headlines nil "Whether `markdown-mode' headlines should be scaled." :type 'boolean :group 'solarized) (defcustom solarized-scale-outline-headlines t "Whether `outline-mode' headlines should be scaled." :type 'boolean :group 'solarized) ;;; Utilities (defun solarized-color-clamp-lab (lab) "Restricts a LAB colorspace color if it is out of bounds." (list (min (max (nth 0 lab) 0.0) 100.0) (min (max (nth 1 lab) -128) 127) (min (max (nth 2 lab) -128) 127))) (defun solarized-color-rgb-to-hex (red green blue &optional digits-per-component round) "Return hexadecimal #RGB notation for the color specified by RED GREEN BLUE. RED, GREEN, and BLUE should be numbers between 0.0 and 1.0, inclusive. Optional argument DIGITS-PER-COMPONENT can be either 4 (the default) or 2; use the latter if you need a 24-bit specification of a color. Optional argument ROUND rounds values which probably is what you usually want." (or digits-per-component (setq digits-per-component 4)) (let* ((maxval (if (= digits-per-component 2) 255 65535)) (fmt (if (= digits-per-component 2) "#%02x%02x%02x" "#%04x%04x%04x"))) (if round (format fmt (+ 0.5 (* red maxval)) (+ 0.5 (* green maxval)) (+ 0.5(* blue maxval))) (format fmt (* red maxval) (* green maxval) (* blue maxval))))) ;;;###autoload (defun solarized-color-blend (color1 color2 alpha &optional digits-per-component) "Blends COLOR1 onto COLOR2 with ALPHA. COLOR1 and COLOR2 should be color names (e.g. \"white\") or RGB triplet strings (e.g. \"#ff12ec\"). Alpha should be a float between 0 and 1. Optional argument DIGITS-PER-COMPONENT can be either 4 (the default) or 2; use the latter if you need a 24-bit specification of a color." (let ((args (mapcar 'color-clamp (apply 'color-lab-to-srgb (solarized-color-clamp-lab (cl-mapcar (lambda (v1 v2) (+ v1 (* alpha (- v2 v1)))) (apply 'color-srgb-to-lab (color-name-to-rgb color2)) (apply 'color-srgb-to-lab (color-name-to-rgb color1)))))))) (apply 'solarized-color-rgb-to-hex `(,@args ,digits-per-component t)))) ;;;###autoload (defun solarized-create-color-palette (core-palette) "Create color-palette from CORE-PALETTE. The Returned color-palette has the same format as `solarized-color-palette'" (let ((darkest-base (nth 0 core-palette)) (brightest-base (nth 1 core-palette)) (yellow (nth 2 core-palette)) (orange (nth 3 core-palette)) (red (nth 4 core-palette)) (magenta (nth 5 core-palette)) (violet (nth 6 core-palette)) (blue (nth 7 core-palette)) (cyan (nth 8 core-palette)) (green (nth 9 core-palette))) `((base03 . ,(solarized-color-blend darkest-base brightest-base 1.00 2)) (base02 . ,(solarized-color-blend darkest-base brightest-base 0.97 2)) (base01 . ,(solarized-color-blend darkest-base brightest-base 0.65 2)) (base00 . ,(solarized-color-blend darkest-base brightest-base 0.60 2)) (base0 . ,(solarized-color-blend darkest-base brightest-base 0.48 2)) (base1 . ,(solarized-color-blend darkest-base brightest-base 0.42 2)) (base2 . ,(solarized-color-blend darkest-base brightest-base 0.06 2)) (base3 . ,(solarized-color-blend darkest-base brightest-base 0.00 2)) ;; Solarized accented colors (yellow . ,yellow) (orange . ,orange) (red . ,red) (magenta . ,magenta) (violet . ,violet) (blue . ,blue) (cyan . ,cyan) (green . ,green) ;; Darker and lighter accented colors ;; Only use these in exceptional circumstances! (yellow-d . ,(solarized-color-blend darkest-base yellow 0.80 2)) (yellow-l . ,(solarized-color-blend brightest-base yellow 0.80 2)) (orange-d . ,(solarized-color-blend darkest-base orange 0.80 2)) (orange-l . ,(solarized-color-blend brightest-base orange 0.80 2)) (red-d . ,(solarized-color-blend darkest-base red 0.80 2)) (red-l . ,(solarized-color-blend brightest-base red 0.80 2)) (magenta-d . ,(solarized-color-blend darkest-base magenta 0.80 2)) (magenta-l . ,(solarized-color-blend brightest-base magenta 0.80 2)) (violet-d . ,(solarized-color-blend darkest-base violet 0.80 2)) (violet-l . ,(solarized-color-blend brightest-base violet 0.80 2)) (blue-d . ,(solarized-color-blend darkest-base blue 0.80 2)) (blue-l . ,(solarized-color-blend brightest-base blue 0.80 2)) (cyan-d . ,(solarized-color-blend darkest-base cyan 0.80 2)) (cyan-l . ,(solarized-color-blend brightest-base cyan 0.80 2)) (green-d . ,(solarized-color-blend darkest-base green 0.80 2)) (green-l . ,(solarized-color-blend brightest-base green 0.80 2)) (yellow-1bg . ,(solarized-color-blend darkest-base yellow 0.85 2)) (orange-1bg . ,(solarized-color-blend darkest-base orange 0.85 2)) (red-1bg . ,(solarized-color-blend darkest-base red 0.85 2)) (magenta-1bg . ,(solarized-color-blend darkest-base magenta 0.85 2)) (blue-1bg . ,(solarized-color-blend darkest-base blue 0.85 2)) (cyan-1bg . ,(solarized-color-blend darkest-base cyan 0.85 2)) (green-1bg . ,(solarized-color-blend darkest-base green 0.85 2)) (violet-1bg . ,(solarized-color-blend darkest-base violet 0.85 2)) (yellow-1fg . ,(solarized-color-blend brightest-base yellow 0.30 2)) (orange-1fg . ,(solarized-color-blend brightest-base orange 0.30 2)) (red-1fg . ,(solarized-color-blend brightest-base red 0.30 2)) (magenta-1fg . ,(solarized-color-blend brightest-base magenta 0.30 2)) (violet-1fg . ,(solarized-color-blend brightest-base violet 0.30 2)) (blue-1fg . ,(solarized-color-blend brightest-base blue 0.30 2)) (cyan-1fg . ,(solarized-color-blend brightest-base cyan 0.30 2)) (green-1fg . ,(solarized-color-blend brightest-base green 0.30 2)) (yellow-2bg . ,(solarized-color-blend darkest-base yellow 0.60 2)) (orange-2bg . ,(solarized-color-blend darkest-base orange 0.60 2)) (red-2bg . ,(solarized-color-blend darkest-base red 0.60 2)) (magenta-2bg . ,(solarized-color-blend darkest-base magenta 0.60 2)) (violet-2bg . ,(solarized-color-blend darkest-base violet 0.60 2)) (blue-2bg . ,(solarized-color-blend darkest-base blue 0.60 2)) (cyan-2bg . ,(solarized-color-blend darkest-base cyan 0.60 2)) (green-2bg . ,(solarized-color-blend darkest-base green 0.60 2)) (yellow-2fg . ,(solarized-color-blend brightest-base yellow 0.45 2)) (orange-2fg . ,(solarized-color-blend brightest-base orange 0.45 2)) (red-2fg . ,(solarized-color-blend brightest-base red 0.45 2)) (magenta-2fg . ,(solarized-color-blend brightest-base magenta 0.45 2)) (violet-2fg . ,(solarized-color-blend brightest-base violet 0.45 2)) (blue-2fg . ,(solarized-color-blend brightest-base blue 0.45 2)) (cyan-2fg . ,(solarized-color-blend brightest-base cyan 0.45 2)) (green-2fg . ,(solarized-color-blend brightest-base green 0.45 2))))) ;;; Setup Start (defmacro solarized-with-color-variables (variant theme-name color-palette &optional childtheme-sexp) "Eval `solarized-definition' in solarized COLOR-PALETTE for THEME-NAME. VARIANT is \\='dark or \\='light. When optional argument CHILDTHEME-SEXP sexp is supplied it\\='s invoked to further customize the resulting theme." (declare (indent defun)) (let ((color-palette* (eval color-palette))) `(let* ((class '((class color) (min-colors 89))) (light-class (append '((background light)) class)) (dark-class (append '((background dark)) class)) (theme-name ,theme-name) (variant ,variant) ,@(mapcar (lambda (elm) `(,(car elm) ,(cdr elm))) color-palette*) (s-base03 base03) (s-base02 base02) (s-base01 base01) (s-base00 base00) (s-base3 base3) (s-base2 base2) (s-base1 base1) (s-base0 base0) ;; Solarized palette names, use these instead of -fg -bg... (base03 (if (eq variant 'light) s-base3 s-base03)) (base02 (if (eq variant 'light) s-base2 s-base02)) (base01 (if (eq variant 'light) s-base1 s-base01)) (base00 (if (eq variant 'light) s-base0 s-base00)) (base0 (if (eq variant 'light) s-base00 s-base0)) (base1 (if (eq variant 'light) s-base01 s-base1)) (base2 (if (eq variant 'light) s-base02 s-base2)) (base3 (if (eq variant 'light) s-base03 s-base3)) ;; Line drawing color ;; ;; NOTE only use this for very thin lines that are hard to see using base02, in low ;; color displayes base02 might be used instead (s-line (if (eq variant 'light) "#cccec4" "#284b54")) ;; Light/Dark adaptive higher/lower contrast accented colors ;; ;; NOTE Only use these in exceptional cirmumstances! (yellow-hc (if (eq variant 'light) yellow-d yellow-l)) (yellow-lc (if (eq variant 'light) yellow-l yellow-d)) (orange-hc (if (eq variant 'light) orange-d orange-l)) (orange-lc (if (eq variant 'light) orange-l orange-d)) (red-hc (if (eq variant 'light) red-d red-l)) (red-lc (if (eq variant 'light) red-l red-d)) (magenta-hc (if (eq variant 'light) magenta-d magenta-l)) (magenta-lc (if (eq variant 'light) magenta-l magenta-d)) (violet-hc (if (eq variant 'light) violet-d violet-l)) (violet-lc (if (eq variant 'light) violet-l violet-d)) (blue-hc (if (eq variant 'light) blue-d blue-l)) (blue-lc (if (eq variant 'light) blue-l blue-d)) (cyan-hc (if (eq variant 'light) cyan-d cyan-l)) (cyan-lc (if (eq variant 'light) cyan-l cyan-d)) (green-hc (if (eq variant 'light) green-d green-l)) (green-lc (if (eq variant 'light) green-l green-d)) ;; customize based face properties (s-maybe-bold (if solarized-use-less-bold 'unspecified 'bold)) (s-maybe-italic (if solarized-use-more-italic 'italic 'normal)) (s-variable-pitch (if solarized-use-variable-pitch 'variable-pitch 'default)) (s-fringe-bg (if solarized-distinct-fringe-background base02 base03)) (s-fringe-fg base01) (s-header-line-fg (if solarized-high-contrast-mode-line base1 base0)) (s-header-line-bg (if solarized-high-contrast-mode-line base02 base03)) (s-header-line-underline (if solarized-high-contrast-mode-line nil base02)) (s-mode-line-fg (if solarized-high-contrast-mode-line base03 base0)) (s-mode-line-bg (if solarized-high-contrast-mode-line base0 base02)) (s-mode-line-underline (if solarized-high-contrast-mode-line nil s-line)) (s-mode-line-buffer-id-fg (if solarized-high-contrast-mode-line 'unspecified base1)) (s-mode-line-inactive-fg (if solarized-high-contrast-mode-line base0 base01)) (s-mode-line-inactive-bg (if solarized-high-contrast-mode-line base02 base03)) (s-mode-line-inactive-bc (if solarized-high-contrast-mode-line base02 base02)) ;; diff colors (s-diff-A-bg red-1bg) (s-diff-A-fg red-1fg) (s-diff-fine-A-bg red-2bg) (s-diff-fine-A-fg red-2fg) (s-diff-B-bg green-1bg) (s-diff-B-fg green-1fg) (s-diff-fine-B-bg green-2bg) (s-diff-fine-B-fg green-2fg) (s-diff-Ancestor-bg yellow-1bg) (s-diff-Ancestor-fg yellow-1fg) (s-diff-fine-Ancestor-bg yellow-2bg) (s-diff-fine-Ancestor-fg yellow-2fg) (s-diff-C-bg blue-1bg) (s-diff-C-fg blue-1fg) (s-diff-fine-C-bg blue-2bg) (s-diff-fine-C-fg blue-2fg) (s-diff-context-fg base0) (s-diff-heading-bg base02) (s-diffstat-added-fg green) (s-diffstat-changed-fg blue) (s-diffstat-removed-fg red)) ;; NOTE: `custom--inhibit-theme-enable' turn-off needed ;; childtheme works well disscussed in #352 (let ((custom--inhibit-theme-enable nil)) ,@solarized-definition ,@(eval childtheme-sexp))))) (defmacro solarized-with-color-variables-with-palette (variant theme-name core-palette &optional childtheme-sexp) "Create a VARIANT of the theme named THEME-NAME with CORE-PALETTE. When optional argument CHILDTHEME-SEXP sexp is supplied it's invoked to further customize the resulting theme. CORE-PALETTE is core color-palette." (declare (indent 2)) (let ((color-palette (solarized-create-color-palette (eval core-palette)))) `(solarized-with-color-variables ,variant ,theme-name ',color-palette ,childtheme-sexp))) (defun solarized-create-theme-file (variant theme-name color-palette &optional childtheme-sexp overwrite) "Create a VARIANT of the theme named THEME-NAME with COLOR-PALETTE. When optional argument CHILDTHEME-SEXP sexp is supplied it's invoked to further customize the resulting theme. CORE-PALETTE is core color-palette. If OVERWRITE is non-nil, overwrite theme file if exist." (declare (indent 2)) (add-to-list 'custom-theme-load-path solarized-theme-dir) (let ((path (expand-file-name (format "%s.el" theme-name) solarized-theme-dir))) (unless (file-directory-p solarized-theme-dir) (make-directory solarized-theme-dir)) (when (or overwrite (not (file-readable-p path))) (with-temp-file (expand-file-name (format "%s-theme.el" theme-name) solarized-theme-dir) (mapc (lambda (elm) (insert (pp-to-string elm))) `((require 'solarized) (deftheme ,theme-name ,(format "The %s colour theme of Solarized colour theme flavor." theme-name)) (solarized-with-color-variables ',variant ',theme-name ',color-palette ',childtheme-sexp) (provide-theme ',theme-name) (provide ',(intern (format "%s-theme" theme-name))))))) path)) (defun solarized-create-theme-file-with-palette (variant theme-name core-palette &optional childtheme-sexp overwrite) "Create a VARIANT of the theme named THEME-NAME with CORE-PALETTE. When optional argument CHILDTHEME-SEXP sexp is supplied it's invoked to further customize the resulting theme. CORE-PALETTE is core color-palette. If OVERWRITE is non-nil, overwrite theme file if exist." (declare (indent 2)) (let ((color-palette (solarized-create-color-palette core-palette))) (apply #'solarized-create-theme-file (list variant theme-name color-palette childtheme-sexp overwrite)))) (define-obsolete-function-alias 'create-solarized-theme-file 'solarized-create-theme-file "1.3.0") ;;; Footer ;;;###autoload (when (and (boundp 'custom-theme-load-path) load-file-name) (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name)))) (provide 'solarized) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized.el ends here solarized-emacs-2.0.4/solarized-wombat-dark-theme.el0000644000175000017500000000444714533276022022272 0ustar dogslegdogsleg;;; solarized-wombat-dark-theme.el --- Solarized dark theme with the wombat palette -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The the dark solarized theme with the wombat palette ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-wombat-dark "The the dark solarized theme with the wombat palette") (solarized-with-color-variables-with-palette 'dark 'solarized-wombat-dark '("#2a2a29" "#f6f3e8" ; base03 (02 01 00 0 1 2) base3 "#e5c06d" "#ddaa6f" ; yellow orange "#ffb4ac" "#e5786d" ; red magenta "#834c98" "#a4b5e6" ; violet blue "#7ec98f" "#8ac6f2" ; cyan green ) '((custom-theme-set-faces theme-name `(default ((,class (:foreground ,(solarized-color-blend base03 base3 0.15 2) :background ,base03)))) `(highlight ((,class (:background ,violet)))) `(font-lock-builtin-face ((,class (:foreground ,magenta)))) `(font-lock-constant-face ((,class (:foreground ,blue)))) `(font-lock-comment-face ((,class (:foreground ,base00)))) `(mode-line ((,class (:foreground ,base2 :background ,(solarized-color-blend base03 base3 0.85 2))))) `(mode-line-inactive ((,class (:foreground ,base00 :background ,(solarized-color-blend base03 "black" 0.85 2))))) `(mode-line-buffer-id ((,class (:foreground ,base3 :weight bold)))) `(minibuffer-prompt ((,class (:foreground ,base1))))))) (provide-theme 'solarized-wombat-dark) (provide 'solarized-wombat-dark-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-wombat-dark-theme.el ends here solarized-emacs-2.0.4/dev-emacs.d/0000755000175000017500000000000014533276022016523 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/0000755000175000017500000000000014533276022020264 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/config0000644000175000017500000000024614533276022021456 0ustar dogslegdogsleg[core] repositoryformatversion = 0 filemode = true bare = true [remote "origin"] url = /home/thomasf/src/github.com/bbatsov/solarized-emacs/dev-emacs.d/test-repo solarized-emacs-2.0.4/dev-emacs.d/test.git/description0000644000175000017500000000011114533276022022523 0ustar dogslegdogslegUnnamed repository; edit this file 'description' to name the repository. solarized-emacs-2.0.4/dev-emacs.d/test.git/objects/0000755000175000017500000000000014533276022021715 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/info/0000755000175000017500000000000014533276022022650 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/info/packs0000644000175000017500000000006614533276022023676 0ustar dogslegdogslegP pack-a610aeb18a8502fe396671813f6bf9d6e1d28b57.pack solarized-emacs-2.0.4/dev-emacs.d/test.git/objects/de/0000755000175000017500000000000014533276022022305 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/de/8281fd3c7b63686a3554125d1983851027f01b0000644000175000017500000010651514533276022027013 0ustar dogslegdogslegxw[Ǒ-֧8C @EB,'7c,ɎVlIKR7O@p f|qI]skgg馹XOO.lq\M69Y-Ϛôyqy1=ڬGw~7[7g.&d3]7wSLW'isZ~Oëf17l23lV -w539h pMt՜LM3ʺY/ϦͻA'b89ZO9Of>Z^lЙNWxUy"T'#cx_Ri𙭍=ta;~Nd\VzA'Gjr6};7~pVl轳\O*x:ݜMJgPc]&f X\'8DFT>ͅ; Hd_bSubX&9q6C ɀt_q$bry׬/ϗ+Td:\MaaC@g$bAz/@N1h&|>x}ٖnf#rS4D _T#!RBiXWl}n溜ٟ+69`gTSlڧ9sa}a@/Ej&ц"heKsc1Ɣ%M,Y\cn 3J._pC0CA^0pҙa=N>,g1i⻃l|!` Pk>PQs/~o~=~'Fk|7;w7+xi }^?F_4Z?#L$[W#rY Cxu 7+*PlHU7bÞ#0!jaXyAdl'#a󸡁6L^D4lFI >iZQ?CIth݃u7>w٦IHUr:>1d(zX"P{Jy|7;z z vdIphFkD,O맱X}H Oӈ@ b%eJÒ&O&QZk9e8&60dX0 ]l0[2 *ٵK@BZKڋ%mA#r#\/R8bzI!u`R(TIcAV8j AyI@e`jѓj|;AJ +5@ ju_aEx2Zb}+ Ul) Ll',1˸0`a6)N/;WK|ٽj+5C-΄;Vj%3a{͚^50,7HઈVPSn,7NG0.!no`m$6CK ^GoXýQ%WM3!-Qۜ]l88`1 Mf3DQ %t U5|eG{6,`qakZMo=$ɌaFM d`*]Q(XHqS3T<>tz_D\DIQ0h+4rV=NZs'߮|I.IܖTmKYM]fmCx' '/vdN*F|C;SmwԲYCk%aLIͫ%ȴFfbh׼vY F! λd #I&r Q`@_Be@D6],E#.YXRpz2oMa8+^Gi&>G~i >S>LK>s9PdЏ˲Qr:3m%*x>i?(zU+N% Z ױ+^&vF B/,+7nĞ{X̀Թ~ߜ4 >{Y\b$k+^Xu.<{/={@64~3yD裀^6Tga"3Y_-4`Tlߛ.|O=It^O$ FػrXcb=D 'K]O11ߨ$ ;Wx6hT{t%~_#nyiPtOc_|$Nb2s-_k4s :1XYMrU| `I& s=bQ)) 1WUS|:@ЍemE!s,PK!&gͫ2X %`$N᝘8^|*̛Aci9az{gH!V- '9 G]6t\_cNi%]Pn$xz#|LI)q?ԣ efN8ΰO&qmc/`5<.UO3Sr2p&\@:`%2۷-H귍p{KkQ9?qLZ'%Ǻ? ̖e5 /y2S-(6;z4KiľX'-bqu:~f[)⩶k9|a:O$Cllf$?֙!ħ4ݦgP(x- EX;g40)DW#iӎb%@ti+dņt+En]H[ QcVpgW\X|Nƌr H}DK| [H֜"bSք(/ zmv @!mds%۵W"xRK' ,AX'aWEA5Q&=.q8vTUJ}|ui} lX_an{'W\EZ3>HDy޽'pBc}]0Kw-iNQ)jl{`Ճ 87_~} [X@Zka՗ naíҎQI/P.Dج3LrI$E}9CfA U?~-_j*%>|/${I)63 RT"0[i'CD0׷Y\5Ne[ϲ{4ѐn:$`TZnL1M6-ݘp(ypńX ~~j_9QWp)8@ &̎ 6Bj|}qh"{\}}fr&la[q8w>]efr+iŌ<ՋԳV-q=1wˋ9 ;o9'{x<ȟ6.tot8,vE3l3" fy <`4Bjnpծᶎzȏ{z/zZ+u~̝X&)܃c$haȗrZT61GsB RDѲ j"2ԚWm 1<kxBaSu8KBdzS1)]5Pfvs=0cG$5UԔi]!&WᓄF87!:NZxX3=" ڑc܋: Dy=*n;TZPۆ7r>hzl#pg$fb3xh0KR.wHf 7w|'mfְqfZ t;B1ثKϧD}QT/Ɲ;I I9|p`eIEɜ֪>6#t?A)ɕOrã{ [}:JPEiD&MqHQ©  '/]**_"QdS40Zhp >mĝOM`b-0Ia &{cw`2#uQ^!3;b A\j/օ0JM>z{3ȍSΧEphgu::q\Ċ1sfiLxIJ.j8r2]D?}f7N[Nfs2;C*q"oNc$Ou@9b] ,<%|۹!Dʰ|]w"'@Y?A;$.nG2)H^Ѫ9%J U_tdc;">!x:dk.Ipu;D ihځ}^EQšP)Dn$6HI42dfP)`O1_E☉t5o];DT D@`T|mCc]"MRc \h0Ǫ̏b I?O4p&E":O(N!ˁ [!+DFDM27$u  *Z)J@5(Ի"i5CbO\@ :hPeXЦ(3 ]'rLK01f\JB1Bʢ3;djBs!)(clkc]SQIh05czUZsdUM κg X[1<0!Yy Gkv\\p3 "{DS7¾IrF.i/ 2ţaGE#4-F^ƇA$J]Xe8!`HPJKC8)1ǩR2_Z{K9>ܴxϿ3. ]UXI>&~*=W]w]*Ȟ`qfoouGc+䑵 m<1[v/ 0-9Nxۨ*A{,;xT p#"Yޣ^bF2jHh.&ҨKzJa#3"׊C=©A%Rm.fH$7H=5)5`=Ʈ@bۻ1A@gwtD( r|U.cy p`)@@Iu̘` 94rpT sKܱEC qن#{:ihx13W!96 |OuVMY2?5;'k|evTsX oRMئ٩iLF,9Ba;0t528(-!OHЫN\,.W!7'fyں^хd򒏚fIR ,TV%9h[#QQ5Y }fm&TGoHJL(" I&a#bd $ ,xWj,™apTuX yrm Q nƳjxD>l"{zX%%j=T29c &N$8߮E!4gCC!f3T}vz 4d6VF)`n]G'(s^Q i) rXaݬWSUs]jbC(%*Քq6'qvL7'H\x AgXZ" =w?5Z+.R#E_➚"fJ fW'PrLtTf|C·hmݜx8 ӹ)Ϗ`Ngd\GK{8IJ+ĸWsPyf 7diNiBhepLރT7A&eؑF+)xK@G-B&M]"܋2*9?Gsa)"gǚ*fr Q*)Qckz;u0x@B@ !Xfnm`a9hh[O[<(T~6Vx5+B3 XD>>(vAFGm+cF)m]j,T--#֟EAl BGuzlB$`fMddm"H1:]B*4LdUsEeѡVƦ.7E֗ߘxz5s!R{l!44 Ԉ,'av\ب.ǨX#Hu*Np$U> re5 kmdZ4HEٞڜ;Bt)J kNArƤr5 v%f;;L:b_QqP'7A|:an1df+\dž\t4T-3S8 4NJI~XBeLάn$C*J<+ L$|I'\S2ԏ4-)#uC*myZZʵΩQ-Y' k Ȣ^_CRÌXp%uԾ'0''妺Ժe]H.MÑAJfZI6': n:6 ݊WtX|\&bϷ0G7qH+:rπE8`y bcvjVG+v(^X /C-E7Ry[ /Rd31/b > dOyƐ] hi Ickf)|AU`j 㢅 7[>59,>F8fP2>7%95qdzr@#mK8.PE/pxY<#9cWc#{hRF:boizFƈs|8dHO#y[{H}dž<.)~M5KLUS݋.1X& ڼ01` \smaougCP~QY?}d=E28^Xp8q!HpW'7tQ4} *PmIMBr]ꦗ`BZr]4IsQuhJMȡ*?}4KPhӂ! X<#em.<3UKHtCp&df(hŪBa&"=Db&{5/?_'?~2~zߟz ~P?><#醂}6 s83-z~o^=GE<7m'g>\tH" JEl fP?"MA^|ͅݖdz!xC&/d x>o+S DeMEYu\#7BlQH^<>@WJjE5H@I{ljU1VZ`gGQ&"otjkղ_uemve-n~:8b|h{EmvO pel]FSei%!7e18jEhY)MwQXqԣx~.@V]Tql7_iK̀^JH%R$2pCPM26̳"a3MK6p061$ӂt- g$-A5 2CYV9} /twfJRg.K]6mbߔZY u67[PΚ(Cs̱&'-11й$&Q`Bs @D}ˋ.mMW/v%3LW,]k{Zn-c٫n@$ $e?o&*our(\Jut=`V"oQ-R\P8@d@ɻu? 7}#dlmfzU{@C:O=˻OmoBu}&A!"#dbmX S'xpHeHc8o!Zj)eկ Wn`x]ˊojXD7Kqwܴɑh]\5#b͏P9TE%l¦mA M8eB Oh"u$d8_%'M)}T? S,&J"~Ia=w*P?/PEo8i(djgl4`':uot @-Bтժ?3X!>-).Vd!IV}p1D;#J3URٗt,he ðR!|3SGߧع*NJ!vYwFX BnZI@ˮ ?&Ūcjt?A7T|Zћ:RN/@i |" eAs5r*X|{p;&t#j<$>&z8~~%5IdT5w~E6{ TL1/V b m{-Pc\sHoNXwhH͠c2ɣpm Dm—Z*sf9 9*4=[p٧9oZZ|U) +X(Pb a[4V/s+0$UXO/75 3YsϾɎGӨ[%&ֵ b{:{lOrm3N͗-Պ{QRt ڴ(C;DZ~7+ 6}]3H3Z-pd]wG rP%Vflc~W^ϖ[g04@rwتybˍO"n`0ișt [:1䠓7g|HXD~>JgN*,OH;c I1( 7z8i6s+Q2:;0JAkm2 6Y$k6^sq^Fx UI@bJXێj[Yr7ͦOj9lj{S?B*ns?m;XXa^ϑ+ }aQizl+g @M7*|'% ӫ{hGp&`^ 1mbr-NACuR]<-^w4xǞ_ ŝ̷FNVnOͻ=0zٮ4pKH)8Ok;ֺwV318ƕtHamΔѻUf该>3 lR7XLJ{Y1bX!ت6JIL'hrj/RZYF=NCEoB[ض]h.2?${i?SxfE(Q;$0קiʛ2st EUr 0][gLϩuQWs//L4 '<gB1(*<R~ǹ 1[z!ME8'Jz Y5=`,R` ljC3a+Zx\(IE H 2m$>AנXvn 9ܑ}nAހGKDF դ RB^٢^RbZ=LkcߵK5xQHe֊׀p fxR>.Pٽ ?|WYzV6TXIik Jk/V]Be;Jku 'w)]eOCkҌi_L0[d>0zUrsÑ&TXʕKa~Óv-,* z,VؔqRtV-OFhZ3Z 0sba6g/#j*x_ا퓇5O9|G塀xy`r__37+_]{h-2 asҪ,\Yh:lCcs:e-CZ_A1taHҸ?g/SdHzg*?=β({lB.WHt>Lۗ"ZA Q"JReSSfdþENk&|չJ/NwH-exdi1YYTވƴn~{ro&؛<߮8~D z=tɃ Ka*'%e7,jc'O݅{N. ;MY.`|09mr1}6–4ːpD5'cZ a ruCT,45ʱ<  *uq(ȱŒ|gk(~"M2涘P0H8 e EߊꤾW7¤W,Z9nu')pnRf:Z2 n؊DVIpBhC% mvp) 2* @zo o\3OVtCATǿV*{`xϰ~3H/]V`E=Ww|/zY:0D??WY`|+Y-IMMgs"LԫEWQ֬Z lF|Bq4A[* C[[=-&#a QÍţF ea*u,VY Otӯ^m4 !N Mu|+nЖ. h(). Ḟ"q%Ԋ3mW;e_>avmZ'ͻ𽘫Ǵ `s%w;V=fن[oٽmpċы`cdb`4>|1Ą-̓"Xi5mSiR3LK 8fs1Zqh;F9,MT 0 ԙ`q)Lfc"2\Z Sý Ch%M O8e$C֟ F0@A!#Ia]\S iӴ WՌ!^~8]w_ypfZʭDҺsH¯SҏPZ[ّjYcDeVIs{ A]r D7 ^b|>O/"RH㎖]k#ў-Alޤ}BIsjI6mhLuv& &My #L_j Ho c}-tB1H;v2ji9Vz@ QO& J2~!0BClؕZ\"3CQ{59CkӼ?4P19@ ɕ&Ո zBLt-'57ACMP_L7Ub <;.)Á :L@d5.7iB5G )&m-BtAYc8e?WMW?u'Bt1Aj9N%9>Oii1M8F*ގOlh~6ÂOWqc\z?wf8='̡t#p2ߑ/x")K#9ZU Ly/FM8Db^! cs|1KA(WKasg&.apmѨ#2ı9ƬmaꇰMHar&A 7`'&& :`IDbEg/ٟafTY"Cjg\6-7kM@ރ0VJ5ϛ5T2MESH&Up/xhUCBv hH] T% ơ5XS~}d"]sw^?IAN }됳:RiN"emW\ %v?wbq}mwxlso Uѱ._-)C)ܶ4‚N-7Js['/D,7Q9Ti I'ƞtIUiÎ7<*L`xA@cwͫӃt"XbP( aK9dRDEjE=Z4u~brCI4[(S|D+x}bpҁPP!1q idi~HwBx0VչIP&aE;"wVK~*PD9W~izoICͯE_ODg熩8؂<č`Ea& snI,;sIXU_޾YQkA`בM76ky0FG%RYIWD}HqAh3L"j7ZR,€o7qx$|Xq # RU[ߤmlO2m@2UAN-.Lu>Puw) Edև[t3 NHy7IB,E As5Ʋ"Jɉ4I-kYkS;I/Rh6j>+sa^y@ WC.Ă,kZu<R$EqR6lh&U:l$, (-9{ũV;IdJ&O|jՆ+=lvag&=KnN_ 'y4_2?KVo[R@s:GV93y3B-ZTu됟co3 3J ytl67eM4?ZfGar2y@0R`2 p< LQ.uM,tpkO|E6Bg6L:#v^,{B8:uX;jSطvMkA_3:GEGx AL S$4`KZ3 $/YsKuIK܀q$B&ufO@=;5F_l enP9 P=g?<~-kI('-ʒEV FN{;NND/o%RiݪSBR/@? & }fh#t(\?CؓFv$U"hv6J w(Y'NU&un%"37y4?^T#TnA]0CJd5jCtP%6:%S`b=I#7Rs&u aɒ>.qST>SR(Y~T A ·,g)i졋0w{[pz)vfm%"X aӕD;@Kp؞TjtCD{^4b4%UZPLLdaX2 (&*xBYb/C_5Dy:[s D-|  {xf{P^+ԑ6F2 ]=8P+bO2XXgw-֪AmZ jP葢AlEDX!, (3̛8Ӕ3@1dCzV,/~ySGo}7!*x2 4nW$ !gjIz6ab#`KطіQ}sm^W@šK.*E68iF%NMz* Ǝ$Boi`̞;ηKUS X[.9LJb*8ڐ9zfFrnQ9/_ y0[B1&./G{ 'J<=Tk `"NpE)BD&DQS }x‡}=uV]CCڴaiu6)9Bu6ulRD.c5#%& 9b]uz~rB9'}^Ϥ m#Խ~*dv v1 /DG:@x"ps L:`&d\"7[ط9ťX }:7`5ðk恨'` %$YfZAa[\8tmJRFPҍXG vgv2; ˎ%8kPEM=Q(*d$P6I]sIfZS^YB6FPW`IJ:@lu Gl:Yɜ;woD[BbȸrXsy"auKj*^n `̓ Рa qTL!l]mQkf]9F {8}d#G(83_U8sfmnr x. I衪ahte+V~WEj6!L@m%$Xx VYʌ3KNO#<_g"ZQ4˅cXSDCdSi޴dkh|Kd]n^M7 Hr(D8]M iں^ (u&6˹%S\tHlJ^dвXYLWSU}|B)S /ԇ2{ ,g87K]Kb`Fz-PT;.c5^3h¬M ,yal7Mc& dn?s5H,̤{`'GqM2Sa⇕DtSdY:<% NJPhU7H7]`|W6rqv^Ҫk!8B cf"7qWW ["m]t)40JWæJj.ZoEzx?=:z}EmѶMfV}l#a\UvHjeRH+ jmaXЮJdnMC"pFKahu*`$k] YVTHcorHwDYRFXK?Za|ʇ8nZXڙI3*7 B}_?&j`V=ɳO~hP?{ڻW J5{K50 +Dt:L?56߬BT#p_|*|OZpWo^o ۥH+Sm3 #^r;bDxpqvDW@kboor4s4U|S g,xu<:]ċBꙻ چ Fm:\Mc`^x%" Ap[nY2[GHx4B!צKrrI/ȃ/׾Dun:4V|BuF0l" BMAmt#.o=nmrEo_q%1qXõh "LXL2衙$;r9, dAEmQd]L/s+6=~a80nG&xt硌R,dz^#PT&q^?(ӵMÀT#p8&.-kZ䌲>B5'Nj^9#[Eh rZ]{f3`-_,L3)) K{zNxr 4.73+@1|B`&TB?cꨴЋ[ƶٓr8A4F; [R-U7gخ6;$`Yl#nNfgx7G{;ٝcSƦݱ3> إ'_걻 8?\-IchS| +~]Wm/Nyz0>gU ϣTk6M!ntA҉YaG]ovu3^=rJDcF4ͳ} cHK6q=I:xa,MV^g ~BQ*rM݂ RBd09Ad lM?v!hd9+uQ.<.Z!Ȕܣ~j:~MӥYw4Sckbzxז"l}5"XOg{c B.3 [*(TinY?])[ѐP m,.c8;v`}fqcG/JkSz,9[/GX2|*YȹńR5;ٺDG;sz-\@EnH)M/د撖q%'c6WSew6խt D6qז} E'ѫlX9].9#ˬ/SC]rݵS$22EGZ95 #ZGfẠnH(3zX)" l> 9 l>ѧϔ]"5sjݙ˲ /t1O'csrTG%UMVDmJ5=3^5k9m Z- =&*kUI:p%+")mm-5A=hd@VS W7.RjW4YC{mQh \)Z,hŻ}fH'c,'͌" ûUZ$pP:֤g};7 o=e1g9℠X%!सw uy nDhQ8| Cۉ&d=_m~]]%T] D5:dgYn *[6R"lb[G-نaXW{kbOC&xbd7` 'P%b(ȦRDt;{G ur+r?rMIPTyIhj*@W &UG,EOhSvt uJ dU*w,jxIUiXՅ@8ɺX{*,3WjDY*ITXn UTs`Q߁RaKpR0a DieiYܯrj04N<F_xe R,RQqjq-ZN**`~@б]+T@Oʑęq73jEbRJ *PE:p!2Kv"sB mܫ`OW 1JzmD1B D0|g@*]1=P8pTǰ4ɸKFlعci%OoGse{`X|I3?%o(G'^~voPC9I9Su\}#CSu[U;PK]q. ԡ,Oxb.ګ7m[5;ayn )x=[;F /yiE4ؿJ&.m`Ea[G.R/.z<>h[یXj1gS; jvTjL+؈* [՘„.u)>w5 cpU!:Q]vˋ]i bFfzpZQA$}*(96 IQB9񖡜gT kؤOkN[Gφ *}XR9gR8L6H\W'"{zM^1^u=QO2á2 *UND.b#qY 瓳cڰ|.ܮb̩| 4M Hd4Q!:YC:4(~9 Ykm'NA?N`ʅPeu~_fYî™{r[gOѭvTB7n+ @ j9v*B+8?mm!) [p],C +X%]ɤ6EBY=(+RBE2; zӨZPwis %y|Uuz4[eV :3Ύb½ay8[#[ӏ\ ؉7\ jy4!:7M֬6-) y,{Ab׊AԄiЉ$Un=^ũwj}pBsJVέ$ɝQbKDhΊNWvD [ cX*&@A;p.Ze1g (T; =p@{O--_)tIU#G ,sF:֐t2aeRPy.AȋiWqIe'r*F,&}(3#ԥip B2["]4d+/*; o.`=H &qBF?Y0X#CE"ܬoGA Zpx_ocOQ"é?A4g#V,0P g+Xc:_$~GDUW])Bͯ9tvJ{qXVdaOpT?| h1L %hr?[G,۟6֩Z;4 ,(B='Um2ޝ/.X{X^b-BHe+׭ kGFgO1՘,.d¡ThnXH8ٿ,gI~O`sRGtRlr>#0%7߲[!-aV1qHnZ (mA%;G! D+'>I޾H2|.Qث:ʲ̉kSiK̀y[47 ZsU E\,N6{JEz`)Pus0 1&=I)}q!%տܞzgT)zJ*}OMRJK*j| òh@WS3ѦƝ9dX@uX*ULgmd;|Elʎu"'06B~$`bKx FjK&`v&Ru{C2Z;ˑ%kO ُ y% ,luC2 ya#$@^ieAD){G *0!(JsGQBgs%.h4SN_.-9PF t2%Tyj XyvQ0?frko.dzS4nDD6Coq]ك,XMj'tG8'zFt t;~i4V3dϰVdQ(-2`F r n N` W|q_)uso.ʄS!8rO<_c *ET= [s~nA`E(Sܛb@j*ҳf-+|b8߿רe#jjQVu RZq8kAĊg0?iYq3iZR"1[+A?S.9ʰu>;kl0< L ct0.tq)!\neJ4Ɯ^gnq^^VOݲkG N7Hpįb6Zo2>9J憊S;""mąB#}S^fPrm8ԯY";s"ā\fc@̘Di,x#SAu;8x{]][o[7~cQ[lpXI(ײx<AX=D9g8rùTge%<(?C77$ca-&3ځ]eWh\XC;-[s!~S;2s?o7/Ȟ.l ?ZF.@O2Rm̳/P * 6KY﫧 gmOxxYrdaӡi[~/4'f@`Z;it}̗^WcV..Ϙ]XR[T#Ln>]_pʜ'"{ <5`1Ӗ,t*GۙGd4byE: XK~3dIQ $caM^6IU=O<ꕞӌ o|33,H%a}1\Sa'T[l#'R3Ifש}Qبt\  WRKvdI"ܫI-o$#W:Ț)s 8#dsPbdC4 kQ]4wW B>tT ҳ5M4m.QJKr ^tA#C-P: ey,d1Mم+A>RF=hC g$& _s3)";cFVc Bŷ q8 “cES ~~SE 1va[Z㼅j ?4dP CT8H#!I1}Mk*<酀Xޗ1̖N~QPL_A&ϋS ֔=-%3=~U>wO n6 Qilows_1)}knWz/3W't7|/Equt\5c9M3 ט ܒcqq (ǝl.#WDu5rޯ^X˴l >Ocכ+ <]hN({o;Ҡicx;Ńw, ..-0ovQȿǸBZRĥ2Bk߯+ OnsEK 9Xߪa J)xb! 'quʠg."gԊ(50'=2<<߼kg@L_Wc@K5UնlL"+>]9nDY~\H?$%v r H~y^U(}pw>%5P~Uಀ$mȞ>< d-s#֘J}`F|޸3loul/"(*(=}e1vc|KeH69ަt$m2bl;H R)%F0]ЁĘE.ZRrFv# e++VѺ)-Ɩ`ru}jY3V] MZQ;%εEK:e%p-Ƶg1KknKC&Ʀ&vh5yl4ϼaQxzpKLS[~ Z2dBy)2@kq@i)@F-\!#dwY21J[ڭ&`ݺ<_@-pB.D2B EC2JiJxr8d2{\`U{W].a™}2fqS+;v5U[ne3cb,zTfH͋5iʜM| ՓxE>q|q9p@Q/uh+*_SBf >yU6nϔG[4Jy^!-7Nr;XDDrf>/C-3O9q'n#\B1R ̟.,p1yCy!䶝MI:7)eYEGX|ҸTD }h¸="O_ ^ex C>D⭼G,_\\ jT[e~IloAk`iW s)X ;E1ei/M4"?Ȗ8FBxfGfqφZ$sa|b)dE1?tk)u%KBWQ"j$˘)zٷ@C) o7 Zu$} )Vµ i\Nj9LJ 62PqTۮ^ VԆHh$ b,2w=ZnЖwRpbNl8SЋNeO~+$1\k\S^*lE?PF C- <7ц@yqG$`nV`n#D̖ :ۿ"ֺʧ;gmXigBq6_~7CTG#qԂ./Huw1&;عГ b] kv̥+ivg3oW0bImNYeY~~\X J"n[3ZTɈomuz $>ތMnS ^{;f_4 (/\G)db-L;ׇdѧH,l7{H+]4TaGȦow MN1zk*pd _wSʏmeřȂg,Ql@\3tA|JJx \h8(C+ӁSZ qI:qg~l^iOl07x#~PI&cɘ: ©эjkw%bO|h$EVWYaxVQ~$h3e`[Kڴ(e{`|ޤ. &ܥWLھ X ^'`囏%vAW_P7b7fӓ6J1TiWNX8cAb*,yt,E 6CuK0A2gvL3SH~ZHd[8Zh!x4ẋ-sCјa("_+0Ep2DJ)?1HjF +%omk͐a6] :e SǘDf=\7уQJ8{,Wgջ+c_:5͙2@7vsW['?B}j/YPe.kR'Pj:o1Lop08C-sQ)[WIe6!RyŘzWN =>a/r6ؘIA_]&׾Ԯ\-B:ʝŸ'DKa>(ijVKrj\耧kI,Qe? ̰XbC zm@P"YJБaE>^tv &]!Rņ Ṇ{wc=_i~5?e AZ1,[c {x73!ri P ClߓC u)x6Z3 7QX JPD/}t=jۚX|M רc\!(<mTakzB%s&\HM>4(y0PG]6xEN]vrz,7ŮC_K*Ĵ"7ftWoLJ%[O݀ d-3a(e< (a*$;2(ac%BwYA EYЁi"3hR1PenT}UȠ.ݑ;TM` at Eh*@6|`+ 4:BG0 q8K1AF?D |f?n^oј45`YkV K^T׸8Ƣq5U02lL'OU.v%q;F#/L1/Wcن/v,%Rc\C\4s&$<#z^#'zſ/kڣYA辔3r^oK9%肒2loOpx# (X\3`fS#V)c= HH|Z;YQPZoJ.^!6,s k/fEYNt_ *! LB:_UJE}ɝ ,^/οc`4\ܝAA']))0R bCӋ #8^o (feR,$H{άL\X?^ε˞4, }[%":c`Yۄ a:7KZmDlhD\drᱰ5y!DlvcM?9G]J '=m7WUϠ3 ȲsX[%҄k0, L ~- 8!r̛gE/T}.js幤WxY>׶6j+~X7@/:J[W=,,wkM 1 |Т d ?P `yj_ O nK"6?Iyt4WMn~_^QZsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/0000755000175000017500000000000014533276022022633 5ustar dogslegdogsleg././@LongLink0000644000000000000000000000015200000000000011601 Lustar rootrootsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b57.idxsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b50000644000175000017500000000407414533276022031000 0ustar dogslegdogslegtOc  !!!!!!"""""""""""""""""$$$%%%%%%7"`="$ֽd׮WpM; 4*!b[@,S VxMc!C"AicJL };c\'A [gC6\F(vIE;R0Pu/x=hsp|=,m=I+^0bm8Bk`g8mJg8?EplvY&f 2Iba!(is@pRAXTVNbdIV!G#SѐK5_`g\1f d9aF#W(>qkj?1d=gd[M_\s8Cl暿UƏ4F8'1֗5ɍ B J*8nnv)N8 'F!8,#U70m+'-N#P*r"r>$u "+y':h 9fq?kҋWQ~z2~[#%m\s%$././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b57.bitmapsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b50000644000175000017500000000077414533276022031003 0ustar dogslegdogslegBITM9fq?kҋW?% @$߀@(#@(`@@@(@퀚5@퀚5@퀚6脚65@5@66脚5@hF>ӭym58././@LongLink0000644000000000000000000000015300000000000011602 Lustar rootrootsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b57.packsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/pack/pack-a610aeb18a8502fe396671813f6bf9d6e1d28b50000644000175000017500000023525014533276022031002 0ustar dogslegdogslegPACK%x 1{]cOV`Iv]!Dl[N$Vk M:qi2% JPB"OPtEuyYZM,bi+ژ<R:܁պA,ă:m1fH!x{Q(5U!(,01191528$-5%51)48,"-8qn&N& \\eEřy\cx 1{]? "&ɄUF2Q11ÛH%(UAG lf fpZq6%$cSNj.VJ1B .VsC^ސy| 7y?[g~g:J傎ȽG!47J~x{Q(5U<-9420( 25"-1$xn&N \\eEřy\lҚx 1{]?'+If®$Q11ÛYBJH`r&v!ydcmJr٤QLdCCٔ^'\ZץU?1*n8Rη6kL'\z܁պ}m_^J x B1@}^I&"߄(/2l[pw9 1c^STRyLyRoW26=Ii_"v?yr Bޯ4^a>:@ x340031Qpgx6M9{wk+qIODC̼JC :zz@,* |i2L*Κ^« >aZ,(;&0/J[!\ 0J4o,ےAm[%[V7Y[ڲ .HvvykRXˊs)KpN#ՂC;8֗YYvMd/k٢,֛VWN=C h]7LvO]7T}i['T*E"@\*ol:N40\vq0ʻꢦ[8E<3Ӎd/˃`pppi*no9_V3 뢪'Yn"U q:-6v:N|5r?e a4WC63ޖh}yۙVuqptpP]43u^uY.KfVU7;YVbv ˡ`MzJ󠱯ZUYW+Cl릅u5+惙=0_~m@*f?1>maY `u9:hW`Y4/r3/?G4?π5/|{$L>,>4`Ps_||;}o'0Ph@9<}5d-З&5tkvo߽y}e ut#0r>tVӛ,v+wUY{B؄D0-I vLDsXpYKv۵ynr+:\8DG0rɤLKG\66}{ P@,cقh.6r߄ބ`6}8~OXzf'toὈ8Dv`>w#A13 ua}_;Eo5rX`o0EE{,Sm~[MAf? ? #?Ro! SC!"cƗkN >/nA w|VpGa OV*/f)OX{ɫu$.I *Au+ ;U԰m2<ҡ@gV*@꽪uuGaj]7M dO cT | Q8OŘTH$xv8;cHIz2֩&5ޔ Xlqbt(O$HﬧfWgg!%jV ]v} -/SXA>]njT C7F5HJ2'fʊa욅ߢ-|HR#[ᨼcYux?;dx9e˪ |$2>͓w8%R#w>BbiA-A3|6ۺ811޼݋XL}B־ltd{D#%N۪\PǪZΛ]_>MLA͝Udi ]vIx* wgym"\qw{mf֍/|THiD&>mQ Ց\`gՎ8U$BOQx.Cb9A)4j:f/ICz? l?z{{^(]nveh$Q7#ֱ80rb}ꝛsA a^8RrUi6<" \t)rq}wew90^v:P/Qwu^_2T|BP@4r /XO(H5YZp毿{=:\N,ZV4 pt}ʖr,n]Q#.!|׫5`h0p`*F~ՇzC FcÍKCeCcϢ[lpY6GPhI[Lidɐß`hؑ Dَ4%`n8a-`̙qpmo$%;? @N;:Inmܣ{§{ @hfnwDvnmL1n}Z21{- ѱ˨Ń0d9`=x7p>[x#TLt4؁q@n\~(Z;NiR""tu++;")k`'*WU.3nMbNvgTj}]G' H@פ{djY"~w&uj=W)|'=ߝ͢6{o'Vdq;='tdfBS;zӑ82p(WdV Lç_]Ư꧉?ZL%DڹMYϳk:!7ul37Dao?FBRzΐ>C+43$kkTmEvyjM Yzi;<_0,ߑ۽ީZߖ밄eӂigZl;첃)B#;o_3ag}G-mv=≈El{.y/FxN'RR1;/:1'_?3XۢNN\/YD27m^_3:}r]艹4Nf|ӡwvݦSIuUf NjMV%g.R)f ܂,0>@}ng75p;1B`u:d?C%V[wK$nThe '*I#]nh:yf2iV7`0P&Rq,DmGM磠]߉mG_6H;W4bMRa~%%n"G٪yvr|sj2d#3p.*_[o meP! ma ^JfmUG} gFe97td%IEo4PkX1njiޕhyz>Gu i.3R -9᧏}6tC=_ۑ ˮC"Ey[hǼ)15I2 aP=}C،6s4E紼eߠ[67o0 @ةv:wt1e^E񆥪7,"etd~m̂;;)ҋ ,yA1{{ZQj8>s~}>)XtDNgOb(,=remd][|3 G#ȱ\29xr˅wG f [=WwLd.煜F0g l?V])2/D2?"E/AuTÃLUeo]1ƽZJUuD=Q~fpдaIM_ m !x:VgĴ2K|Y-vPsN7$/ޢZvP 5 tޔ,C7ݞS$V9x |a:8.ݬ D%ì|GmM- {`b}h+[`Ɯ w(ҿ+zݏ8:AH'EdV' r+bӫKܯf8wG2ql:uw:9 f_ u'̨qf/.&*kSR}h^;{ &֝HBEO_Sfˡ;S'EoEZ|kfc2> is' K>_"Z-#!g!@yR (`h(< taNH;I!@[ت&yff7T"5%D`者թ` o>6|ò1C1+.P<g ޓ]0 a!SײV:5q$Nox/`jzܡq0L|bxnnl>C(o|D9 (bE.â<8+Ӂ;MѸy0rŞ;4$z3T +1Db/Yo;[LM0dydtr*N*b`naTћz0@G=Q xokV~ )-Uiߪҟ=':߆$֫+*HzI"l;=z +2b.(xTW(؀=x{:hưU ->iLD$ EDp_OxVSQ5hq qsRQ7r}|.#~ "2$xWu\D4>nj=Ң'zZ2ҊqД` ͳ`n^{g0LKwQ? I&Gg95ngZ 6T$1 ݰꄤZϓN-cg K姂43׵:2;2$ ״kt GG+CmOѬuIm]|:770rAt2,33(T:53s't[y|A$JœkY=1ZGBl* |{H)+;ҝ(~ ;}D5Co#KBOdn Di]Ilb28hfnݿCϺB1>@NTWuuP 1z,+O \W甽E Gd# >:~ <ޜБ#8o”Mܳ\:*l{ X ,ixn娅_XtUegH X7':+2 ) Rmu#LJ e;Y5ztտ($[$6 (5CشW5.9mŐ4p[٧Ѐxhn?֜;uC%5Swƪ+isxv?'PvDE© -lҏT,nR\r/W'E V#0*r5#|Ly a3yqfn ..Xya [|E-Y]{ȭ*>1~R]&L5[F[ "JE0]) 0|*R!fS͖۶1bQ}4?BOŁ$@ i0&xn^clV趱l`]v6qR$)sY./c Sc2 ,B1،-1~+ <}nlbG.T=ɽq dzk`TW!w]ҍI/kv/󩢂\>{NO_={>}7߼_ߞ^0 w/>r35}ܯaZ)ᆟCjqmAPzT߾S_DA]I{W/m3[&ccY7b=giBE {_g1q1bjuY̶n;D{/roc\ !P,vڽпͺ#Z#nI=e7%\cP'ۥ1-cLă_7梏UdNZޠ;~gy.It#fyׅ&_6;t緄؂=`OIݞ$c)~Ba 6&sFovΞyO-a'Yq֒.f}VmS-Xq+4{>e"s$bҴ 1AY&uЬYם #̡-RY,J.xD/Kg$VR 2H :ul𪮳R>$Ʒlb~KArӗ@t|D7A7N/]GR'fO 0},ZMҹo{I(a%qƿGSg\X~{St(Ɗr:b;+dA\0 ۓ='+j.[2ΫɳZQʏC6") _yФ,ﮨ0[7xi#9yN{{$-8k{ME+#%;ш[p^~,;cB 1{{VjSΡVQۓ[䥗V?Ho=r}ĔLDL_2csqhC bv%yQ2IrKu6ofx}__ޠO]vfzf6@wWUŅǺhjÒz*rl/^ؓahg͊*|'?B3cIvrM&d=q3{;s (9!(  \ sg_=bw} $D[y;tFXӋY;Puq%YłreJkHv-^HqzmXKEV]hs.gmdՙ 2a6Ptk29~&VMh| UkHNSbN"E,VS.e $<=}!?b>E&ٱhhnh'V#L >vZW#4!p;JohWeӽ'WF]pnO9 zW;-pkk>i׏#< [^1gG;$@K7;~G7qxw0RŮ|}ُ< 'hO`JuRش)#HKeK>f:jY9\BZ8bƅMmK/c5(Q#\@rzǸgo>̾ tȘr!Ve̻[vs~zYoǶңʤ@'b@50\W:}Z!wM?ېo9!o4=a۞U{M1j N|[]5m Ő ݣGL z#((t3sk xp>b| њ(lRl)l뎰<v߇:EfQmZLm FbNw::)| hIlo~lpcJcą+|Gw~8MZ|k01FB[+[0Ɛ_DZ\FA0kud.E:zW!bQflFH&va<$݉kä986qJg ǪOQ*k/t)čS!}08~=g]8ߔrc_@m)%P7D <뚱Qy7Gf`uk7߯:w_Iu]biM4[QOT&$ ,p,{xSg# mϤA жհG~i<;{V$ F2 E Tu J֢,1`idisgYل["q,g &(n-<4*/;$5>sO͓ċ/=.1_Z;|. ơ^VDž?Tb>@bE2i+6 ajqhńkTcָ0oC0Rӱ)07&e[fr }#lȬ&4UddWW7K? ^uk ( G((\FPpɇҊԀhE*vչ'+PxEi?y۷K#Ҹ(_hvhO7vfʥep]xS<%+(| xb*N q*^lVv(Hg6t۹ךUDxњ~mG%`[)_c*e3Hw,a5N~EDެ%I>KUZġ@U7/Etջ 2:NfUNT)a?HVaֲ3Q. [&ڜJ_TpB+Dm%k1YuF$kX~;0߆3,6Ц*&i캂jI>rA6jaY1(>ď&陝<l'ٮ;=w 4o"ܭ'%Zn }1{, ӵ8Ȍ#uIzxdU<w˜)C-B T+"RL]r[Pi0ODd͆`\FGW;8Ɵfp' ] 7 ʶm]2EE{܁c7ܲO#7 %Mޠ|$I}hsZvdWU F  `T=!S~ ݁IEgiAJeL9h0nDgI6 \iDY'9XA8 nb8OM{$MAW)&H-^k6ugD ;CgsqM 32aٲ;t]2qZ Ӓvzf=*Ra*1;sԡOAkI'/[X9sl L`#ȈI' ڒU8J*64J3>@|zt*Tl7Mu]ݨgk@u1>uF_׫ݪ!WJ3 e#AA|y$ ?1~SDՃ~O_z݋W/|7}?v0FNbU%4bA? b>^v^Tt&>_GGY#o! cKL#_xOM(Ȗ&g¬وjxz{ߵp& E3geP"1 ө acE|Pg\s}{IsHA^4+12P ]|9N$Wh3۠v|P=~XiϠ]R~꣏gn#7G԰$ޝpa8=h1=fQHI=&:А}Kw ]ַxS~{`\-"ט -UIyXF} { ϔ O-"ׇHp8>9i%;׍o]{c/-Զ##ވ'Ш|7&ct'(TwIn ^M>Nq6[+€j{jxXɨ 4W[av>pzC Iu Ugٙ5|ލN^pء؀wAMco6A#4ŋA/!6L(ZN)Ƞ/ΐN[l|F0iHݐGPqpl6f = I䙧y6͑~ |p-Wd?t~;J>~4’[L$.$KfDnk/<(mi*<H8KY)cxLq {N 1`"9#p vK)ȪEYm6PNo|i'V&GLt_} \2yi=Ȅ?`ddM!(sƻg[=$qmf&>:l3L،ۋIk7M~S /u@Խ<]l5;qݡdfuFC ]n{nu9[P3\x>j>Ads'z HԠ^9DRm))wXL%֗朘&:h?YS(۵$ fћ5mM{]CU3#-A]7${"Q}3-~?^댳ZG5/{7<qnOT&|ag_7}Yw ?gIiL)0/_ u|©릙^SwGHܥ'&;1 +#ΗEMubˡ,̦XZ6Q"`^-7m`:6ג^~69ˎU{dϿW Vj-PDa_0o$v?~(14t#< zhe9~IYDO-Ns-ACf+sy+jVM ~fx@=.c*4;H֤7.'os=}9{9oJBqy:Om3&m-xpJ[ GwpUtF0SЕOZ!^vE% X|& łO3b'̴XLP˻uY'exJ(8e4#`*?)*j"<25$ gGe@#@˺ʭ#.B}iOa޳oyv:`Z[sDǻ)=pܫ#|hDMw.PT?/Vsij<]6ht[$7xԭ6__,sknsܠCr]XM]`NB|k`ݴM&)Tũ΂%͐7KYbȒI-QsaPE[50d7OIv cC#LX&5K&#oD2RKss'$;hU#{*}mE.kțѶ"Dؖ2A\Lq$ȑ!12u\ɴ]s %%PEyMl(&tuV(<̎Y\Nd !Sc*#[M@3qat6H%*No'Ze 0,eN~;%M骭@<)@C-2Zp?,QRMa,Ωѱ<^aӱWĔHY #f_B.};؀YC anMq/CPGR ipU/W&vb-/f*o#XnR;ۈsR̍{{۫ѽ 3 ߀Kt!΄ 6a`K[qbG9G.=`.yjɣ&Qik+AuʲqlXzc_!RQOaX>cbqi\:,V̍0#*+PP~qAO%zRK2C+?km=#p")?qC+e#(H *Ď TdC"0E$J?҉ !/ RsްcQũ$TFv"ħ+b^/ƤG:ӽ}pv$1PAMK^\t&oӾsj:CvzoL*1+hi&-menMt Dt}5V-3PpnV5E(vp:`E%1'Lsj Ih6/Y;`eKEl1cE"HM 8\Vh|߈_.T[bM ˣzx-[&™ӋcUqAu˦7a;M[{4ᣋ)[D aUvw@,]0@et=ӷ>S< }9ɓ7tuFHhDꌾjnD*Ԍ24,.+<ɑyH8" 꼡+ fE4 :/1dgzaϠet}bpuh86>mhc.{F-=B]M~wD㴌9RҶԥx.1p4qj/1yOyAQe26 ^]=0=x&b]RxrǙEΈ'∠jtc0KD_ssj4GDT}D1Zl{We8TMv펇AR?2?T.6!QM4N%IN]D6h۴ ,jr'lmRo]6Y7m~fE@D/vI`/)V~5aJ7,yjn)Y2)e5{8*\M/..J0R`RܬUa|juC9J2h;YS _ 5_<|b`N]vn%4` $oJ (`˔Ma$=\v~?RF@ N> $4\5.QrIFt-`tH[Q:?ƕHQZ8 ^Z/7I2ͼsWZ,H\Aآj~Onxw{M@,=ś : ,;ja o˽ 3Gɶ<vA =Ѵ+0XiH(xDkGp7Je#tX S[Z5X`wJ-Dۻ$YƵf,>9}wϟ9wo~xo;\M?[~ ^ks_7*Ql#LÁ_d+|mbPa3HV:~,}`amtf5)w#ՔXKǡB8./)[T^@J3s8, #)y Z&մԵg 4ǧXnWF^ѭ+AD-ba߄Yx]Bײ[Rfb 6k_ NF#sL`݁i ,s/KRpn56h`(!6zD%D``o{+!UO3ۀ3G,*~b/f/{Ge?/av] W쾟~:>LЂDfΈXC8M';7)n K]) ɂؕ6""Mc 3CXO%8Š;玲qW3lnb&FS>nJԩ Ζ6Z|V[sҟI4CxvΈ!3:d3Ll8 *V9_/p(Gee{G㬏4"+WoęD|V]ç#k6ɮ ɛUGP.go%;~ U,seܣ͊6$Qv:7PhU6TІ*+`P^Rw BxMC#f ցkO).L  q^s4ygq(13sRHr3l5W>*DC rEG;Wy Y~kY@; RL|g*PΑ:*J2¢tmRd:G) 6g<[Su^LlO_Փ2Y~ctdCoM@qt`yu-A!BYT6IKdx$j(onkfc~xOUBR̈́93IgG#slEv tN qX;,47L AxKŶ""F%w Z1Lwj;NOmpG蠉jDKknG:QPLRLjm-Fͣx#UU UnlCi[^-^֓Kf<ՕY۬0_=8L&G3W~>:6tt-l#t LJ {GmPͭv'DÑ T2N1]RaNRK7z#3nθ)c)avQ8~Duuq)%/˪fڷj N^u{ qt&=|^EX0{J)4C&onP jY Ⱥ(i .*ɒբrLq<9ãP'po>YdZU6=E]dqmWmfƦE`q`Q2o'Kq3z99RM9TKy`:÷VpXÈ&vIXZT$ x[ j(.A^*[<e~&zp5O;w#3UABSXy1BLC(Aa* Cg0 CɭU0ӺKysQxNw"2dt-iٚ%Gyx^+aG_\ns-z im[ڍ 4ԁ/ Md"DD1],[zEG,zu,3 {=H+o_T7?T?}| $7WӺLz]|m1!"+b^4kve.*EKmiˣsU y6#ځjEO, p/b4V'N_hm^Z"xcSt~tu۪ԓh~hxLɾa;VkJ^@SQ׸t9)kJ=,YU 9RFq˓n/pR9жK7N9G.X7We]~V+'21җ-8Aj.5yCc)v('cne:=̾+vk}./*sL*#˲pkwC~3KjS^9ܢkB4M.~fk)t}DC#%kܿd#y c[\zwoN֍ic*4&߇ɰt[o6|k:<;k=Zc7%CaoF˅m%J?lr@4^㑺'W7*hbLASnu֬ns+-xiSùք>A k I$p- 4D,(LXcvUR6f{Ƃ|ou4%|ɻi&%`fߨQ!`&˞ljLPcڈ0F OX6!BӠs# ۝0h<)oZ8>>oլKR}H.G::OV`T`,= d^m]ަM8_I|WGimh+{zRGIL$@)EVG]Z/汣HO"?0ky0?vLS7WƖ>hb/# {`yj\«|/ф&'bld_7rJMJ vFt{GV()9XVAeoRj>}ai5[P_k{,jZJfඣuŭyUԁ#{ô 8{ z<T? 'f߈XR7~6ZE;4z w|e1SjkANr͊λW 1gg{pHۚ+iqaR[Cng niUݦH9HNJ+ r&) gom1jР :s2~Hn)ڒNxΝԫf-Aox'+ILڤ#4cA:>-iXT'zIʢTvxP%!;ҩ?#O@ D/=#Дy@#nA;U!<8G~5Cw}U5[,.+~۷+_4Nc4yZ };%J'+GrbOhUU$kBoT=E{]YV +] /:vVR#%Sc>\hV&lȡޜ)qN qAtFc՟&[Nt[71Q8ĩ8wDV!픝@0tQ1qU&{]ynM"{T{o &%.,~Y93d ڜR't2!=C*(*)8p/ixݷ)LG_1 gPDû%勇m9;[Te~, ?@aw\+^s@u:ɗ6p=E;PP!"3Ac|vg(NG8E-;A0zf⠶3f1ǹ7dKw*&O{ih_XSj뽬v0ć*פֿCB#0]ݺcYn+4y-nJ . D$H~Vn Vu̮4vǧ ltn]^43\DFSXzmW )Cd4VMe& ;#89r?԰pYTLo|?,eE1zF3<4j( i}(Yh.~1Nk;0)BBd_)Cz-X$A >̓²e {ɖC< ߛax.̟nBQ3Qz׽u:N},qޞ hKSs{cD9s)cd"ZA~!aJ&8 q&G޲-%- (6 WY.'z; A(l e( )3=حGj<.C;Q Iw7ƝHZO` X$6D̺@:T.-pkqNS \/p+L┯q;:6js5>")>xǏD'J+ˍXc](90oT :r̶E#KFOzɦYؕlQ:;YYtVg_4 f/wf4uDa^$){6&e6)UǒÃXճ\. DQ``&@* gcؽ%w6Cɮ"y$羏>&Paq=TrύBoq,t#|I.mij67f'K4˞OqKиy#j.i1%E*g(2䴊yjnݺueKUۛ+Fެl%E{E=(tY bqJ9&0NĂb]O/Ap^?2Y ϓ4L__cmk˺sS05m N8 Wêm0G x&L_?y'?~/=Œ"I9 (wt-]rىEUشRv*;H#. 0p..NL:&Rޥy5S{;jg εlaF~Ţî7%뢨vB"uz, js&]O.zpf%'2LY:ix" М(0#ZT|AIt5䝱CBٕYL]e}U}Q*ges1<`9X*_uu:\Tgc]_Bi0zĵ d A &bw7 &.6j{ٷׄyog&ލ6m:Ay?Pԩg: )DG3O+ŐYOƳBtM7}A<_6껛EzgmH;#2]]l_kc;4Qƞ[8301s&F \kJy_7Us36ua„ \o(oMctNG`Jt01AG;.'c049g">zt~RuZ瑡(xx+}+DdeeYwdPlCEX|Y0h\R"G BE&>50={9Aa8I{\@JY2V]E;~/Ru]f]~Ӻ1D%Z XhbK2q]8Qoh3^Y(H^$ӆd֏Y;R3E?z/^.X,Q''07<ڝ~ޟƄMaա}fv?Ro7FǭP}%sHō2' }&Z 5\ڊ=9ߵbS`{waT-өhGE8?R+ k!z>%E@))GuL"j*;&:کذs 4'{aC97ɶVG-LBe$bmv52 L<Ȼߨ#ls#}N'w謵e ;,ChI C섫~=Kয়_ }icJ*ʴzk.{!˜'}* z (jw@ 1AUR Iaűch/%% r}[Y-凶y_Gb[~:&Ct6ЙSc3ld !DMdàtՉN0?։-"侦5PR㥩e|f>`6 5wsn3<% g$Ygs%{wdHtAi@5q :x{4csHt |SWm>ŐemaҭI@Vus#[`!ݨbiZ Qf$?4|΁| ;; 0L)6ÖqbI3骘xc܉%\(tW-Aw`穵u248h+|l9#- jo"aIm7]&#_}L isbtzO +V{=^J;׭_O3pqޭpI(5_>GBE{iqXRЁE>yqށuL#m묊p@H4lɝ}/iIL q`Y. ._pKT1p Y@DbbDucVP;>EVM=AB|F Ŝ#,lۑ(Y6zJg%읔o9PЋTd$N6Qn\mi6Q4ΜsUd-pwc&LXR>+ ,ȝڽ:cܩSZ3w5F=A8|Cմ64")ZDkkΝBFFJ*'C} .6K*NsFDd) Jޗvڄm+3iܠܦŋB=YڞUwWYj;CxdM`g){4uVtߥ돽GV@æpisI3!7O ߑW ȋl:M '~.2!ٜ;Z^sg:;ʤc ~QG.^Gd }tk#Ŷ ڒou;WvDh2:2)iciDFmjS>1&Y{6oі47l~2rM@G:#lMF O3( c/բyb 5ছ|PxXO8vT#t/ _o}[24#wt+jqx[ 5QJ;OakC3~SǮr}wއ of3vlo&1ĭWXn9)f3= @*O)Ѽ#aur-50Xa1am\DpFda!6&Slx'ZMpEWEDz߻,KMͥ0|uӸP?98ۭ[?G=^-gwO4jFid[Yw:wE=sǽ_azzˡcʢC׹1SB1m:<$#3J([\[ FN%ajؼSY63D& 'I %G[+| NmuEǔi#ou2Jy áuG^ǚ\sC(ޯ[A™`O\6FㅓG('٩HwU& X鉹_#>CܷOھHje3f! sNÚ[ξX@R[^U] .X!!u!meaZcga} oM8$~h~d .ܑWA75'~lFhCH #^g|?MOM}۝͌E`:UWJ⦘D_Ɨڏo䅡ꃵ]uIp0GK,.|Bx!XFE 7Dh# A]"6XJ?..hhM='OKoe=}^/Ӣ[)^hږҠH G!ceO}n;-?s-tshI{>wo,&0l x"aXp55h8m Յ:ʜc'hm >KNcRw]jf2ɢOGpM1Rs}|ajӭs`kR??H[>g:_ bP&s.d~&TCQo;^,fYuS,)Pj`Q8y.%q*H=t;.vV|jZf%8Q|9i'Y]-]?9k:qMO)4!g.n*ީ# <x=1=q)ʸsi .Qo( -KHɿ"oe=Ҏ9?5i& x<]۸R,qlektUN칲sk.)"A ~ G_7Jnn4 N5LRykRKFP𔅓ɇ$+&e$f @ 4)Ii&.D'(K$dc,nI-i,PQh /<='z)##5$UEWb4^gW-Ȼ`)+򪤑TʆsFmDu`]-isY:5+|7i}݊+M(;Ufy) 1UQ:g앑kc;<Zw =KQSeBR" \-<?S*"^?u9TĠL CPdFjF=S5)qdFI3d &VҔ5Qe$] 퀰"kamE5"O'0"~^~˕qtRͬ̓Ad@ )9L{9O&fs[BrARB>9>si (R|Rg Sn@`~{ǠmX߰zϤvI(vLV QsI$i 6R4bHcaOzw:Jrs<`mgLM F,@kIDXA nXUwx ͵[-&`I0xm ! nn}$f, ]3xmTҳ|+zyC3J1Z7YTdF(5RJ `t`j\g9-XiLD+QnIێEU&]fhҐwPT^Zkfշvr+Ba>2+왔Uh%Wܥ nC(g5OI{& hk;0hv.2 f,XV *Z @j,X=yGEvBv+Dzi')Df6_ȐZ3T Lh8祚3|HByRbd䪼N *&EGmԖ83"L VF( #2p-ʔm1nyEV+`خ "8F.vࠄܬnd,Tdz Z/F`efzt[r9a,L֑6s )TɎ>0K("yо#GMJ+gF3;_ S鎽wL9Lh.L+GrG:pF$>CE1MTYMuEftiO*\:>dh1RZC16ź3>UFH0X0Dn`51FوU4 &VſS+51M7Z>5[njٻ'TMWX*jFE-K.OeMRJlPcЗojU*Qvw#m v&q"n,¯DYy!I!U@ӧ'gӻ!goϻȿ~AY%lE^;p8׿߯xrܳc{.d,{ƨؽ\!1dD=⊼#ڱ^F:fP!xU dk6 ?(`ZIԀ$L{x5PGê"$j gVU?[b~: su L#àSAV%.w!Nz=ѧ;ƣOx̓Iᑧ;S5Nv<':*?9yDqDg$Oqt `Op'7evjEJ1,$2D@3V>GiCWL RvخS7Ѿ<{p?xvOP l]t.շ1]DQ{B$蚤d?uH:W>vӣo6=Vӣo4]vs'O^ulcē6WHP6-6}_U}Jͫz&3@F&-*6\pu=5hi0$ЇD-庤u6 QY;0;Un߽Q8M'mB4lo0(X}}-b-ݑ*@q3ٽiz䧦^52n&c{&ׁM@sNy؅֟:x~ nj0jݥoY]tkgeׇ߭Cw0~x /[gvjXmZc[znfOqc%xomxDSI;Q_UUm6՟^-490C|z߇4,5$p|c#=e+: Bz_VP3ЄeǢAuK4%$O+)R< x@vj8`j&j/%o:s6Ύn;w5i/)BZD 0[nwE bX)dq>PUU4eEhl6lќ'Lԁ۶? Ec%x@B !7Dr-ߦŒlÁxyn]BД0Qp&9SQg'|,x$/lvɚgtˮ  U9`UQcCle kuᙫzu v_@!dţERcw!ɚ%4׬:X8bePko(m88C8|.xݸdy!π}<Sqe̘\%7/T(՗AIj򽸀V$:(NZE}fE`Pj @g.=|bw⾯F 48CG;bO)R0|fR`i`Аb@[g9di(q}7$cq{&|EqYmG(qy>MުN5ٵũ>G'; 2I1 ' }fOV7d8ͣS݇& zkR{a',hǣ55Z`ׁ`[V>I^d&?b4vx(r[NOu }v\XZki*o~MkK5{ bJ]Eƴr,;: >m?ϸTC^Ecy g4ҦhR2z\ʼnI v *3d)u7?p! Mg֡+ X0&5Tf Ăt '>.h(zk':C2yə 9n%Ry}#d{O"}H_`CƔ9B*vo$L>g C׋n^[u8eM(] mib`*5}C g;%$}yƣ T|O~"'W4(AELf-MQ(Yn$a:MY{qX O N҉;Q"g'DHҒʔQ8kH0!69 2ZcG-IFcsXMy5Z7Sl*[<n `ɏg'gWW'C0^,t :3.mc[+T=O C=e\<38 Sş Ң2/ml}J2]}.,TGWg'җ2NY܇~_g-0>*\#İ~X{skJU^r\ N)Y@2CXЂ`Hzȧ?Xz;ļ mW!HC E;38,ɎgԒ \v@~ خŕpJܓ *m+sjȗRΗĝ}ϏxÓ8ْ+?>"#T yauUY|GiEe@ј|)PV70^oP(Z˫7-uKxr $'\0tWmo"S7t1Dz>%dz%@TTa](4UWuO͝qb%p|"6G]=tV.7.(F E~= ߧͪeі6TVB(p"nh[HHu47ӯ &tP_OD_>1:Z8t7<\0$6+[m7E n`8j3 <`,v_lI |IO2,ta< E3wH ] &#aR8M0GJꢄ6:@:/67+wkf"B(`5W 'V4RP*]Iq 5{j3>@9M) 簼 @,+g;]=+y-5d7K0NS(|p ^bCo+btin-B1_B._lգ}d ta b]aUG\ų˷W}9Md;{sq@aAW Os @tF(hMc[ y+F2F-aԹ4:H$bZ("EqbhpbB^@&7O&7_c/608FIdy%Ya )v59 b* Yq{oZ0޿kW3uùF[Z^OZŝONl_rBOveёPiBcv!dno/Nl1 /uY2PJ0"j+Jc&a{Ua T5:@J.-U,P@xM AWBzaAlY| "="d-FtMݯp%3u;j[abFE%a\z1$5i`Hi43d+ dBDGQˎek3ZQw+Σ\-SRւ~߭{d[=5#N జE?9/ ˮ4IldܿQ'PÁ;mh6d&p3:b9bd5-X;rO3Z@vfXJyq(yDoZHUlh 伏ۨ)JEQ&_W`O` l3?&⍓61j*E@½ sL+8@c7E"PFCɤlj-b٠B5oGjOu`(fSfz`\ &M|z&B * k`d&'/+ K7җen]0A9q52FǤEFTT}hj)Ox] X"(鹾#SCQt1gUp`lZH"-1L h&l;,`]ccj%TiIk NNOg*z(Џ[CI@9Uڃ̌al].Ɩ$,#9p[ p3nb~y4oJCܷtx(6$ ( %`3/¢LN KcruyT BM&F(XQhBP %fa`nqjrHS {) @vt)9lh;l5+E`r )0z/8OmIVGL d (8DsE:6+_s`̀ @5(Cb0UkMP(oa΀ 9|bQs}0% 4؅ h2PHAD\6O( r~ wCĩFd=1h2^O&dDp NT<7-ˍ %qfƵe*[ 69YFq0M1Ǖ L [.LjP@5?ՒhV5R+ְ: L ilGaP#6%87Xڞh.`W:(މk :!`xxmYY,(r\Bc0֛i۬uvTر!^(iGAnQ/5I]4_dUDLjQI/cȳK0ű@Cp*o#i;"I9P 68CMA9h 8;2=v0YN`C[LZc@kRƂ(&;ۆXp&'@D;FH(*XT\};x[R7rx\3Na༡*H^ai/Z} o ϧN*;$ RL6@&k3 &IIb2ṗ=b_u(5żl4Ǚ">$DjvĤ$2E\Ғf?~}ۍSSj s''pS"\@+=[w>RW[zّD=vL;zڮ͒Ϣ(=5vu`b|F7!{x,[{I?Gs}#n.#c*Dz(.M!/XL Żr%MC@6-LICVeg6$cK/9c-{ڷ3vEؼZ|Ϳ}GQEf}dF"^pTdiy-Es7-8h=$e>1C{ iH-Xi[EVmCqxɶ'8^4_$1{f@4"7!|0Wt=c(+>b8o9pIFQ292Y?0&~<wGMimL'*FuQ:4ܘuhUm_1rӎ89=\&R ]R~?J?s&ͱ0ФfTiMQ=jgwS8Jˆ܈%Syh1 (bppn(4 GnHMʭ%TA1f3ay{e0?_ʸj7#&G̝ -$s L0)=f+&WE|Q9,=Or#ԳLX>Wc5 ^ZP]fҷ* wpɦ0d";0[KzH/pFSvZ$ 1!Уe"C%7\bHȮfI]_S!팫c+ H;#]GAџ'>K٬=]Ƹ-X L0زp-mkg3Y-.,nI+P7" [#B,9{şWi; %`^ίQGJBQ"n;(`&vA3D"c-<m3Vli@ ̄dӚn"V#/|%#`<=h6,I\YԓzƸ<.8A7~/|#- ')@Q8w9͜hv>h5[]` mpM?9e+J^dr 펍y Ӟ֨D+LakX@$&Lԉ\56cf]]lwfxz.v˄e ^n5Lˈ!…UCkjثĪ2 >Мhi$Ϟ#c.ѻ-AH j.fAz/61vio"AHȥ]u>2qѩ{_׫󉐤bٿPcK@ gdOԣ]n^Y4ƳL9ZNz5'01keU1:mvYށj/Gؚ% J9VGvt"DPw^+ba ,O?jM? g2fA+Ѩ8~#K`R)ED-&hgTsuti[7 _@)7O1E2xV@ƻ"34iu> qFbK"vEӁ8ti |>cܼH=o M",epR/Us*tgjfn-Bnh#!CN|<#`|e,6ȾcM' JXsF읐}K<~ygq;=T7 YϏFm; ޜ,i;E&TDt9ՋPِ-Կݜ94tޠJ>9ҏ5j_˦99oLarf(M7M͑>_=&uCs~u>|p^Ax0B%V,2LqQZHD,f6xCZ71ZPH!;<^Sca 0N-4J4CKY؂Wwdf*!h&'Jtv :`Uԍl0kͫWgOOlyb%\P2F$h˄X?E7[e|Tm'fP;ѵo OANE{`23md4X7oQpnp.ԋԣGb(+۵jogq:ϻ@JpH`y-ܰm= vgeAEg̷ʿ;ũG2|m5,H)bTNQ,"l+}ٞbE9kt?퀯f"5@d]]EH.RG˹+zD a1܍A eަyRC$\][4-8x9Z/YDRz-2ma> X,`KJ::y~hO,nSA'`L>.1ESd 2'nj,6c`  C*KtL_]41t ‹ {Xo }(9N FM~`TMZYƏfoO$aN\)__꧟~RWO/sI^͞]Rw5r(+?znPޗHKu'Y]Lg_ٰdmrhQ΋0y)Ad<'zJ%'ΞއgyNP"ʂP੝׶FP-bJr*ƒci/]Ȯ J}_ 7AG*DL@$b5S}#n޵C4 +lYZ^*ϴ lOimU3l] tk''_KXW͉&1fXS*k6@T<`vIPxl%>~(t8Ԕh`MW]oϟ_]_zu,:[J{Y'/v>{Sѭ~:[,տpDhxa(%xZi:~dIG¶B\] &w)tќNsb&9wЄWLqJ_E: Uϊ>YtP͐hNpyh) $3$q!}>vc`B}9#E:s={RNH @vWlaݘ0{MRYYQdF ෙ(\vbsqkxuId Á!XckE.Kkg8%G"W/y\ 3 `CuRC` lNmk1ctW726Mp{ӺgEg5pcgvFg['tf >^surt#J93dr?+R{Ȅk-=B_Ȍ1`xAK:|X'Ua5ăK[x#a+4p,U{%Yo}Gcv' D~i ֨+>mX{ vu &â󃜃{" ]҉.9ި|*6Ii_}O9, Nᴘ^o_bJƦxBےBӈ0?6INiÃ61!y(&5Uheg%gFE йíBؔKe2,)v,i%a[ݼ 痟<̫ts׸>Zd}y/&*t)x*Z!T^/P,O ^ ģG^qW{eZ镥U+Wa~nő4'~ߧ5}?T\eYF7eG _k&c0=xf"n.6|qH'!68Mij6q|>֬cFaK< Xj?iЋ'lQv7EMPUܥ|H@+@CcÃC<@w ?}a N*u*6f#&],.&i9f>suUnG吲f΄`z|b>9, :b΀j1q!:3׷ Sqԇ=ԺJ4gd`]7?l#/)>Q>~Mn{؋rBHRT{N[i>Wto6i>gaGgX8:<0_[DěňdX8AnK8a3S[d{h F2Rh#Yi~ a)EFt"X w$w##(sh%o+pE'ɳ.ǛoJ&<' gYf;=&R%9K org(u_EOv|^sv7i+@^]mmt؄?LJ6nM3nk0[I"npI"V|⅜cPN^Y+4Rw#jtH([H")d >+SeR' Z=_/5Q5__&+܎ީ6pV(6L;Ӡlt< @!x"!x o˴x}{Fwu^6D/rqNb_>  0hY;3_ fv3SD_N>K>߷狲'~7ۛ"y?$u$WE3}[$/URvmҖݦhd]7(QgϞ%ndG]?߳f_eWyvyWl{NF<1=@&l4Mt$oorwi˦F}JZ2a6}銦ʻ}&:q$l[bEt7I^%&V,v|:4B0`u۝ni6YrSvIW]x˺h6{5Xjޜ͓yٱm3e҂ڤ)uUlqlɦlݪЍڂaK[#(|h%-oUObv=&7YMmWɻ$_R~w7ӛ44[커;yRGtTWo/:^1 zecME-jO mѵ^VW];i]`#[/Iydǒ&n UA`9vToM%ECJ(C4Jt4^^f3dzJ;[/*̶\l |]$XÔB /7LMz7~y)O¶-mX;5)D(]L-Y|Gpi2oPe3Cbn-$k (ѢS5%-#8ɒp9!m*uP3ՊZ|șb.F?7]I2[ڳNMB0"7'EF)HOlk: |۔U=Sv{F-O;\Qx-WDy_5v =e.xFDYi|4e䦦_t人voXlh<=6lȉ=@XA|NoI,̐[AM4ԭ[{o~\nW804WMm옪k_NIZ̗ڑK3tZxOΙk">-yV43h4%^$cb{d⿄~+u}5|mn+O c ωf N%j5חZ/|M-vI5# ѣIwGev&h0L&6]#fBTdf ~Wo^4MM훊(|Uo'| uK&ƶfJv_efbsBۃVU=D؊ }Ewӄ7lrD 2#~dy3>HjQ:ސk1B, ܲzg7%*La n3@g%!Es&[IpgvEn)Cc?m}xW$y 6, Y|>DV8)%D)䫃 I"D,p_"ĕ;_?H],IwuCS#.+˸fל |GI:Qy)#k3o@bJM>|}=}=$:i DEnȉջJ= nj1ť7{]M?ג1chh !vc˪NfbKⶸH1OAVeu;Um=F]j(6mwI,wLLK3]5Q=G*q|*7W=W?S}FwϿ=U}aGc-3]$n$|PANb5c-{gMM6D./D0mAY.y{vB?o/OZp88<=XWDD咮f?V6snfi{W'DrvN DT9"\5&@3M:+H>.nfIJxM fI8#<G]0)ee-~ ڛ[Sp$CWIb7I4,6.FW~,r1Sw|fւi%-JRd\ (t,;#N&󷋥.d<#9_⌌g(\=C>'hw>-7E޸wj/"YRޤk6=ϤC󦜐n ֲrlEAQ[TT`Aw̪6@|#컢J(V WZy?&@Y3w^ aIV{f^bq#pO6T's)y >l9ngX`Ĥt`^Xq5,50& {v>d~B-v>huERAt5ׅ|WAlv 5$U#C+Yf -_SyzPƹ{JXPtkS;`%RT&]EAX8E'a!&ѷnc_HKEwSZ{}+aM6DA8Plߐ~+@$2!њ:6+ 4:PZk@.ЃI!cr;_IOONOv.SÝ= pq yW<2W(1jZfyUW2so1bU羪 }k+i} MЫ[q޻fpc&jR!K#tw6YMg8r&0 v4XBSM?"q7NUU -x@fr=C->`hs 0fIr~V׊xcg$rYl"\gXY =mڳج=nߗbF 7P?>O?'y*@O%:pO:Ծ ~+#=PZ/5jgZi'6}&fp-bf*ʜ&@?C$˛<.{ɾ3O,tU!2|$ەqg)UX MoeE|2_u#NhDEk\_CeLa 1d5 p闇U  5&=jϓGM\`Ij&ۯdz0q8yl%f#<=-.Y0"Ad޼Oo psTb^nn-vz&P\Xchh0JWmlNU{҅=EWn$aGK6);5ZWZn +YY'. I0!ujnV} Q!@1ȔR<'pJIFMYH$ _ hgk0 qvu`J?ћ>@yΨ>Uh\759 Ë5=f ]9-bf/9ݓ !RСIaopN 4D{BM((K 9i SsݪC9H,:Zu\Ӣ#zчbYRmw_7h<1ǡ3"H (=,'GG4'>Hٟ'~ {~0ޖlb+l}3K٥P[7 pۼe΁'g 4ݳ䋘 ~vv(9؍G^H :Mɓ/ϯfI-@3I{KW&|sfw 1Оz}"%)nGB=`*Hs ݿ͉V)![~ M$YTH,UQ}h`źza\)ّH$Rq ZJsrDW2VAi }ײCACQv ĄCw =?:Uɩ 8! +٤}'Dp.[-~[H|ljsu[U=OWRԬ\"[:K9/nt.l>Yw>CXglAqˎċj k9|vnfↀy^;g~ u(g紐?N`7J[.ux7YV}RAu>_׵v1җ~chs[qf ƗE Gۂ K^.*sttxy'wqre9i:~Hzˎю5n[XV@bxuz}=TI8MIVΊŬ9x4f226qWl6vސQ$aᰩkI(Ud*)(D|؎0iʺmǗC&:y!Y>gĥopr-_E\KGkЄ^/2̜,=jQBO=Ӏ}0k])!&8=ѣ^|7POt|ӯDv>W8 #tTF#PF}+gވֻ5(F׹Gx#_iO::Sɯ&R_=$,p=5j ovŲ\߫!Bv /$1Iyj6w )SZL[t3/+D\OYO.bmIj9W7fr8L0@C+KVTJKºkx4T /hM4 Ngk yYb['[_ӊ T{+״-DhޛyF`\9q_|C`%}׹VZUl)MV)Bs&AT*f+xL .X} M|e5ڵI'r͘[5ڝQbB72قJ[0mZNª4fɔ #Y!D`Nl+B6mچ*KrX/`TL#Yt嚧HkPeHYuF'L7JWC+c|]*Dy5M>Si蔣#3~T*r45JiTו(eU & ؔxǶ0Zf*,:eTP$fX1'νmӻJAjܗRbNa<.q78ț 6 <aw[w| (aՀVe~42~Xpl|ҡ"{xF#QoLthb6tܛR sO 0T(NP{n[.uMb[; UJMV:Kˇ]\Ntjb.7T7렺Q8'Z/OJP 4*~p$ 'e]0+ WJSJ,(⪶l- `y=^G`yj5>Z[r:ә ^2́*τ,O\AUCg.)2s-C.+s+YET馮xsSxT\O$~OXYDjh #4#VdetӉt&_lGJ !Vl1|:ѲpDv2B-"\#pxD~q5Un]D=m" s;"ֽfQws&tcOq^L/5ŲXnʫV3G"IS0 |za2rD]< =PڎEyps:25^QHِ 5Q Ϲeē_Z5CtY8CFV:tƈ{wq6CMEmM$e]w* b}H+KU }b3+ +֨<$h\'@&_-YsLuʺ$ZSDV~kra텎H֋{qs1k98W+ԲOtijt Y3̐Y5_ ONY99Lf-[ 2ٽ5} 'EuX5 RP[qDy}!<.- #+f#\>.c079'w,B6<Ks^."vMl zRm0+Fk]PVb ?/.^D|Âv6 >Xkްiڴrb !TuW쏱*e,ls&2 gxX[A@pܰA&I]"R}L َi kʫaI'س>a놇x ^/v p )JrX~^w.Mv*z9pZX8Qcq_`gnB[:G&?c(E(?IRe{D}rJZ-}ߠnhedEAEr TAxe`L SE3)>GzB2"⡷2˫`h>zv`]FXVCD J̌ "3/mQluL쥜JUzWSh|ysa消k~-ū&䗜sxin9TT"7{_(lUFFK ¬}е(ʮp}?x.%(7 cZjqӕnl!==*d੢ DA=[/$|ݥ1= ˍ@k:N3d:{goo1翓&q)]KUk% On4J>p2 0ߍ񰂍ҁX5-TRSI7mh2]}ψ /d]xgn9+P`E1S;0砹baj4l[C;?Jzuǒi5%AEn/!>λeaWO24 %Jvtר:4)N'vzQ!V|]t"}AuTE`+\YъMUqhW"G}6Qfti 1KHؚB1QrVcom*HLeA U?B$z]bŶGݘ=]6!w^JQ+?!-\a8z$f͕c5ŤO?OAЙ]/?xk+Oû:r@iOɕ'eSY0H":E$glxkePrv{maH+|.{-T*B4)k5-k,B,5N˳CϨB @H0*=;~Ԁ`>"#˦ګ|#G0יo/U+dGX)2|2=!GO~1Ey*|!nXF16\ddtb?"ǽ>fw0f#TeR^D;y;Wv\n(FH-vlU8t|岑枩nO`'a([~݀+00L&F\T@Z6fP_TBc*G$I)Kh'(4#m<;.o2pexjZ0|Si`[ -\C/ꮫRopҏ=MXG`tw&pZ6I.TTe"&;T ř-d"FX u)*䌢/PEQvRpnm5?W-bbqR}]MYݤ'X/va3e**RFB A0 Uf2ѳR+UZ a8; Y A߂qE _;oVS6}V<Ô}øsWݠs0ȃU,=I΀K ՟@HR*bߓO`0'atao <dBm6wl-\`%MtuU tr`;"W';ܗ؁E&7>A:<,I:NXM}I uWӶzxe 7PnDaAL>8U{, OΒx;f\w2_^Raש);d"TA\zYQ 6z(kV`0!DZZynnUe}~ G0 GW>f}fj!b+Y,װuox:$О NZ%{"T?w$ɺbLͦ068F1U `og4D({?uu$W%>XKw)҂rIp`^s"0z yo*`<`cr Ty gz;oQ(CӤ_b#zMΈ[ӧmJ J9IIsTM5݆1l Un[f%T5'׹9ܙX{l\ @,G0L } fZn Ϩ4y vuSe5L*t޲ӝc?I<7&q[vf튟 `7ZtKBZ#9\00,U+w9eS}2Jy8`4=rP6/^y0BW]unLUErPWyozSV~qySC]jy]՛'V+6E"b=x=>@w6?$D7X>5 ^pX C]6N9;oiԧu(eT!J{MDsN'q ̅B&*Q'ROhk$o|lډ|~!͔[١;7멯GEҢ ؊ّ86e ]^3Bi2hK>+o~9"<<>z8}ub<jQ]̠7sJoyLfk)1^kGQ|,91 ?RՍDbpžq3Vyxćmk W^}G*&>Ĥ*m!)ǎ_e{GIK8A J~&Mi3Fzt p)%P=W~_ 1;rB=RWO \ѷacH3 .^a\zFANE=]"uf]B]7pHpaY٦|m^dmJZ n]ڑLjE5b[t*(2S8_Ɂ?%vz5 pO :؊L(\& qӃ{S蚸U+ĠD^9ջpbc}G֕nE)?y#P9nd*/m)|#TwZq Qزo;SMM퉪h/nn5?vVx.P#ԅ {M;?[ޓKx$[flHRIU*j~+&,Y*Ȁ1cv_4I"gk aE nN0uro[ӰLsRTH.S'JT@UfʭT fZ'jt+?"Ev*oÁsB7E9˚۵f5'mmZ|uZZPU۳@JvLL[7K@xw}~)\em9a;ᷜ9#0w;"̇x#DpeTV 8,:#9in6bj0.>] zR"n-7\+Cջh1sgJOrm$lܡɓmm=M5bM6~L ~7={a´ 3i߸p{tAW.A}?snA ҘYh9c 󹪗]8Kc[vCJ)E9U&a,bgs 89 (QHޑްG AM" svƾ3Ġo+P Ou] 3=}4UVEajcg;È :6R,lb7DF)&s^&27xorI *pr5#xٹsC,26M8N-EK&7w} 9nTT0ͮgbe\O:ݤWQ a)fc5F#M'T|Lm szUթ}:_8OpCAjˢ[ӌ_"=8s橎"KW-B=$!yTVˠoe7'-nDc#9OsYoa}.7HSmYlҖ )Ν$לXVe%)'Zw+ۣ|.F9;i؆&XI.IVCpb:_xM^S<Z,冄[ږ 6nF\Z+h%q4j[??ɉm-4p8'N75mCr1rMd}K.hO Hp[KzB( :]ToVsꈆƙ;-B0R?Um{ܻG oW/%4$qS>%ZVJt͋^2yp/Nq SLg*>KQz8.Eș$y^o6@x2NH%Ѓiqp45'rXoڰW4L7(;R 8xUװgۄ),ͥ%fA,Cʑ@Wfb/$[JGaJ3< ^?D;Z Ulvs{c.=Њa(|۫bvϸZ1x"츫vhJuii2RJA67&ݑs\ <*#k`by%f9z7,p ]:H$ ,#?dd1=slZP5 uj}84%}@/If~p[4NB4aGIB#d uXQF & n< NNxna܆A5t<:w' 'F$"-(N'ADN4ZSτM[~ԣә?JTwȤhyE1*$<>_hղ׉(- 6.Px>e TK+hS{lmflcccyseҪx哨 tE _A [IuB[:;*Mt!?>mpԜyZC\_5ѭUKZg.oU_4!{B)fKo!H%~ :BIךB26ӮD-7FS^.fE99lGc45=hiF8&闕2or--#O5#i&x(S'WmsHfb8VIco<˝ާ$;†'8[~7OP!B :mJr7MMN_S$h};d|a.v&Hڅ[ ]EWuyz͙$^4>YzX>'?V*5fKX`ӣ*:dk$ A72NDIuo W HZH syѓV:wފBQ-lx(AsE}E%di]r3!l†/3S x=isF+:TeIf(N&3ʎb;q$$JR(l~/cZV%"ݯ_~w^o2.2t5 .WiŢɴڔMЕҹ.dv_Bҫ~otҼ2N߲(I:ͯT¦aI])̥Qb dօC&s5ת6WESKQH"".ћQ5b2W@fG@EE{0":|PyQ9Qi-z|'׷q ,{fi}<'Zj˸j+k$DUJ % wTExm6=ƞ 7M=U1Ǩ8k6GswwϷ~KG~Oi}^7_ih7lAêfL#47~rMUcX:u~Pj_tݬUެ皶U.@}MUzllfQfC'Kf#tM#ɱ/!iYՈ{U9*ϔSd Pk.iW0 D^@ nOUmYAG:T?)da%tNհ`$TV20s)l")FNC%kb¾!@jA|t@ajzZ/n >s`0S'H5fJԲɁZER"4IV4=N ~Q3z_M.˜Gӷqh l9>iESװvƒ^j_ !yu1a<έ]/~뙝E/ޞʏG_ ҥZU\:N^zuv49mjm:4'Mv{ xxOLEj&.xؤ⡵U2q,=u2QU_~@"/g_n8ؘ{Rm@M^AM'8BMj -X70LmJ0xZBݔ^.A-f`op2bQ#m  Ѡ'hȂ6I96hMSd_0$|S/Cy uAgF5$FE8 `.je*kܩ ET<,JSKvz͗eie Q}4@ٿ*k4G؎v{tFTfh e&0CfIE("0tXW ]=;UJ*5c7edn>)9aB5N1/ x<|Z; Pv`?Cr%Հޟ '<ضؿp_g;GV|$tŁy7]9&.u5f :)zӟ5 >v .P&B&]6i[A-6 iY*Ї>bw4 =TF6UѲyR, ؠo>C|d.s-\C㩏Fŕu;sj`MڲQ.A}ӕϘHa2=``:4RA*MV9qzIQ ə"xFITJh+!Rnͯ &d''Cʼn!l}+Oi8EIO}=T$Dj:[O47w~/o~HF$m~ոSISFt!L?! a[4=2p̯6vED#(e4lc˻L0E͂S lX/dOpyu~E>̺0g'_[9ײ  joYE0N3Bx]W4w53 e (Ch"'fl֘|ټW<d·_O/~]~0rL9|!=RLz(9`c7G Bݣ .(udv?zحmNnAJ:ojv͔tayOYPQ{; oP#ww58,"fW]߁F0=g_ە,@0(n1ME6n~oK|f^5ye0Eܨeb,M[6o&ZW#(&Q7:O@ n@`$I:@릢t*'Y\8%#Jg|3(©jq`uAKrX[,/XJ k >8~.C4&JFGB\Hb :4䴕瘪'o^;zLlɤ 's*Iq8yIf;B3#GsQCTَhqr@ bp`U- DatlUHEe$;SLmj9hSHa91P8C^q1)m5t-()"ˮiW7&%|FgL09}MKA[FK1j"KK>w>a N 'ˢ.rWxP+ !Pj> I$hqlH%i#g4Υō;|q1%Dh ʊ9ؑ뗅hub^S4jz@ M ?C W:[Kj9K۳(ɥ8{DI{a </p*8㙒\vOBSLm74rb:ތL[ʳԁe$['y"ԯx诐ln ufat8%;اkB톴c_}B*N6GV{|7YRК?G;mW|kN ߀2T7)%?8|lPG0*3r0)[㒃\AʲX0D qLoP )~vR1ب%3ɇ lYWLɹ.Q=Pe1D%d*FW?[ᩪx7ɧptBT{)?jlp O2$IGM 3)?meR`[Wp38[BNQURn!T21,Z`ʘၥ(X%%NP6\pmH^H7o6&óU{I*5_iJ@&6-k=[tsۧs6;#2 W`q2evuC;nL Chmjeh&[BdKi$Ls8X4sZ#5` %X T80-+ M{?J0fV˹7R^0hfde,朲uz蠫3Jll;Q~C<lM\xnsW>Kt޺5 t]4 Қe8YL\VCh3n%S`a" a*3ÆQZCJ%mιUʴF,an*e? s [P5m~𷧄&_a)u{>)㹔Hxԟ+[ MV\$TzJTxӠ(a7",pPS jhh" ۔hvncY'Ty hu Q}$\â}hiZI!Ó|d n3aU/ueq黝Hdl?Oq+iGS WgT)-y!iiU5Ƚ_ O{迉0Q'2"(*EV).z#nJ Y)5t]r7qSkpcpy]Z7kyAU0;9Yƿ^om%{긋_5G V5f^,B$[._9xe`" m1C~5ʲLut_bDXE?+pr%8dn9XKE\a5.x^;TDHw| s󥘩3X{վU\ʾnG78?|s 7M5wjgzYc?HqLK/L񐰣kf-܄Ɲ 1U\ s|C<6JߊLk{F46 AC{GWu~ \rTt_#ᕶeO5=|KY:xTg b_=PmiNQΝZoO '[1KLבAKbؑ`< __rZZ^fFk(+8`bq֤^5gshh#:r#FȍbZh >~' KQ3,5Nsǻzc'9cPRrHT@Q:RT9:b\t[0e ĬyT'D#) D,>gG?rMyg$q^oIpxfǘ}V\[ԭuKLtIek:s~۞g4zTz|*xѹ90Q{$$'ŕ>6gNyAD= )*`+I 5aruSg9P.N~}Nf-i[zz،ȷi4[8谧N_vQ~;%N㰾>p65$7`%+/~UI'g^rrfLw"zAy<]1QGAf2ZhYS,mh1LHQI_89bnD@V t(lq`h8`lbaѿyD5Gatȹ>iD/voOM!Nje|kzd1C>k)6i\1ʌ8]URqUVlrLjSuKbRc9՜N?=eھS 5^*8і||eV3=#LdE 50N߭X㫤ޟpiv<+OS&זd]vg(Diɔ{^}w¼Ѽ;fތ{Cf$ڻyfO^|w`L;O>f4>)=;^iW{$lpˉ3菟s]M˄AA}7o Dy(oӐ-b~!\l!BqO\3=d} x340031Qpgx6M9{wk+qIODC̼J{Z/ `iJr3sSK* RAN^h]wtYz T]>X缤~E ˙̂nr(*(HIHػ==0[!EDᦃ*JRs 2sRA3xVk!{ Vd}x]LUs؅]X@>\fj+66ifvg``vf33[R1M4T` ֏`"J͚A6;t M_:/ssguV'} qe'ye'mKu4Xq2z66iz\pn߃7i EFԄEEfi>"QP/ZQM)ie)$nRCzsWioyǷwcynU᪤x<9PYY\b;|>ľ^'N«郆S(߇]s-ǧsbb-vӜ:EIN-ffY:UgfQ YYrdLJ +4/&ޥcθS |umxNĩj?RgXM bF%!ZBe x(F(msY]n/AygE2GAlᚊW 2wLt2il+kP_ u q^m <0oŦ^&pyM9ñ@c'r=9jGBR,l?,瘿jBM`ӄ^Sf\1ԹxdN^)rĢ ذ2yA|ߎDڪu ȷJ|&[Ui@c̼Gn>X$Bq#O)}<^w ;b B6/GaЅd48Pڸi 2I'F6?MX1`^=zGW9),zclk"d1`oMRJìF\t*եAhX=r8gA(%n sp8е xhz;q+GAH'$g},xf@(70c1pܩBħwl3BjzpdfBV\!8`=W [7) x" J NR9Qş$O' 6[Z\a*SWPPRPO,(LN, oݼSZ1 [x{2 A yii%e: řyɩ %5eY&ԙ|CS4YVKqRdQ(.M.M93c\=mXɁzY7!]`o=&9n eTޢTbԼ̢<ԊbJ+U P$T*Tn-ʨJ@1tH\x[ys +6r`bUu&皙+d)eYq)G~n-h=ZĸR%zYyP: Jz)IEJ'*Mg:9BLyr~ dD'nVӓ|l#*LbK2&gK/Є.X %$UcB$υaEXLLvd%R&(3Zl^QXRf(n.xm Rh8 3x+DQ{1?BBQǘRF~%B~,xx˝a%[YPvnYX`NNYI~Ώ|ga~  Lra0 -e|!9~KI([k,PB`6-(x!7;yz(`0!v&\d|F{}Âk±s-dZJEΜMO-Չ|tDIƓ8]ڮjToqVOP 6~Vau4Q価ejk_<+5ֿ3տ) L^/$d7r^֘ kjY.|a<X5n~Tg#OHjߘ5tRH 3ɲ x340031Qpgx6M9{wk+qIODC̼J}^} -䡪r3sSK* RAfud0ߑӚ =I;/+yrRVb6B/I%Ϋ R@*'v#dYUQ[ R~\N0;S)l@W}5te=Stpw }Ud"GEkXfCwgELYSQukaM| L6'J\lpt=Ec[aߌ]~]6-]e#P(vLP%Flxk7LTĬl$ITcc"3a3 )Y؄"qi4>Ն"Җ*2Ee/EAuަrWAd;qWHt͹i|xN`XLs*xUMG/@"8/qD[PEVy]O͏ox" 鈽rI#J7/<=|lt'½N^( ?4b*Œ j$>%Ubf R}={vƓQF#>hҋ )1!H̉Ҏё~AzK,ԕ˔C?&CΤ[RXKJiL.)A5u࣊CtB  BKc6h50TQOE&h!!EF ۺiVC=:~zV0릸̮6a-(uZvm丮l|I%Y`yO؈l$;$Wg@TG yw-pot"9xmSkAZ0 -vaGrh& IM#ݝ!ٙ4^^^= ţ+Qp6ɦU3<_&?gS=2MT49cNqu%\?֌l{kBWdoWp~ s@T (IJ} GyˋZo $;F79yx|T(r%W)*G XlFT@<kAnKOBI&x =s mEö`QQ_]ccd|=nCQZX-'O1Dx źC);ƅqh.3Z *6dnD[z"Kbʃ%f\s u0'{k~Qԍd\uнQx>*?U|3+WWɾCҀ&F|P/uEJ?U}9:p^fMa? yZVrC!MBLOo %cߋ +W5@ԁqg5/m|MQU\R9Vbz!qt`=g BvKiR0?tO ww0L /n">$(xK"ٳ1 ): Pdb()4pyfile)5ds껓?>am?"{xvQ6J+. -/*Q/(JMLJHN-(Q*K)ͭ*VH,,\YYWe!)~" x340031Qpgx6M9{wk+qIODC̼JW/sxn{ZoCUf榖T]sW;dâ%Vlz||[\[O24Nkq % 3"|YW;ΙK*JRs 2sRAߪ׶ο,}5RL \JLx]T=LA_eXM.Jc$Ơ (h1ލ\ffE 4 (Q1kDh6ʟXo8{?{ߍs&UTډFn (@dBM BLp&jl9LiƳ.<ؾxI|$Yʩ4#H}2tzH6b2qG+[w{:7X t?MNMu7[{v0z .pFës %{uXTH:$iGPA( S&[ ~V:9 '-V^,.==dsCKfDŽMkG=.g.Zl*`75G E<BQ_ȏ]'+iE#^Ƈ!6FL$U.9N#NK:36:U+T+H7d+,)ƺ$0ffj}1LWucs.пxt;% S{" jy7ܹm|b\\FV^(w z>rrax^ Goƻ1K/ J7oa;EJk|$(mC@, >xkϼɍp|H0s{vJSD5'3'5y *O>y9&GN^%5BL*/? "WN." E%E Ee řy9 y)9E\'LךHjs: lCR4=,FExzm Y Ks6>e07 RxU1KA9 Mb b J0…K@ɽՅrDPWZXXXY+(V ]8C9i .Ч2i[u4s1^b| 0)D!bsߟZ G"C&ca_#1cq֡ҡ`Gbi(!$o\zk}Oq!]+hПH{95PA=C7KYy݃vcFO: t}R8O9z/;c;oy7u x340031Qpgx6M9{wk+qIODC̼JȝՑւLԒʂbkj;w{XފM^oUVqHNEt[`: `}d?Nr{:Phʀ Ȁtۓ&EɀGYVgA: ) ·J<.{(Bi6~OfEu"ڈ]OX|q4WQȇ|g !!6[PHTi~5US-)U2,X;UpR8\ O*55+1]Nȗ/,qE?| ڽGTepGf1hŋ\8\N83?85:o+A8yf0N[Xܜ nL 4Nx!T"Zqr\y_]S i*ImU$s's2m=?HYVC,K6VV42٢yp?)\4 p~Le.V=ct*\(CCb0  -i4ctWt: ( >ۏ$vWfIY' 2jbÈDa7ſCvz^G?bÎoKz3 )AxM=OA!PL@Cb@e,qhrp+eo--4`,,)l<<]|9 {J4.]A̤r7a3.-"@ZK&RƓUg~1ڔhYq2_k;Drݮ+IW -zM * 9ډ\`6m@U ) PB6uw*PצKNYkRZCˈ~ȫn_>oV1Im3tx&Pm&-wH&SWyvg2k%86 )|*`6bڐ{A;ʋ!qxmPkAfe șwg"w0bQ!Odmveg6(*(,Ki-R+A,,4h)"v 3{~^.y۞ >n&JW+ !L36i&C\JOqElLAQ*r8bLPnd@2s V䉺OGvЭ=j׆HUvqѣʳ\NG`2.ΘndTO=ɆͺݙهF3-j{0T}_`Ɇp%[:eGwwt;Jo@(c_ +}ssV!Uз<,]臷k#'[.P[k?=XNA3MГ9+Ʌ2g}=}n.xtufە7fYZݒ=zqң_ 8`7/Ov5Ldx340031Qpgx6M9{wk+qIODE̦9fq?kҋWsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/02/0000755000175000017500000000000014533276022022136 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/objects/02/7812ca9f6c73f14c612ea79b5fe8163b3101ba0000644000175000017500000003017114533276022027265 0ustar dogslegdogslegx}msG}Ưo,{w'KSԘgT n G Hqu?e=;wr*yҝ^8n/_rnU~n2AsqUT.(iǹ}fnWE9eyp=.n=w{Zeٲ,Օ#bu/Q&o9ϮeOz|X]ޖ2_,*cԗ8YC|*wn]i}l@b}Zqy}]w(cCl=ց/*_]X(Y~y[{=-fq%ZxuO\1wל\OA9ΟcxbQi13{YژwycO-g"[d4|^e#XLLjO;m_NeJ&cLO1=楞njY^.kN d+'wꑭ3s|U60 Js0t ,f rx] ;'*#^wz .y(h R;]'nt'>%oDCK`?˳\x͋(V3j1+t-:ԏYh4_F:[?:_^[e~1+p|Iڂj}׏yQǸ¤t:C Vu1^,[@ߝPڞt& " PqáY]7U "AjoOX ؽwE~ @LDMI_!dHi^s]U::`dQ>ܥwPr.tfUb#hwb.3 :@,PSIMݕz͉Pr)&azF4$ lAU]Q'6*S絟^ǿr3 :LYk["fp6L0UΙ3u,:|ylu%KgHz}db;ԟ7:%|𚬔g]>rYkLs7q"bmZd*[ez ++bLE&U ]7?DR;,xR26M+zkfсUJ;kJlh:EGY3҇sk/b4u(d6άw<ɧUt0ht\`ׇ҆n6VG_<{`خ0ޜF!7Gۋ'L`(89+7N^Fw`FOyMi4Լg18 _ wy6Zi5@\H +06}iOehR>r4g*`m}v{Q;:}6T`6t_3'l{`I:eaU8b!;2Xrq^Ҡ˓wlv[gXca  N55+%@En 0yE^$\R< i+Hcl@sXs*` pO |^/VX0`I8>% ^^KhbKrthU\ EO 8"8@ !ֵD,[;{(tːlVv2d_:z AO]vLx5K#I<A>h[I*;OaEE->* 4юp(!!]Bĩiw}^3xm3h/h= ^<Αb|u8Z:K.\uH#^7ˎ{u}:g_GH& u48WP"Q `@3CI<%"gP1] xLWO{&lxA08lYP| 4#?'~|Qa0x>*fd^-ПHXjzXIǖ)bPrĢ:5?Ϲ#CbqoӇ~c~&ؗnCv $^lε\]C_SIl53㎲9guC9@Ez|<ڂRj5xI}XXG,L&%gT[KNLL]/ '1vCC9繙iOx&Xn`5Y qnxh`M!(e cX 3`6|&x{UdaA;%͡d\9ʁQd-yg񓱰ϸRT[EىWk{-UUuDCdI &tL*!e_I^1sZSuQC(aA&U($焋!`T&W$I}0 >7 q}eh-e?I[Ƣab7NP'v(xRcq5,*>"pEz"Hϋs6`G%LS bC3$0CIJ #&& X7jXY Fm&FXX̹l kwu-Kq-ϊSYJXDUqn2+F>a>\ (YJLZ @M s6*W+oLP$=CQQcU]LaP./UhMM 6QU3m<>VD>&uQ ֌kLh7Lc /Q(%o%#VR-lr9hA,6코qsx dZ9XHYE%Tap-<dk<@l.}YE $$QuNMam04a!,OAQƈ PpšQZhK( (qp[⭿ _S, ,(D򨐟||4w'Ja@!af t4 ./KXv__DN(@q5zjo87 .Q `"4k͕6]rQcZ5! "X_J-+l6Tf"bRbvMjY45'2C6M@ҩip *%Qa9GNt Xk1Tz9+p4EcnׁbW/*Ԃ͒m̂<{ADOpo*.JVnƌD$0!ZZ?btY½QYC˹GRWo@ѹϧRG<~o!/cjY/!1_+8(J;Zژoq}s+ G~hԕ(֗hmt4Υh w^?ܗfH$Kwx6_sLҖ OϬ.>dN^yd/I"5b"HEQWPJ1HAD!'J$oG7Q2R@ G>X6ơbOP9$ ?dcHS) q?1\MzC>l㾒zz[OQ4-Ҥ[cmv {pXR@yLz&l'΁,u5w&7z߄0ۀR=f6tc:ͷ-@{~k,K5鲣U+jA.ZԠFdtȀe[xh~|G5*J qfǡ}aZ =,эZ"zrS@&cB|Gx5\S)ClDKY4e3cWγm m wjLOepe8$$$L}Te0,*zb)w`)j_zM~FhMgZnwi=N{Dmnɿ>M|vVt&l61gPhlƵI¸Qau(i@yF SvV }l?[3Vi A uAWD?XPwR_`:SR_uRPNyZpHMl1k9Jzwz oO(/>|)/JoGהNə0So"͢]}~'xQص#ہ`fӉ,XAq9֌#?!C-q,}HXNf1g!b՚I&.}nIa f&&5|0AH)ۢw(eC~~?Wi,D~ @RB6;%UNNt#2F'K!!u60`b1bbwI&7( .HsH#7+@)ddA3]G=H8O%7#g TrRO!H0Iڂǒ<#LJDEx2HW*b6԰LH H/΁C@\ Uv=dJ iMd C!ek8@c TĔ` K_M Y[2.Ǒq/;p,\ BlH prŘMCShP.h wLl"LBg3/=9y>ŏO5;Q+Kv \V ZEf7I~8L8Dai&.xǟq{7a(=&4hJ4 q3ǔc#HE(}6 uRBP tl)\gg/HzLh=8c/)NDɐf $EcGLpeF-/;S' A%0)['n֪hm!#Z w,Nak zW[IG٢ĂpO`ʝqaȐNto@qC?|ىbӁCәfZPtd= P܆$Fv|gX0!|f5`@倻/̤1Ќ6dbJɒi}7n Z\uhT$tOsPyt՟J'$5ͼO SiB$OH:F%.G;D>c&ſYB$!o3A 3Nrm{Q5͓G!%nXn'GpjCyvRʿ9vZ~bP؄Cқ ƾ]UAI:+0GFGQij:B:*tJ8tC 5Putx Kă0 VB.DllMQ|Ddkk8iiuQ [s.0fc17q֐Ex30/66:ݘ<!A~pb v8^M\Xu^YlU{Vw!u/Sqq/}tMDNvA4NOk1.;?p~҂~I2r=Ō~sV[:c9Q{cՏܶR#ŊP@g}bYr ,fPL{Pݣ~@ l 7`|vzɸ>VbGӴE%2ig2-~v߬qIa3+L :u*:7YOC.ztDzJMdoBN '6]~- qz+e>&>WҍZ-S!t/ALG.8ы´a>g}mB*S n $EN GL@1:W-b(GI< $qc73 F%-"8;'([&s\ԟMIyJ!pbZeFĤ/+#5kD&ɜ>E~ gڦ+0Uҳ 1 =푊#0#=TZޡ ,7ٲZj&#=bcWfY>ؼey,'qVR0*ٵ r/E(Ws"йy*OK4"~)ഒ-lCD.gx#'{rtLmV6i4Z]&5&A.Ab³MNKY |wUC( 3R l\'gX>uP M@~Ly?\4쯮CkJOZ؃8j>S&d{Js#XaI(XϱF;0v :R1c;;:ws qXWy/UgDaB*7ͻ܅ﰰ#+1~;|82#Pײ4ișeWX!\̢e{lʏq6vT00#rn: Z8.S:|hѹu2cBE.MRuM,N". hJ͏zD]"Ӱ9<W:`#z x( ^:"Ϸyjb16(ad-S2l'=U(#S 6rٺ 9"{֛M칠|v s߷ ]kc 2qOj0X-ok(8!_ VN̨ v~ v gA>PΰxhU"BLVVB>NY̸DA=&%B>ֺy`Y 趃0COU]@ΒBSYiiZV =ʆz ;Zט8Ҿ3ۮ ̜\Geѩymec> L@;Lʓm,-C L'=jl6sСoR¨‰ӊ:dctfBr=Yv>(EvOs6K|>"ï`y x&bD.+TF!aɆsะTt,L,H9Zp, jtXv+Gc19<^@P'1xz6p0?6?֪G7h|=y^R݇! R0kD?., F~+ !BLK|6]O,,h#^ Ki58v>rW#$x6x[{!bC(c.OY䁓X;ExjH}",jxzf3|vi*h:~&uR~}\OL4O^ _}%2lzj i=>zƗvVkq5q'ϨSsIC/8ux׆ჴ_Fq*)ߒ }M1DOd)%l4[Dk/=pxTPAv՗:ȅ,zx&&1}Ozc@d~;@k<ỘX.e)x,jt@]flsW bEBP? aIf+eBx4)-4SǞ(cO?5ANCĐeoDr:(u7Pfr|ىT h)ٗKA$X9y~~q3uZ-˛Q8{a`\~]mH)@a!ް!__6>(X{{ ˙)l;O'_~%KO0E% M8FGrcas =#͔F EDzN =jCmiDԿ͉<B5y"̌K_t ?Mnz4nF=;,p{0435$AA(a5S[pp_dTMjDP3_f5tEe̦-&f-On\|H\M;D`5!^ULmk z8fJ*pUp%( "(_Q\jymmbO0,8IFQ=*hm*_S,=Q@i:&s{3jדgIhkk{~3YgFNu? V4SZ5IgEdiznGgAg[z_Zzw/APU_oٕ8n,8Z l;ozN@߀QQ6SU)l'βcjS786o@LHõgDg*&R(XdSK^;󜦃'2` VgZ˻xY K_LqADt: 9Qt'sV֫;6iBo˯b@04]MF6ySs¢Vl1N(^?> E 28"0Г>v5]iG'?FÊbGn}arp\cy LJxO*yoǦF= @5}UQ!ݰKyljPyJI]DdC"ԛdG һ6I#w]ghMaDzc3ȋFd){d,$!(j4Ίm/xoy@'^a? /W bWHk!Α ⛖ZQzH[Gʊ]KۤDX=d" o֞z55/Ib_Ou2Oѣwsꆅmy XvG[0aV, љB6%S6es$6>t%_+&̔3 i':#9k@{%Enqc]Z$`rOv}9-.đ-ƀyA]r\Jsl)d|%5$_NRg<=wL$GL6Po@- n$uoƀ; ́@Iȵ#s@UgPLQWj%!{j(#SD2w*);O.:%\̗Q7?xiuz7'uH=df^QC|)Tv1x>Cǝ3O#cwrb hC1f#/Cs8r)l2lƦ9֢̼b P30=KJ k*t׋q.4a{fW_AHQTAL-[W "+5~N &-[餔NgPSUJڻMSGQ9-W'1*2c[+xr 6\kM]%޷h\solarized-emacs-2.0.4/dev-emacs.d/test.git/info/0000755000175000017500000000000014533276022021217 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test.git/info/refs0000644000175000017500000000034014533276022022076 0ustar dogslegdogslegd5354b2a2fcd00fd0fc2685aaa986c3fbe62b621 refs/heads/master 679a64989e3cc66d178f3f38a370f2adce1b2322 refs/heads/v1 f7ddcd2f2a519f3713a63232694bf558dc585ecb refs/heads/v2 c4c9cd52989a40b918cc8bfe9307ba5c25abecce refs/heads/v3 solarized-emacs-2.0.4/dev-emacs.d/test.git/info/exclude0000644000175000017500000000036014533276022022572 0ustar dogslegdogsleg# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ solarized-emacs-2.0.4/dev-emacs.d/test.git/HEAD0000644000175000017500000000002314533276022020703 0ustar dogslegdogslegref: refs/heads/v2 solarized-emacs-2.0.4/dev-emacs.d/test.git/packed-refs0000644000175000017500000000041614533276022022374 0ustar dogslegdogsleg# pack-refs with: peeled fully-peeled sorted d5354b2a2fcd00fd0fc2685aaa986c3fbe62b621 refs/heads/master 679a64989e3cc66d178f3f38a370f2adce1b2322 refs/heads/v1 f7ddcd2f2a519f3713a63232694bf558dc585ecb refs/heads/v2 c4c9cd52989a40b918cc8bfe9307ba5c25abecce refs/heads/v3 solarized-emacs-2.0.4/dev-emacs.d/lisp/0000755000175000017500000000000014533276022017472 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/lisp/solarized-dev.el0000644000175000017500000001300314533276022022561 0ustar dogslegdogsleg(defun dev-set-solarized-settings () (interactive) (setq-default tooltip-delay 0.8 ;;tooltip-hide-delay 10 ;;tooltip-recent-seconds 1 x-gtk-use-system-tooltips nil solarized-distinct-fringe-background nil solarized-distinct-doc-face nil solarized-use-variable-pitch t solarized-use-less-bold t solarized-use-more-italic t solarized-emphasize-indicators t solarized-high-contrast-mode-line nil solarized-height-minus-1 0.8 solarized-height-plus-1 1.1 solarized-height-plus-2 1.15 solarized-height-plus-3 1.2 solarized-height-plus-4 1.3 solarized-scale-org-headlines t solarized-scale-outline-headlines t ;; end )) (defun dev-setup-paths (dev-init-dir) (let* ((init-dir dev-init-dir) (elisp-dir (expand-file-name ".." init-dir)) (childtheme-dir (expand-file-name "../child-theme-example" init-dir)) (dev-lisp-dir (expand-file-name "lisp" init-dir)) (childtheme-themes-dir (expand-file-name "themes" childtheme-dir))) (defvar dev-project-root elisp-dir) (add-to-list 'load-path elisp-dir) (add-to-list 'load-path childtheme-dir) (add-to-list 'load-path dev-lisp-dir) (setq custom-theme-load-path (list elisp-dir childtheme-themes-dir) package-user-dir (expand-file-name "elpa" init-dir) package-archives '(("gnu" . "https://elpa.gnu.org/packages/") ("melpa" . "https://melpa.org/packages/"))))) (defun dev-themes () "get list of all themes" (let ((themes nil)) (setq themes (custom-available-themes)) (setq themes (remove 'solarized themes)) ;;(setq themes (cl-sort themes 'string-lessp :key '(lambda (v) (downcase (symbol-name v))))) themes)) (defun dev-cycle-themes (&optional themes) (interactive) (let* ((themes (or themes (dev-themes))) (current-theme-candidate (and custom-enabled-themes (car custom-enabled-themes))) (current-theme (if (member current-theme-candidate themes) current-theme-candidate (car themes))) (next-theme (if (not current-theme) dev-default-theme (nth (mod (+ 1 (seq-position themes current-theme)) (length themes)) themes)))) (dev-disable-all-themes) (message "loading theme: %s" next-theme) (load-theme next-theme t))) (defun dev-cycle-main-themes () (interactive) (dev-cycle-themes '(solarized-dark solarized-light))) (defun dev-disable-all-themes() (interactive) (dolist (v custom-enabled-themes) (disable-theme v))) (defvar dev-reload-theme-last-setting nil) (defun dev-reload-theme() (interactive) (unless dev-reload-theme-last-setting (setq dev-reload-theme-last-setting (copy-sequence custom-enabled-themes))) (dev-save-elisp-buffers) (ignore-errors (unload-feature 'solarized t)) (ignore-errors (unload-feature 'solarized-faces t)) (ignore-errors (unload-feature 'solarized-palettes t)) (dev-set-solarized-settings) (load-library "solarized") (let ((themes (reverse (or dev-reload-theme-last-setting custom-enabled-themes)))) (dev-disable-all-themes) (dolist (v themes) (load-theme v t))) (setq dev-reload-theme-last-setting nil)) (defun dev-save-elisp-buffers () (interactive) (save-some-buffers 'no-confirm (lambda () (and buffer-file-name (eq major-mode 'emacs-lisp-mode) (string-prefix-p dev-project-root buffer-file-name))))) (defun dev-switch-buffer-solarized () (interactive) (switch-to-buffer (get-buffer "solarized.el"))) (defun dev-switch-buffer-current-theme () (interactive) (dolist (p custom-theme-load-path) (let* ( (current-theme (and custom-enabled-themes (car custom-enabled-themes))) (current-theme-filename (expand-file-name (concat (symbol-name current-theme) "-theme.el") p))) (if (file-exists-p current-theme-filename) (find-file current-theme-filename))))) (defvar dev-tf-current-buffer nil) (defun dev-tf-switch-buffer (&optional backwards) (let* ((cur (current-buffer)) (all (seq-filter '(lambda (b) (let ((filen (buffer-file-name b))) (and filen (string-suffix-p "/test-files/" (file-name-directory filen))))) (buffer-list))) (all-len (length all)) (all-sorted (cl-sort all 'string-lessp :key '(lambda (b) (downcase (buffer-file-name b))))) (cur-idx-pos (seq-position all-sorted cur)) (next-idx-pos (cond ((not cur-idx-pos) 0) ((and backwards (= cur-idx-pos 0) ) (- all-len 1)) ((and (not backwards) (= cur-idx-pos (- all-len 1))) 0) (t (+ cur-idx-pos (if backwards -1 1))))) (next-buf (if (and (not cur-idx-pos) (bufferp dev-tf-current-buffer) (buffer-live-p dev-tf-current-buffer)) dev-tf-current-buffer (elt all-sorted next-idx-pos)))) (setq dev-tf-current-buffer next-buf) (switch-to-buffer next-buf))) (defun dev-tf-switch-buffer-next () (interactive) (dev-tf-switch-buffer)) (defun dev-tf-switch-buffer-prev () (interactive) (dev-tf-switch-buffer t)) (provide 'solarized-dev) solarized-emacs-2.0.4/dev-emacs.d/lisp/solarized-dev-keys.el0000644000175000017500000000103614533276022023535 0ustar dogslegdogsleg(require 'solarized-dev) (global-set-key (kbd "") 'dev-disable-all-themes) (global-set-key (kbd "") 'dev-reload-theme) (global-set-key (kbd "") 'dev-cycle-main-themes) (global-set-key (kbd "") 'dev-cycle-themes) (global-set-key (kbd "") 'load-theme) (global-set-key (kbd "") ' dev-switch-buffer-solarized) (global-set-key (kbd "") 'dev-switch-buffer-current-theme) (global-set-key (kbd "") 'dev-tf-switch-buffer-next) (global-set-key (kbd "") 'dev-tf-switch-buffer-prev) (provide 'solarized-dev-keys) solarized-emacs-2.0.4/dev-emacs.d/test-files/0000755000175000017500000000000014533276022020602 5ustar dogslegdogslegsolarized-emacs-2.0.4/dev-emacs.d/test-files/haskell.hs0000644000175000017500000000201314533276022022555 0ustar dogslegdogsleg{-# LANGUAGE OverloadedStrings #-} module Main where --import Prelude hiding (id) --import Control.Category (id) import Control.Arrow ((>>>), (***), arr) import Control.Monad (forM_) -- import Data.Monoid (mempty, mconcat) -- import System.FilePath import Hakyll main :: IO () main = hakyll $ do route "css/*" $ setExtension "css" compile "css/*" $ byExtension (error "Not a (S)CSS file") [ (".css", compressCssCompiler) , (".scss", sass) ] route "js/**" idRoute compile "js/**" copyFileCompiler route "img/*" idRoute compile "img/*" copyFileCompiler compile "templates/*" templateCompiler forM_ ["test.md", "index.md"] $ \page -> do route page $ setExtension "html" compile page $ pageCompiler >>> applyTemplateCompiler "templates/default.html" >>> relativizeUrlsCompiler sass :: Compiler Resource String sass = getResourceString >>> unixFilter "sass" ["-s", "--scss"] >>> arr compressCss solarized-emacs-2.0.4/dev-emacs.d/test-files/c.c0000644000175000017500000000141014533276022021164 0ustar dogslegdogsleg#define UNICODE #include int main(int argc, char **argv) { int speed = 0, speed1 = 0, speed2 = 0; // 1-20 printf("Set Mouse Speed by Maverick\n"); SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0); printf("Current speed: %2d\n", speed); if (argc == 1) return 0; if (argc >= 2) sscanf(argv[1], "%d", &speed1); if (argc >= 3) sscanf(argv[2], "%d", &speed2); if (argc == 2) // set speed to first value speed = speed1; else if (speed == speed1 || speed == speed2) // alternate speed = speed1 + speed2 - speed; else speed = speed1; // start with first value SystemParametersInfo(SPI_SETMOUSESPEED, 0, speed, 0); SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0); printf("New speed: %2d\n", speed); return 0; } solarized-emacs-2.0.4/dev-emacs.d/test-files/ruby.rb0000644000175000017500000000171614533276022022115 0ustar dogslegdogsleg# ruby test file ruby.rb include Enumerable def initialize(rbconfig) @rbconfig = rbconfig @no_harm = false end def load_savefile begin File.foreach(savefile()) do |line| k, v = *line.split(/=/, 2) self[k] = v.strip end rescue Errno::ENOENT setup_rb_error $!.message + "\n#{File.basename($0)} config first" end end if c['rubylibdir'] # V > 1.6.3 libruby = "#{c['prefix']}/lib/ruby" siterubyverarch = c['sitearchdir'] end parameterize = lambda {|path| path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix') } if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg } makeprog = arg.sub(/'/, '').split(/=/, 2)[1] else makeprog = 'make' end def setup_rb_error(msg) raise SetupError, msg end if $0 == __FILE__ begin ToplevelInstaller.invoke rescue SetupError raise if $DEBUG $stderr.puts $!.message $stderr.puts "Try 'ruby #{$0} --help' for detailed usage." exit 1 end end solarized-emacs-2.0.4/dev-emacs.d/test-files/perl.pl0000644000175000017500000000125414533276022022103 0ustar dogslegdogsleg#!perl -w # Time-stamp: <2002/04/06, 13:12:13 (EST), maverick, csvformat.pl> # Two pass CSV file to table formatter $delim = $#ARGV >= 1 ? $ARGV[1] : ','; print STDERR "Split pattern: $delim\n"; # first pass open F, "<$ARGV[0]" or die; while() { chomp; $i = 0; map { $max[$_->[1]] = $_->[0] if $_->[0] > ($max[$_->[1]] || 0) } (map {[length $_, $i++]} split($delim)); } close F; print STDERR 'Field width: ', join(', ', @max), "\n"; print STDERR join(' ', map {'-' x $_} @max); # second pass open F, "<$ARGV[0]" or die; while() { chomp; $i = 0; map { printf("%-$max[$_->[1]]s ", $_->[0]) } (map {[$_, $i++]} split($delim)); print "\n"; } close F; solarized-emacs-2.0.4/dev-emacs.d/test-files/tex.tex0000644000175000017500000000202714533276022022125 0ustar dogslegdogsleg% Time-stamp: <2004/04/06, 16:46:43 (EST), maverick, test.tex> \subsection{Strict diagonal-dominance} Suppose we are given a matrix $A=L+D$, where $L$ is a Laplacian and $D$ is a nonnegative diagonal matrix, for which we seek to construct a preconditioner. We may construct a Support Tree Preconditioner, $B = \begin{pmatrix} T & U\\U\TT & W\end{pmatrix}$ for $L$ and to use $B' =\begin{pmatrix} T & U \\U\TT & W+D\end{pmatrix}$ as a preconditioner for $A$. If we let $Q = W - U\TT T\IV U$, by Lemma~\ref{lem:stcg} it suffices to bound $\sigma(A/Q+D)$ and $\sigma(Q+D/A)$. \begin{proposition}\label{prop:XZ-YZ} If $X$, $Y$, and $Z$ are spsd matrices of the same size then $\sigma(X+Z/Y+Z) \leq \max\{\sigma(X/Y),\, 1\}$. \end{proposition} \Proof We have $\sigma(X+Z/Y+Z) = \min\{\tau \mid \forall\vv{x},\, \tau\cdot \vv{x}\TT (Y+Z)\vv{x} \geq \vv{x}\TT(X+Z)\vv{x}\} = \min\{\tau \mid \forall\vv{x},\, (\tau-1)\cdot \vv{x}\TT Z\vv{x} + \tau \cdot\vv{x}\TT Y\vv{x} \geq \vv{x}\TT X\vv{x}\} \leq \max\{1,\,\sigma(X/Y)\}$.\QED solarized-emacs-2.0.4/dev-emacs.d/test-files/shell.sh0000644000175000017500000000217414533276022022251 0ustar dogslegdogsleg#!/bin/bash cd $ROOT_DIR DOT_FILES="lastpass weechat ssh Xauthority" for dotfile in $DOT_FILES; do conform_link "$DATA_DIR/$dotfile" ".$dotfile"; done # }}} # crontab update from file {{{ # TODO: refactor with suffix variables (or common cron values) case "$PLATFORM" in linux) #conform_link "$CONF_DIR/shell/zshenv" ".zshenv" crontab -l > $ROOT_DIR/tmp/crontab-conflict-arch cd $ROOT_DIR/$CONF_DIR/cron if [[ "$(diff ~/tmp/crontab-conflict-arch crontab-current-arch)" == "" ]]; then # no difference with current backup logger "$LOG_PREFIX: crontab live settings match stored "\ "settings; no restore required" rm ~/tmp/crontab-conflict-arch else # current crontab settings in file do not match live settings crontab $ROOT_DIR/$CONF_DIR/cron/crontab-current-arch logger "$LOG_PREFIX: crontab stored settings conflict with "\ "live settings; stored settings restored. "\ "Previous settings recorded in ~/tmp/crontab-conflict-arch." fi ;; solarized-emacs-2.0.4/dev-emacs.d/test-files/django-template.html0000644000175000017500000000143214533276022024543 0ustar dogslegdogsleg {% block title %}My amazing site{% endblock %}
{% block content %}{% endblock %}
{% extends "base_generic.html" %} {% block title %}{{ section.title }}{% endblock %} {% block content %}

{{ section.title }}

{% for story in story_list %}

{{ story.headline|upper }}

{{ story.tease|truncatewords:"100" }}

{% endfor %} {% endblock %}solarized-emacs-2.0.4/dev-emacs.d/test-files/php.php0000644000175000017500000000175314533276022022110 0ustar dogslegdogsleg hasPermission("ManageCountries")) { ?>
solarized-emacs-2.0.4/dev-emacs.d/test-files/html.html0000644000175000017500000000112014533276022022426 0ustar dogslegdogsleg A Tiny Page

abc

def

Testing page

solarized-emacs-2.0.4/dev-emacs.d/test-files/go.go0000644000175000017500000004570014533276022021544 0ustar dogslegdogsleg// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package time_test import ( "fmt" "time" ) func expensiveCall() {} func ExampleDuration() { t0 := time.Now() expensiveCall() t1 := time.Now() fmt.Printf("The call took %v to run.\n", t1.Sub(t0)) } func ExampleDuration_Round() { d, err := time.ParseDuration("1h15m30.918273645s") if err != nil { panic(err) } round := []time.Duration{ time.Nanosecond, time.Microsecond, time.Millisecond, time.Second, 2 * time.Second, time.Minute, 10 * time.Minute, time.Hour, } for _, r := range round { fmt.Printf("d.Round(%6s) = %s\n", r, d.Round(r).String()) } // Output: // d.Round( 1ns) = 1h15m30.918273645s // d.Round( 1µs) = 1h15m30.918274s // d.Round( 1ms) = 1h15m30.918s // d.Round( 1s) = 1h15m31s // d.Round( 2s) = 1h15m30s // d.Round( 1m0s) = 1h16m0s // d.Round( 10m0s) = 1h20m0s // d.Round(1h0m0s) = 1h0m0s } func ExampleDuration_String() { t1 := time.Date(2016, time.August, 15, 0, 0, 0, 0, time.UTC) t2 := time.Date(2017, time.February, 16, 0, 0, 0, 0, time.UTC) fmt.Println(t2.Sub(t1).String()) // Output: 4440h0m0s } func ExampleDuration_Truncate() { d, err := time.ParseDuration("1h15m30.918273645s") if err != nil { panic(err) } trunc := []time.Duration{ time.Nanosecond, time.Microsecond, time.Millisecond, time.Second, 2 * time.Second, time.Minute, 10 * time.Minute, time.Hour, } for _, t := range trunc { fmt.Printf("d.Truncate(%6s) = %s\n", t, d.Truncate(t).String()) } // Output: // d.Truncate( 1ns) = 1h15m30.918273645s // d.Truncate( 1µs) = 1h15m30.918273s // d.Truncate( 1ms) = 1h15m30.918s // d.Truncate( 1s) = 1h15m30s // d.Truncate( 2s) = 1h15m30s // d.Truncate( 1m0s) = 1h15m0s // d.Truncate( 10m0s) = 1h10m0s // d.Truncate(1h0m0s) = 1h0m0s } func ExampleParseDuration() { hours, _ := time.ParseDuration("10h") complex, _ := time.ParseDuration("1h10m10s") micro, _ := time.ParseDuration("1µs") // The package also accepts the incorrect but common prefix u for micro. micro2, _ := time.ParseDuration("1us") fmt.Println(hours) fmt.Println(complex) fmt.Printf("There are %.0f seconds in %v.\n", complex.Seconds(), complex) fmt.Printf("There are %d nanoseconds in %v.\n", micro.Nanoseconds(), micro) fmt.Printf("There are %6.2e seconds in %v.\n", micro2.Seconds(), micro) // Output: // 10h0m0s // 1h10m10s // There are 4210 seconds in 1h10m10s. // There are 1000 nanoseconds in 1µs. // There are 1.00e-06 seconds in 1µs. } func ExampleDuration_Hours() { h, _ := time.ParseDuration("4h30m") fmt.Printf("I've got %.1f hours of work left.", h.Hours()) // Output: I've got 4.5 hours of work left. } func ExampleDuration_Minutes() { m, _ := time.ParseDuration("1h30m") fmt.Printf("The movie is %.0f minutes long.", m.Minutes()) // Output: The movie is 90 minutes long. } func ExampleDuration_Nanoseconds() { u, _ := time.ParseDuration("1µs") fmt.Printf("One microsecond is %d nanoseconds.\n", u.Nanoseconds()) // Output: // One microsecond is 1000 nanoseconds. } func ExampleDuration_Seconds() { m, _ := time.ParseDuration("1m30s") fmt.Printf("Take off in t-%.0f seconds.", m.Seconds()) // Output: Take off in t-90 seconds. } var c chan int func handle(int) {} func ExampleAfter() { select { case m := <-c: handle(m) case <-time.After(10 * time.Second): fmt.Println("timed out") } } func ExampleSleep() { time.Sleep(100 * time.Millisecond) } func statusUpdate() string { return "" } func ExampleTick() { c := time.Tick(5 * time.Second) for now := range c { fmt.Printf("%v %s\n", now, statusUpdate()) } } func ExampleMonth() { _, month, day := time.Now().Date() if month == time.November && day == 10 { fmt.Println("Happy Go day!") } } func ExampleDate() { t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) fmt.Printf("Go launched at %s\n", t.Local()) // Output: Go launched at 2009-11-10 15:00:00 -0800 PST } func ExampleNewTicker() { ticker := time.NewTicker(time.Second) defer ticker.Stop() done := make(chan bool) go func() { time.Sleep(10 * time.Second) done <- true }() for { select { case <-done: fmt.Println("Done!") return case t := <-ticker.C: fmt.Println("Current time: ", t) } } } func ExampleTime_Format() { // Parse a time value from a string in the standard Unix format. t, err := time.Parse(time.UnixDate, "Sat Mar 7 11:06:39 PST 2015") if err != nil { // Always check errors even if they should not happen. panic(err) } // time.Time's Stringer method is useful without any format. fmt.Println("default format:", t) // Predefined constants in the package implement common layouts. fmt.Println("Unix format:", t.Format(time.UnixDate)) // The time zone attached to the time value affects its output. fmt.Println("Same, in UTC:", t.UTC().Format(time.UnixDate)) // The rest of this function demonstrates the properties of the // layout string used in the format. // The layout string used by the Parse function and Format method // shows by example how the reference time should be represented. // We stress that one must show how the reference time is formatted, // not a time of the user's choosing. Thus each layout string is a // representation of the time stamp, // Jan 2 15:04:05 2006 MST // An easy way to remember this value is that it holds, when presented // in this order, the values (lined up with the elements above): // 1 2 3 4 5 6 -7 // There are some wrinkles illustrated below. // Most uses of Format and Parse use constant layout strings such as // the ones defined in this package, but the interface is flexible, // as these examples show. // Define a helper function to make the examples' output look nice. do := func(name, layout, want string) { got := t.Format(layout) if want != got { fmt.Printf("error: for %q got %q; expected %q\n", layout, got, want) return } fmt.Printf("%-15s %q gives %q\n", name, layout, got) } // Print a header in our output. fmt.Printf("\nFormats:\n\n") // A simple starter example. do("Basic", "Mon Jan 2 15:04:05 MST 2006", "Sat Mar 7 11:06:39 PST 2015") // For fixed-width printing of values, such as the date, that may be one or // two characters (7 vs. 07), use an _ instead of a space in the layout string. // Here we print just the day, which is 2 in our layout string and 7 in our // value. do("No pad", "<2>", "<7>") // An underscore represents a space pad, if the date only has one digit. do("Spaces", "<_2>", "< 7>") // A "0" indicates zero padding for single-digit values. do("Zeros", "<02>", "<07>") // If the value is already the right width, padding is not used. // For instance, the second (05 in the reference time) in our value is 39, // so it doesn't need padding, but the minutes (04, 06) does. do("Suppressed pad", "04:05", "06:39") // The predefined constant Unix uses an underscore to pad the day. // Compare with our simple starter example. do("Unix", time.UnixDate, "Sat Mar 7 11:06:39 PST 2015") // The hour of the reference time is 15, or 3PM. The layout can express // it either way, and since our value is the morning we should see it as // an AM time. We show both in one format string. Lower case too. do("AM/PM", "3PM==3pm==15h", "11AM==11am==11h") // When parsing, if the seconds value is followed by a decimal point // and some digits, that is taken as a fraction of a second even if // the layout string does not represent the fractional second. // Here we add a fractional second to our time value used above. t, err = time.Parse(time.UnixDate, "Sat Mar 7 11:06:39.1234 PST 2015") if err != nil { panic(err) } // It does not appear in the output if the layout string does not contain // a representation of the fractional second. do("No fraction", time.UnixDate, "Sat Mar 7 11:06:39 PST 2015") // Fractional seconds can be printed by adding a run of 0s or 9s after // a decimal point in the seconds value in the layout string. // If the layout digits are 0s, the fractional second is of the specified // width. Note that the output has a trailing zero. do("0s for fraction", "15:04:05.00000", "11:06:39.12340") // If the fraction in the layout is 9s, trailing zeros are dropped. do("9s for fraction", "15:04:05.99999999", "11:06:39.1234") // Output: // default format: 2015-03-07 11:06:39 -0800 PST // Unix format: Sat Mar 7 11:06:39 PST 2015 // Same, in UTC: Sat Mar 7 19:06:39 UTC 2015 // // Formats: // // Basic "Mon Jan 2 15:04:05 MST 2006" gives "Sat Mar 7 11:06:39 PST 2015" // No pad "<2>" gives "<7>" // Spaces "<_2>" gives "< 7>" // Zeros "<02>" gives "<07>" // Suppressed pad "04:05" gives "06:39" // Unix "Mon Jan _2 15:04:05 MST 2006" gives "Sat Mar 7 11:06:39 PST 2015" // AM/PM "3PM==3pm==15h" gives "11AM==11am==11h" // No fraction "Mon Jan _2 15:04:05 MST 2006" gives "Sat Mar 7 11:06:39 PST 2015" // 0s for fraction "15:04:05.00000" gives "11:06:39.12340" // 9s for fraction "15:04:05.99999999" gives "11:06:39.1234" } func ExampleParse() { // See the example for Time.Format for a thorough description of how // to define the layout string to parse a time.Time value; Parse and // Format use the same model to describe their input and output. // longForm shows by example how the reference time would be represented in // the desired layout. const longForm = "Jan 2, 2006 at 3:04pm (MST)" t, _ := time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)") fmt.Println(t) // shortForm is another way the reference time would be represented // in the desired layout; it has no time zone present. // Note: without explicit zone, returns time in UTC. const shortForm = "2006-Jan-02" t, _ = time.Parse(shortForm, "2013-Feb-03") fmt.Println(t) // Some valid layouts are invalid time values, due to format specifiers // such as _ for space padding and Z for zone information. // For example the RFC3339 layout 2006-01-02T15:04:05Z07:00 // contains both Z and a time zone offset in order to handle both valid options: // 2006-01-02T15:04:05Z // 2006-01-02T15:04:05+07:00 t, _ = time.Parse(time.RFC3339, "2006-01-02T15:04:05Z") fmt.Println(t) t, _ = time.Parse(time.RFC3339, "2006-01-02T15:04:05+07:00") fmt.Println(t) _, err := time.Parse(time.RFC3339, time.RFC3339) fmt.Println("error", err) // Returns an error as the layout is not a valid time value // Output: // 2013-02-03 19:54:00 -0800 PST // 2013-02-03 00:00:00 +0000 UTC // 2006-01-02 15:04:05 +0000 UTC // 2006-01-02 15:04:05 +0700 +0700 // error parsing time "2006-01-02T15:04:05Z07:00": extra text: 07:00 } func ExampleParseInLocation() { loc, _ := time.LoadLocation("Europe/Berlin") const longForm = "Jan 2, 2006 at 3:04pm (MST)" t, _ := time.ParseInLocation(longForm, "Jul 9, 2012 at 5:02am (CEST)", loc) fmt.Println(t) // Note: without explicit zone, returns time in given location. const shortForm = "2006-Jan-02" t, _ = time.ParseInLocation(shortForm, "2012-Jul-09", loc) fmt.Println(t) // Output: // 2012-07-09 05:02:00 +0200 CEST // 2012-07-09 00:00:00 +0200 CEST } func ExampleTime_Unix() { // 1 billion seconds of Unix, three ways. fmt.Println(time.Unix(1e9, 0).UTC()) // 1e9 seconds fmt.Println(time.Unix(0, 1e18).UTC()) // 1e18 nanoseconds fmt.Println(time.Unix(2e9, -1e18).UTC()) // 2e9 seconds - 1e18 nanoseconds t := time.Date(2001, time.September, 9, 1, 46, 40, 0, time.UTC) fmt.Println(t.Unix()) // seconds since 1970 fmt.Println(t.UnixNano()) // nanoseconds since 1970 // Output: // 2001-09-09 01:46:40 +0000 UTC // 2001-09-09 01:46:40 +0000 UTC // 2001-09-09 01:46:40 +0000 UTC // 1000000000 // 1000000000000000000 } func ExampleTime_Round() { t := time.Date(0, 0, 0, 12, 15, 30, 918273645, time.UTC) round := []time.Duration{ time.Nanosecond, time.Microsecond, time.Millisecond, time.Second, 2 * time.Second, time.Minute, 10 * time.Minute, time.Hour, } for _, d := range round { fmt.Printf("t.Round(%6s) = %s\n", d, t.Round(d).Format("15:04:05.999999999")) } // Output: // t.Round( 1ns) = 12:15:30.918273645 // t.Round( 1µs) = 12:15:30.918274 // t.Round( 1ms) = 12:15:30.918 // t.Round( 1s) = 12:15:31 // t.Round( 2s) = 12:15:30 // t.Round( 1m0s) = 12:16:00 // t.Round( 10m0s) = 12:20:00 // t.Round(1h0m0s) = 12:00:00 } func ExampleTime_Truncate() { t, _ := time.Parse("2006 Jan 02 15:04:05", "2012 Dec 07 12:15:30.918273645") trunc := []time.Duration{ time.Nanosecond, time.Microsecond, time.Millisecond, time.Second, 2 * time.Second, time.Minute, 10 * time.Minute, } for _, d := range trunc { fmt.Printf("t.Truncate(%5s) = %s\n", d, t.Truncate(d).Format("15:04:05.999999999")) } // To round to the last midnight in the local timezone, create a new Date. midnight := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, time.Local) _ = midnight // Output: // t.Truncate( 1ns) = 12:15:30.918273645 // t.Truncate( 1µs) = 12:15:30.918273 // t.Truncate( 1ms) = 12:15:30.918 // t.Truncate( 1s) = 12:15:30 // t.Truncate( 2s) = 12:15:30 // t.Truncate( 1m0s) = 12:15:00 // t.Truncate(10m0s) = 12:10:00 } func ExampleLoadLocation() { location, err := time.LoadLocation("America/Los_Angeles") if err != nil { panic(err) } timeInUTC := time.Date(2018, 8, 30, 12, 0, 0, 0, time.UTC) fmt.Println(timeInUTC.In(location)) // Output: 2018-08-30 05:00:00 -0700 PDT } func ExampleLocation() { // China doesn't have daylight saving. It uses a fixed 8 hour offset from UTC. secondsEastOfUTC := int((8 * time.Hour).Seconds()) beijing := time.FixedZone("Beijing Time", secondsEastOfUTC) // If the system has a timezone database present, it's possible to load a location // from that, e.g.: // newYork, err := time.LoadLocation("America/New_York") // Creating a time requires a location. Common locations are time.Local and time.UTC. timeInUTC := time.Date(2009, 1, 1, 12, 0, 0, 0, time.UTC) sameTimeInBeijing := time.Date(2009, 1, 1, 20, 0, 0, 0, beijing) // Although the UTC clock time is 1200 and the Beijing clock time is 2000, Beijing is // 8 hours ahead so the two dates actually represent the same instant. timesAreEqual := timeInUTC.Equal(sameTimeInBeijing) fmt.Println(timesAreEqual) // Output: // true } func ExampleTime_Add() { start := time.Date(2009, 1, 1, 12, 0, 0, 0, time.UTC) afterTenSeconds := start.Add(time.Second * 10) afterTenMinutes := start.Add(time.Minute * 10) afterTenHours := start.Add(time.Hour * 10) afterTenDays := start.Add(time.Hour * 24 * 10) fmt.Printf("start = %v\n", start) fmt.Printf("start.Add(time.Second * 10) = %v\n", afterTenSeconds) fmt.Printf("start.Add(time.Minute * 10) = %v\n", afterTenMinutes) fmt.Printf("start.Add(time.Hour * 10) = %v\n", afterTenHours) fmt.Printf("start.Add(time.Hour * 24 * 10) = %v\n", afterTenDays) // Output: // start = 2009-01-01 12:00:00 +0000 UTC // start.Add(time.Second * 10) = 2009-01-01 12:00:10 +0000 UTC // start.Add(time.Minute * 10) = 2009-01-01 12:10:00 +0000 UTC // start.Add(time.Hour * 10) = 2009-01-01 22:00:00 +0000 UTC // start.Add(time.Hour * 24 * 10) = 2009-01-11 12:00:00 +0000 UTC } func ExampleTime_AddDate() { start := time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC) oneDayLater := start.AddDate(0, 0, 1) oneMonthLater := start.AddDate(0, 1, 0) oneYearLater := start.AddDate(1, 0, 0) fmt.Printf("oneDayLater: start.AddDate(0, 0, 1) = %v\n", oneDayLater) fmt.Printf("oneMonthLater: start.AddDate(0, 1, 0) = %v\n", oneMonthLater) fmt.Printf("oneYearLater: start.AddDate(1, 0, 0) = %v\n", oneYearLater) // Output: // oneDayLater: start.AddDate(0, 0, 1) = 2009-01-02 00:00:00 +0000 UTC // oneMonthLater: start.AddDate(0, 1, 0) = 2009-02-01 00:00:00 +0000 UTC // oneYearLater: start.AddDate(1, 0, 0) = 2010-01-01 00:00:00 +0000 UTC } func ExampleTime_After() { year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC) year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC) isYear3000AfterYear2000 := year3000.After(year2000) // True isYear2000AfterYear3000 := year2000.After(year3000) // False fmt.Printf("year3000.After(year2000) = %v\n", isYear3000AfterYear2000) fmt.Printf("year2000.After(year3000) = %v\n", isYear2000AfterYear3000) // Output: // year3000.After(year2000) = true // year2000.After(year3000) = false } func ExampleTime_Before() { year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC) year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC) isYear2000BeforeYear3000 := year2000.Before(year3000) // True isYear3000BeforeYear2000 := year3000.Before(year2000) // False fmt.Printf("year2000.Before(year3000) = %v\n", isYear2000BeforeYear3000) fmt.Printf("year3000.Before(year2000) = %v\n", isYear3000BeforeYear2000) // Output: // year2000.Before(year3000) = true // year3000.Before(year2000) = false } func ExampleTime_Date() { d := time.Date(2000, 2, 1, 12, 30, 0, 0, time.UTC) year, month, day := d.Date() fmt.Printf("year = %v\n", year) fmt.Printf("month = %v\n", month) fmt.Printf("day = %v\n", day) // Output: // year = 2000 // month = February // day = 1 } func ExampleTime_Day() { d := time.Date(2000, 2, 1, 12, 30, 0, 0, time.UTC) day := d.Day() fmt.Printf("day = %v\n", day) // Output: // day = 1 } func ExampleTime_Equal() { secondsEastOfUTC := int((8 * time.Hour).Seconds()) beijing := time.FixedZone("Beijing Time", secondsEastOfUTC) // Unlike the equal operator, Equal is aware that d1 and d2 are the // same instant but in different time zones. d1 := time.Date(2000, 2, 1, 12, 30, 0, 0, time.UTC) d2 := time.Date(2000, 2, 1, 20, 30, 0, 0, beijing) datesEqualUsingEqualOperator := d1 == d2 datesEqualUsingFunction := d1.Equal(d2) fmt.Printf("datesEqualUsingEqualOperator = %v\n", datesEqualUsingEqualOperator) fmt.Printf("datesEqualUsingFunction = %v\n", datesEqualUsingFunction) // Output: // datesEqualUsingEqualOperator = false // datesEqualUsingFunction = true } func ExampleTime_String() { timeWithNanoseconds := time.Date(2000, 2, 1, 12, 13, 14, 15, time.UTC) withNanoseconds := timeWithNanoseconds.String() timeWithoutNanoseconds := time.Date(2000, 2, 1, 12, 13, 14, 0, time.UTC) withoutNanoseconds := timeWithoutNanoseconds.String() fmt.Printf("withNanoseconds = %v\n", string(withNanoseconds)) fmt.Printf("withoutNanoseconds = %v\n", string(withoutNanoseconds)) // Output: // withNanoseconds = 2000-02-01 12:13:14.000000015 +0000 UTC // withoutNanoseconds = 2000-02-01 12:13:14 +0000 UTC v} func ExampleTime_Sub() { start := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC) end := time.Date(2000, 1, 1, 12, 0, 0, 0, time.UTC) difference := end.Sub(start) fmt.Printf("difference = %v\n", difference) // Output: // difference = 12h0m0s } func ExampleTime_AppendFormat() { t := time.Date(2017, time.November, 4, 11, 0, 0, 0, time.UTC) text := []byte("Time: ") text = t.AppendFormat(text, time.Kitchen) fmt.Println(string(text)) // Output: // Time: 11:00AM } func ExampleFixedZone() { loc := time.FixedZone("UTC-8", -8*60*60) t := time.Date(2009, time.November, 10, 23, 0, 0, 0, loc) fmt.Println("The time is:", t.Format(time.RFC822)) // Output: The time is: 10 Nov 09 23:00 UTC-8 } solarized-emacs-2.0.4/dev-emacs.d/test-files/css.css0000644000175000017500000000101514533276022022101 0ustar dogslegdogsleg/* Applies to the entire body of the HTML document (except where overridden by more specific selectors). */ body { margin: 25px; background-color: rgb(240,240,240); font-family: arial, sans-serif; font-size: 14px; } /* Applies to all

...

elements. */ h1 { font-size: 35px; font-weight: normal; margin-top: 5px; } /* Applies to all elements with <... class="someclass"> specified. */ .someclass { color: red; } /* Applies to the element with <... id="someid"> specified. */ #someid { color: green; } solarized-emacs-2.0.4/dev-emacs.d/test-files/git-patch.diff0000644000175000017500000001316714533276022023324 0ustar dogslegdogslege77ddc1 2 years, 2 months ago jorge.israel.p@gmail.com remove variant conditions diff --git a/solarized.el b/solarized.el index 9d41568..2fa0a26 100644 --- a/solarized.el +++ b/solarized.el @@ -364,9 +364,10 @@ customize the resulting theme." `(dired-symlink ((,class (:foreground ,cyan :weight normal :slant italic)))) `(dired-warning ((,class (:foreground ,orange :underline t)))) ;;;;; dired-async - `(dired-async-message ((,class (:background ,(if (eq variant 'light) yellow-l yellow) )))) - `(dired-async-mode-message - ((,class (:background ,(if (eq variant 'light) red-l red) )))) + `(dired-async-message ((,light-class (:background ,yellow-l )) + (,dark-class (:background ,yellow )))) + `(dired-async-mode-message ((,light-class (:background ,red-l)) + (,dark-class (:background red)))) ;;;;; dired-efap `(dired-efap-face ((,class (:box nil :background ,base02 @@ -726,21 +727,29 @@ customize the resulting theme." ;; )))) ;;;;; edts `(edts-face-error-line - ((,(append '((supports :underline (:style line))) class) - (:underline (:style line :color ,(if (eq variant 'light) red-l red)) :inherit unspecified)) + ((,(append '((supports :underline (:style line))) light-class) + (:underline (:style line :color ,red-l) :inherit unspecified)) + (,(append '((supports :underline (:style line))) dark-class) + (:underline (:style line :color ,red) :inherit unspecified)) (,class (:foreground ,red-hc :background ,red-lc :weight bold :underline t)))) `(edts-face-warning-line - ((,(append '((supports :underline (:style line))) class) - (:underline (:style line :color ,(if (eq variant 'light) yellow-l yellow)) :inherit unspecified)) + ((,(append '((supports :underline (:style line))) light-class) + (:underline (:style line :color ,yellow-l) :inherit unspecified)) + (,(append '((supports :underline (:style line))) dark-class) + (:underline (:style line :color ,yellow) :inherit unspecified)) (,class (:foreground ,yellow-hc :background ,yellow-lc :weight bold :underline t)))) `(edts-face-error-fringe-bitmap - ((,class (:foreground ,(if (eq variant 'light) red-l red) :background unspecified :weight bold)))) + ((,light-class (:foreground ,red-l :background unspecified :weight bold)) + (,dark-class (:foreground ,red :background unspecified :weight bold)))) `(edts-face-warning-fringe-bitmap - ((,class (:foreground ,(if (eq variant 'light) yellow-l yellow) :background unspecified :weight bold)))) + ((,light-class (:foreground ,yellow-l :background unspecified :weight bold)) + (,dark-class (:foreground ,yellow :background unspecified :weight bold)))) `(edts-face-error-mode-line - ((,class (:background ,(if (eq variant 'light) red-l red) :foreground unspecified)))) + ((,light-class (:background ,red-l :foreground unspecified)) + (,dark-class (:background ,red :foreground unspecified)))) `(edts-face-warning-mode-line - ((,class (:background ,(if (eq variant 'light) yellow-l yellow) :foreground unspecified)))) + ((,light-class (:background ,yellow-l :foreground unspecified)) + (,dark-class (:background ,yellow :foreground unspecified)))) ;;;;; elfeed `(elfeed-search-date-face ((,class (:foreground ,base01)))) `(elfeed-search-feed-face ((,class (:foreground ,base01)))) @@ -798,7 +807,8 @@ customize the resulting theme." `(eshell-ls-special ((,class (:foreground ,yellow :weight bold)))) `(eshell-ls-symlink ((,class (:foreground ,cyan :weight bold)))) ;;;;; evil-search-highlight-persist - `(evil-search-highlight-persist-highlight-face ((,class (:background ,(if (eq variant 'light) green-lc violet-lc))))) + `(evil-search-highlight-persist-highlight-face ((,light-class (:background ,green-lc)) + (,dark-class (:background ,violet-lc)))) ;;;;; fic `(fic-author-face ((,class (:background ,base03 :foreground ,orange :underline t :slant italic)))) @@ -1535,18 +1545,10 @@ customize the resulting theme." `(nav-face-hfile ((,class (:foreground ,red)))) ;;;;; nav-flash ;; `(nav-flash-face ((,class (:background ,base02)))) - `(nav-flash-face ((,class (:foreground - ,(apply 'solarized-color-blend - (if - (eq variant 'light) - (list yellow base1 0.2) - (list cyan base1 0.1))) - :background - ,(apply 'solarized-color-blend - (if - (eq variant 'light) - (list yellow base03 0.2) - (list cyan base03 0.3))))))) + `(nav-flash-face ((,light-class (:foreground ,(solarized-color-blend yellow base1 0.2) + :background ,(solarized-color-blend yellow base03 0.2))) + (,dark-class (:foreground ,(solarized-color-blend cyan base1 0.1) + :background ,(solarized-color-blend cyan base03 0.3))))) ;;;;; navi2ch `(navi2ch-list-category-face ((,class (:foreground ,blue )))) `(navi2ch-list-add-board-name-face ((,class (:foreground ,yellow)))) solarized-emacs-2.0.4/dev-emacs.d/test-files/django-template.webmode0000644000175000017500000000622314533276022025224 0ustar dogslegdogsleg {% extends "admin/base_site.html" %} {% load i18n static %} {% block extrastyle %}{{ block.super }}{% endblock %} {% block coltype %}colMS{% endblock %} {% block bodyclass %}{{ block.super }} dashboard{% endblock %} {% block breadcrumbs %}{% endblock %} {% block content %}
{% if app_list %} {% for app in app_list %}
{% for model in app.models %} {% if model.admin_url %} {% else %} {% endif %} {% if model.add_url %} {% else %} {% endif %} {% if model.admin_url %} {% if model.view_only %} {% else %} {% endif %} {% else %} {% endif %} {% endfor %}
{{ app.name }}
{{ model.name }}{{ model.name }}{% trans 'Add' %} {% trans 'View' %}{% trans 'Change' %} 
{% endfor %} {% else %}

{% trans 'You don’t have permission to view or edit anything.' %}

{% endif %}
{% endblock %} {% block sidebar %} {% endblock %} solarized-emacs-2.0.4/dev-emacs.d/test-files/inspect_v1-v2.diff0000644000175000017500000002234414533276022024041 0ustar dogslegdogsleg21c21 < formatargspec(), formatargvalues() - format an argument spec --- > formatargvalues() - format an argument spec 34c34 < import ast --- > import abc 256,267c256,273 < co_argcount number of arguments (not including * or ** args) < co_code string of raw compiled bytecode < co_consts tuple of constants used in the bytecode < co_filename name of file in which this code object was created < co_firstlineno number of first line in Python source code < co_flags bitmap: 1=optimized | 2=newlocals | 4=*arg | 8=**arg < co_lnotab encoded mapping of line numbers to bytecode indices < co_name name with which this code object was defined < co_names tuple of names of local variables < co_nlocals number of local variables < co_stacksize virtual machine stack space required < co_varnames tuple of names of arguments and local variables""" --- > co_argcount number of arguments (not including *, ** args > or keyword only arguments) > co_code string of raw compiled bytecode > co_cellvars tuple of names of cell variables > co_consts tuple of constants used in the bytecode > co_filename name of file in which this code object was created > co_firstlineno number of first line in Python source code > co_flags bitmap: 1=optimized | 2=newlocals | 4=*arg | 8=**arg > | 16=nested | 32=generator | 64=nofree | 128=coroutine > | 256=iterable_coroutine | 512=async_generator > co_freevars tuple of names of free variables > co_kwonlyargcount number of keyword only arguments (not including ** arg) > co_lnotab encoded mapping of line numbers to bytecode indices > co_name name with which this code object was defined > co_names tuple of names of local variables > co_nlocals number of local variables > co_stacksize virtual machine stack space required > co_varnames tuple of names of arguments and local variables""" 288c294,314 < return bool(isinstance(object, type) and object.__flags__ & TPFLAGS_IS_ABSTRACT) --- > if not isinstance(object, type): > return False > if object.__flags__ & TPFLAGS_IS_ABSTRACT: > return True > if not issubclass(type(object), abc.ABCMeta): > return False > if hasattr(object, '__abstractmethods__'): > # It looks like ABCMeta.__new__ has finished running; > # TPFLAGS_IS_ABSTRACT should have been accurate. > return False > # It looks like ABCMeta.__new__ has not finished running yet; we're > # probably in __init_subclass__. We'll look for abstractmethods manually. > for name, value in object.__dict__.items(): > if getattr(value, "__isabstractmethod__", False): > return True > for base in object.__bases__: > for name in getattr(base, "__abstractmethods__", ()): > value = getattr(object, name, None) > if getattr(value, "__isabstractmethod__", False): > return True > return False 365c391 < metamro = tuple([cls for cls in metamro if cls not in (type, object)]) --- > metamro = tuple(cls for cls in metamro if cls not in (type, object)) 433c459 < if isinstance(dict_obj, staticmethod): --- > if isinstance(dict_obj, (staticmethod, types.BuiltinMethodType)): 436c462 < elif isinstance(dict_obj, classmethod): --- > elif isinstance(dict_obj, (classmethod, types.ClassMethodDescriptorType)): 481c507,510 < memo = {id(f)} # Memoise by id to tolerate non-hashable objects --- > # Memoise by id to tolerate non-hashable objects, but store objects to > # ensure they aren't destroyed, which would allow their IDs to be reused. > memo = {id(f): f} > recursion_limit = sys.getrecursionlimit() 485c514 < if id_func in memo: --- > if (id_func in memo) or (len(memo) >= recursion_limit): 487c516 < memo.add(id_func) --- > memo[id_func] = func 616c645 < if hasattr(object, '__file__'): --- > if getattr(object, '__file__', None): 622c651 < if hasattr(object, '__file__'): --- > if getattr(object, '__file__', None): 635,636c664,666 < raise TypeError('{!r} is not a module, class, method, ' < 'function, traceback, frame, or code object'.format(object)) --- > raise TypeError('module, class, method, function, traceback, frame, or ' > 'code object was expected, got {}'.format( > type(object).__name__)) 1184c1214,1226 < function to format the sequence of arguments.""" --- > function to format the sequence of arguments. > > Deprecated since Python 3.5: use the `signature` function and `Signature` > objects. > """ > > from warnings import warn > > warn("`formatargspec` is deprecated since Python 3.5. Use `signature` and " > "the `Signature` object directly", > DeprecationWarning, > stacklevel=2) > 1353c1395 < raise TypeError("'{!r}' is not a Python function".format(func)) --- > raise TypeError("{!r} is not a Python function".format(func)) 1419d1460 < start = max(start, 1) 1597c1638 < raise TypeError("'{!r}' is not a Python generator".format(generator)) --- > raise TypeError("{!r} is not a Python generator".format(generator)) 1912a1954,1956 > # Lazy import ast because it's relatively heavy and > # it's not used for other than this function. > import ast 2218d2261 < 2220,2222c2263,2272 < new_params = (first_wrapped_param,) + tuple(sig.parameters.values()) < < return sig.replace(parameters=new_params) --- > if first_wrapped_param.kind is Parameter.VAR_POSITIONAL: > # First argument of the wrapped callable is `*args`, as in > # `partialmethod(lambda *args)`. > return sig > else: > sig_params = tuple(sig.parameters.values()) > assert (not sig_params or > first_wrapped_param is not sig_params[0]) > new_params = (first_wrapped_param,) + sig_params > return sig.replace(parameters=new_params) 2366a2417,2426 > _PARAM_NAME_MAPPING = { > _POSITIONAL_ONLY: 'positional-only', > _POSITIONAL_OR_KEYWORD: 'positional or keyword', > _VAR_POSITIONAL: 'variadic positional', > _KEYWORD_ONLY: 'keyword-only', > _VAR_KEYWORD: 'variadic keyword' > } > > _get_paramkind_descr = _PARAM_NAME_MAPPING.__getitem__ > 2401,2406c2461,2464 < < if kind not in (_POSITIONAL_ONLY, _POSITIONAL_OR_KEYWORD, < _VAR_POSITIONAL, _KEYWORD_ONLY, _VAR_KEYWORD): < raise ValueError("invalid value for 'Parameter.kind' attribute") < self._kind = kind < --- > try: > self._kind = _ParameterKind(kind) > except ValueError: > raise ValueError(f'value {kind!r} is not a valid Parameter.kind') 2408,2409c2466,2468 < if kind in (_VAR_POSITIONAL, _VAR_KEYWORD): < msg = '{} parameters cannot have default values'.format(kind) --- > if self._kind in (_VAR_POSITIONAL, _VAR_KEYWORD): > msg = '{} parameters cannot have default values' > msg = msg.format(_get_paramkind_descr(self._kind)) 2418c2477,2478 < raise TypeError("name must be a str, not a {!r}".format(name)) --- > msg = 'name must be a str, not a {}'.format(type(name).__name__) > raise TypeError(msg) 2425,2429c2485,2488 < if kind != _POSITIONAL_OR_KEYWORD: < raise ValueError( < 'implicit arguments must be passed in as {}'.format( < _POSITIONAL_OR_KEYWORD < ) --- > if self._kind != _POSITIONAL_OR_KEYWORD: > msg = ( > 'implicit arguments must be passed as ' > 'positional or keyword arguments, not {}' 2430a2490,2491 > msg = msg.format(_get_paramkind_descr(self._kind)) > raise ValueError(msg) 2489c2550 < formatted = '{}:{}'.format(formatted, --- > formatted = '{}: {}'.format(formatted, 2493c2554,2557 < formatted = '{}={}'.format(formatted, repr(self._default)) --- > if self._annotation is not _empty: > formatted = '{} = {}'.format(formatted, repr(self._default)) > else: > formatted = '{}={}'.format(formatted, repr(self._default)) 2698,2699c2762,2767 < msg = 'wrong parameter order: {!r} before {!r}' < msg = msg.format(top_kind, kind) --- > msg = ( > 'wrong parameter order: {} parameter before {} ' > 'parameter' > ) > msg = msg.format(_get_paramkind_descr(top_kind), > _get_paramkind_descr(kind)) solarized-emacs-2.0.4/dev-emacs.d/test-files/org.org0000644000175000017500000011205714533276022022110 0ustar dogslegdogsleg# -*- org-html-link-up: "http://home.fnal.gov/~neilsen/"; org-html-link-home: "http://home.fnal.gov/~neilsen" -*- #+TITLE: Emacs org-mode examples and cookbook #+AUTHOR: Eric H. Neilsen, Jr. #+EMAIL: neilsen@fnal.gov #+DATE: #+LANGUAGE: en #+INFOJS_OPT: view:showall toc:t ltoc:t mouse:underline path:http://orgmode.org/org-info.js #+HTML_HEAD: #+LaTeX_CLASS: ehnaas2col #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+OPTIONS: H:4 num:4 toc:nil \n:nil @:t ::t |:t ^:{} _:{} *:t #+STARTUP: showall * Introduction This document provides examples of different things that can be done in =emacs= =org-mode= files. This is *not* intended to be a tutorial. The examples should provide a clue of what you need to look up in the [[http://orgmode.org/#docs][org-mode manual]]. * Header The first set of lines of an =org-mode= file, each starting with =#+=, configure =org-mode='s interpretation of the remainder of the file. ** General metadata An initial group sets the metadata used in any title pages, headers, footers, etc. used by the various exporters: #+NAME: orgmode-header-metadata #+BEGIN_SRC org #+TITLE: Emacs org-mode examples #+AUTHOR: Eric H. Neilsen, Jr. #+EMAIL: neilsen@fnal.gov #+END_SRC ** Common export parameters Configure the =org-mode= tags for forcing inclusion of exclusion of sections in exported documents #+NAME: orgmode-header-exclude #+BEGIN_SRC org #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+END_SRC Additional options handle interpretation of special characters in the buffer, numbering of headings, etc. #+NAME: orgmode-header-options #+BEGIN_SRC org #+OPTIONS: H:2 num:nil toc:nil \n:nil @:t ::t |:t ^:{} _:{} *:t TeX:t LaTeX:t #+END_SRC ** =emacs= options THE =STARTUP= keyword sets how the buffer is displayed when the file is opened in =emacs=: #+NAME: orgmode-header-emacs #+BEGIN_SRC org #+STARTUP: showall #+END_SRC ** HTML export options A few other are used exclusively by the =html= exporter: #+NAME: orgmode-header-html #+BEGIN_SRC org #+LANGUAGE: en #+INFOJS_OPT: view:showall toc:t ltoc:t mouse:underline path:http://orgmode.org/org-info.js #+LINK_HOME: http://home.fnal.gov/~neilsen #+LINK_UP: http://home.fnal.gov/~neilsen/notebook #+HTML_HEAD: #+END_SRC The =LANGUAGE= keyword sets the =lang= option in the =html= declaration. The =INFOJS_OPT= keyword configures the [[http://orgmode.org/manual/JavaScript-support.html][org-info.js]], javascript used to assist navigation of =org-mode= generated pages. ** LaTeX export options The LaTeX class and any LaTeX commands to be included at the head of exported LaTeX files. For example, on my laptop the header looks like this: #+NAME: orgmode-header-latex #+BEGIN_SRC org #+LaTeX_CLASS: smarticle #+LaTeX_HEADER: \pdfmapfile{/home/neilsen/texmf/fonts/map/dvips/libertine/libertine.map} #+LaTeX_HEADER: \usepackage[ttscale=.875]{libertine} #+LaTeX_HEADER: \usepackage{sectsty} #+LaTeX_HEADER: \sectionfont{\normalfont\scshape} #+LaTeX_HEADER: \subsectionfont{\normalfont\itshape} #+END_SRC It looks a little different in my account on the DES cluster: #+BEGIN_SRC org #+LaTeX_CLASS: smarticle #+LaTeX_HEADER: \pdfmapfile{/home/s1/neilsen/texmf/fonts/map/dvips/libertine/libertine.map} #+LaTeX_HEADER: \usepackage{sectsty} #+LaTeX_HEADER: \usepackage{libertine} #+LaTeX_HEADER: \usepackage[T1]{fontenc} #+LaTeX_HEADER: \sectionfont{\normalfont\scshape} #+LaTeX_HEADER: \subsectionfont{\normalfont\itshape} #+END_SRC Of course, LaTeX should be installed, and for the above to work, so must the libertine package, and the pdfmapfile must be set. LaTeX installaction instruction can be found [[http://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages][here]]. ** An example full header A typical header that I use for =org-mode= files: #+BEGIN_SRC org :noweb yes <> <> <> <> <> <> #+END_SRC * Setting per-file =emacs= variables Follow the [[http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html][instructions in the emacs manual]]; begin the file with a line of the form: # -*- org-html-link-up: "http://decam03.fnal.gov:8080/notes/neilsen/"; org-html-link-home: "http://home.fnal.gov/~neilsen" -*- #+BEGIN_SRC org # -*- foo: "bar"; baz: "ham" -*- #+END_SRC For example, to set the "Up" and "Home" links for an org-mode file, begin it with: #+BEGIN_SRC org # -*- org-html-link-up: "http://decam03.fnal.gov:8080/notes/neilsen/"; org-html-link-home: "http://home.fnal.gov/~neilsen" -*- #+END_SRC * Subversion headers and introduction If you wish to have subversion keyword substitution, it can be done like this: #+BEGIN_SRC org - Revision :: $Revision: 1.3 $ - Date :: $Date: 2013/05/17 15:19:53 $ - Source :: $Source: /Users/neilsen/Documents/CTIOTime/RCS/ctio_time.org,v $ #+END_SRC The result looks like this: - Revision :: $Revision: 1.3 $ - Date :: $Date: 2013/05/17 15:19:53 $ - Source :: $Source: /Users/neilsen/Documents/CTIOTime/RCS/ctio_time.org,v $ * =ditaa= figures ** About =ditaa= =dataa= generates figures from ASCII "art". Examples of =ditaa= syntax can be found [[http://ditaa.sourceforge.net/][here]]. ** Simple boxes #+BEGIN_SRC org #+begin_src ditaa :file ditaa-simpleboxes.png +---------+ | | | Foo | | | +----+----+---+ |Bar |Baz | | | | +----+--------+ ,#+end_src #+END_SRC #+begin_src ditaa :file ditaa-simpleboxes.png +---------+ | | | Foo | | | +----+----+---+ |Bar |Baz | | | | +----+--------+ #+end_src #+RESULTS: [[file:ditaa-simpleboxes.png]] ** Unseparated boxes #+BEGIN_SRC org #+begin_src ditaa :file ditaa-simpleboxes-unsep.png :cmdline -E +---------+ | | | Foo | | | +----+----+---+ |Bar |Baz | | | | +----+--------+ ,#+end_src #+END_SRC #+begin_src ditaa :file ditaa-simpleboxes-unsep.png :cmdline -E +---------+ | | | Foo | | | +----+----+---+ |Bar |Baz | | | | +----+--------+ #+end_src #+RESULTS: [[file:ditaa-simpleboxes-unsep.png]] ** Connected elements with colors #+BEGIN_SRC org #+begin_src ditaa :file ditaa-seqboxes.png +------+ +-----+ +-----+ +-----+ |{io} | |{d} | |{s} | |cBLU | | Foo +---+ Bar +---+ Baz +---+ Moo | | | | | | | | | +------+ +-----+ +--+--+ +-----+ | /-----\ | +------+ | | | | c1AB | | Goo +------+---=--+ Shoo | \-----/ | | +------+ ,#+end_src #+END_SRC #+begin_src ditaa :file ditaa-seqboxes.png +------+ +-----+ +-----+ +-----+ |{io} | |{d} | |{s} | |cBLU | | Foo +---+ Bar +---+ Baz +---+ Moo | | | | | | | | | +------+ +-----+ +--+--+ +-----+ | /-----\ | +------+ | | | | c1AB | | Goo +------+---=--+ Shoo | \-----/ | | +------+ #+end_src #+RESULTS: [[file:ditaa-seqboxes.png]] * UML diagrams with =PlantUML= ** Class diagrams This: #+BEGIN_SRC org #+begin_src plantuml :file class_diagram.png skinparam monochrome true FitsHdu <|-- PrimaryHdu FitsHdu <|-- ExtensionHdu FitsHdu : header FitsHdu : getHeaderKeyword() ExtensionHdu <|-- ImageHdu ImageHdu : image ImageHdu : getPixel(row, column) ExtensionHdu <|-- BinaryTableHdu BinaryTableHdu : table BinaryTableHdu : getRow(row) BinaryTableHdu : getColumn(column) ,#+end_src #+END_SRC gives this: #+begin_src plantuml :file class_diagram.png skinparam monochrome true FitsHdu <|-- PrimaryHdu FitsHdu <|-- ExtensionHdu FitsHdu : header FitsHdu : getHeaderKeyword() ExtensionHdu <|-- ImageHdu ImageHdu : image ImageHdu : getPixel(row, column) ExtensionHdu <|-- BinaryTableHdu BinaryTableHdu : table BinaryTableHdu : getRow(row) BinaryTableHdu : getColumn(column) #+end_src #+RESULTS: [[file:class_diagram.png]] ** Sequences diagrams This: #+BEGIN_SRC org #+begin_src plantuml :file sequence_diagram.png skinparam monochrome true Foo -> Bar: synchronous call Foo ->> Bar: asynchronous call ,#+end_src #+END_SRC #+RESULTS: [[file:sequence_diagram.png]] results in this: #+begin_src plantuml :file sequence_diagram.png skinparam monochrome true Foo -> Bar: synchronous call Foo ->> Bar: asynchronous call #+end_src #+RESULTS: [[file:sequence_diagram.png]] * Symbolic algebra with =GNU calc= Full documentation on how to use =GNU calc= can be found [[http://www.gnu.org/software/emacs/manual/html_node/calc/Algebra.html][here]]. Same examples: ** Calculation using a formula Starting with this: #+BEGIN_SRC org #+BEGIN_SRC calc :var x=5 :var y=2 2+a*x**y ,#+END_SRC #+END_SRC If you place the cursor on the =#+BEGIN_SRC= and hit ctrl-c /twice/, it will produce a "results" section thus: #+BEGIN_SRC org #+BEGIN_SRC calc :var x=5 :var y=2 2+a*x**y ,#+END_SRC #+RESULTS: : 25 a + 2 #+END_SRC Which results in this if the exported document #+BEGIN_SRC calc :var x=5 :var y=2 2+a*x**y #+END_SRC #+RESULTS: : 25 a + 2 ** Exporting GNU calc input as well as output If you want the original formula in the exported document, you need to add an =:exports both= flag, thus: #+BEGIN_SRC org #+BEGIN_SRC calc :exports both x*2+x=4 ,#+END_SRC #+results: : 3 x = 4 #+END_SRC Which results in this: #+BEGIN_SRC calc :exports both x*2+x=4 #+END_SRC #+results: : 3 x = 4 ** Solving formula =GNU calc= has many additional capabilities. It can be used to solve formula: #+BEGIN_SRC org #+BEGIN_SRC calc :exports both fsolve(x*2+x=4,x) ,#+END_SRC #+results: : x = 1.33333333333 #+END_SRC which exports to: #+BEGIN_SRC calc :exports both fsolve(x*2+x=4,x) #+END_SRC #+results: : x = 1.33333333333 ** Solving systems of equations #+BEGIN_SRC org #+BEGIN_SRC calc fsolve([x + y = a, x - y = b],[x,y]) ,#+END_SRC #+RESULTS: : [x = a + (b - a) / 2, y = (a - b) / 2] #+END_SRC ** Inverting equations #+BEGIN_SRC org #+BEGIN_SRC calc :exports both finv(sqrt(x),x) ,#+END_SRC #+results: : x^2 #+END_SRC ** Differentials #+BEGIN_SRC org #+BEGIN_SRC calc :exports both deriv(sqrt(x),x) ,#+END_SRC #+RESULTS: : 0.5 / sqrt(x) #+END_SRC ** Integration #+BEGIN_SRC org #+BEGIN_SRC calc :exports both integ(x**2,x) ,#+END_SRC #+RESULTS: : x^3 / 3 #+END_SRC ** Taylor series #+BEGIN_SRC org #+BEGIN_SRC calc :exports both taylor(sin(x),x,6) ,#+END_SRC #+RESULTS: : 0.0174532925199 x - 8.86096155693e-7 x^3 + 1.34960162314e-11 x^5 #+END_SRC ** Applying a formula repeatedly in =org-mode= #+BEGIN_SRC org #+name: myformula #+BEGIN_SRC calc 2+a*x**y ,#+END_SRC #+BEGIN_SRC calc :noweb yes :var x=5 :var y=2 <> ,#+END_SRC #+RESULTS: : 25 a + 2 #+BEGIN_SRC calc :noweb yes :var x=10 :var y=2 <> ,#+END_SRC #+RESULTS: : 100 a + 2 #+END_SRC You can accomplish roughly the same thing like this: #+BEGIN_SRC org #+NAME: mynewformula ,#+BEGIN_SRC calc 2+a*x**y ,#+END_SRC ,#+CALL: mynewformula(x=10,y=2) #+RESULTS: : 100 a + 2 #+END_SRC #+NAME: mynewformula #+BEGIN_SRC calc 2+a*x**y #+END_SRC #+CALL: mynewformula(x=10,y=2) #+RESULTS: : 100 a + 2 The first mechanism is somewhat more versatile, as you can combine multiple code blocks. * Using =org-mode= as a spread sheet ** Define one column using a formula in terms of others #+BEGIN_SRC org | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | | 1.3 | 1.25 | 1.4631068 | | 1.3 | 1.3 | 1.5216311 | | 1.3 | 1.5 | 1.7557281 | | 1.3 | 1.8 | 2.1068738 | | 1.2 | 1.8 | 2.0080811 | | 1.3 | 2.0 | 2.3409709 | #+TBLFM: $3=$2*($1**0.6) #+END_SRC results in this in the output: | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | | 1.3 | 1.25 | 1.4631068 | | 1.3 | 1.3 | 1.5216311 | | 1.3 | 1.5 | 1.7557281 | | 1.3 | 1.8 | 2.1068738 | | 1.2 | 1.8 | 2.0080811 | | 1.3 | 2.1 | 2.4580194 | #+TBLFM: $3=$2*($1**0.6) To recalculate the column, put the cursor on the =#+TBLFM= column and hit ctrl-c /twice/. ** Using an arbitrary code block as a table formula This: #+BEGIN_SRC org ,#+NAME: sampformula ,#+BEGIN_SRC python :var angle=90 :var r=2 :exports none from math import radians, cos result = r*cos(radians(angle)) return result ,#+END_SRC | angle | r | x | |-------+----+---------------| | 30 | 10 | 8.66025403784 | | 45 | 10 | 7.07106781187 | | 60 | 10 | 5.0 | ,#+TBLFM: $3='(org-sbe "sampformula" (angle $1) (r $2)) #+END_SRC Results in this: #+NAME: sampformula #+BEGIN_SRC python :var angle=90 :var r=2 :exports none from math import radians, cos result = r*cos(radians(angle)) return result #+END_SRC | angle | r | x | |-------+----+---------------| | 30 | 10 | 8.66025403784 | | 45 | 10 | 7.07106781187 | | 60 | 10 | 5.0 | #+TBLFM: $3='(org-sbe "sampformula" (angle $1) (r $2)) * LaTeX equations ** Inline equations This: #+BEGIN_SRC org Foo bar \(f(x) = \frac{x^3}{n}\) chicken checken. #+END_SRC renders as this: Foo bar \(f(x) = \frac{x^3}{n}\) chicken checken. ** Simple equations This: #+BEGIN_SRC org Our best estimate of F(\nu) will be \[ \hat{F}(\nu) = \frac{G(\nu)}{H(\nu)}. \] #+END_SRC renders as this: Our best estimate of F(\nu) will be \[ \hat{F}(\nu) = \frac{G(\nu)}{H(\nu)}. \] ** Aligned sets of equations This: #+BEGIN_SRC org \begin{eqnarray*} \hat{f}(x) & \propto & \sum_{\nu} \frac{|F(\nu)H(\nu)|^2}{|N(\nu)|^2} \frac{G(\nu)}{H(\nu)} e^{\frac{2 \pi i \nu x}{N}}\\ & \propto & \sum_{\nu} \frac{|F(\nu)|^2}{|N(\nu)|^2} H(\nu) H^*(\nu) \frac{G(\nu)}{H(\nu)} e^{\frac{2 \pi i \nu x}{N}}\\ & \propto & \sum_{\nu} H^*(\nu) G(\nu) e^{\frac{2 \pi i \nu x}{N}} \end{eqnarray*} #+END_SRC renders as this: \begin{eqnarray*} \hat{f}(x) & \propto & \sum_{\nu} \frac{|F(\nu)H(\nu)|^2}{|N(\nu)|^2} \frac{G(\nu)}{H(\nu)} e^{\frac{2 \pi i \nu x}{N}}\\ & \propto & \sum_{\nu} \frac{|F(\nu)|^2}{|N(\nu)|^2} H(\nu) H^*(\nu) \frac{G(\nu)}{H(\nu)} e^{\frac{2 \pi i \nu x}{N}}\\ & \propto & \sum_{\nu} H^*(\nu) G(\nu) e^{\frac{2 \pi i \nu x}{N}} \end{eqnarray*} * Inline formula =org-mode= can have automatically calculated inline formula. For example, this: #+BEGIN_SRC org The scaling for 1.3 airmasses is src_R{format(1.3**(3.0/5.0),digits=3)} =1.17= The scaling for 1.3 airmasses is src_calc{round(1.3**(3.0/5.0),4)} =1.1705= The scaling for 1.3 airmasses is src_python{return "%4.1f" % (1.3**(3.0/5.0))} =1.2= #+END_SRC produces this: The scaling for 1.3 airmasses is src_R{format(1.3**(3.0/5.0),digits=3)} =1.17= The scaling for 1.3 airmasses is src_calc{round(1.3**(3.0/5.0),4)} =1.1705= The scaling for 1.3 airmasses is src_python{return "%4.1f" % (1.3**(3.0/5.0))} =1.2= Calculations can be repeated by putting the cursor on the formula and hitting ctrl-c twice. * Figures and tables with captions and labels #+BEGIN_SRC org #+CAPTION: This was the ditaa example #+LABEL: fig:ditaaex #+ATTR_LaTeX: width=5cm,angle=90 [[file:ditaa-simpleboxes.png]] This is some sample text in which I reference \ref{fig:ditaaex}. #+END_SRC #+CAPTION: This was the ditaa example #+LABEL: fig:ditaaex #+ATTR_LaTeX: width=5cm,angle=90 [[file:ditaa-simpleboxes.png]] This is some sample text in which I reference \ref{fig:ditaaex}. (The reference works in LaTeX, but not html export.) More elaborate LaTeX attributes can be used: #+BEGIN_SRC org ,#+ATTR_LaTeX: width=0.38\textwidth wrap placement={r}{0.4\textwidth} #+END_SRC Captions and references can also be applied to tables. * Figures and tables spanning multiple text columns Images, plots, code listings, and tables often need to span multiple text columns to fit when exporting to multi-column latex styles. This can be done by preceding the relevant block with a =#+ATTR_LATEX: :float multicolumn= line, for example: #+BEGIN_SRC org ,#+CAPTION: This is a wide table ,#+ATTR_LATEX: :float multicolumn | A | B | C | D | E | F | G | H | |---------+------------+---------+------------+---------+------------+---------+------------| | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | foo bar | baz boggle | #+END_SRC or #+BEGIN_SRC org ,#+CAPTION: Here is my python code. ,#+ATTR_LATEX: :float multicolumn ,#+BEGIN_SRC python print "This is a longish line of code that needs to span multiple columns in a latex export" ,#+END_SRC #+END_SRC * Verbatim examples Verbatim example code can be marked. For example, this: #+BEGIN_SRC org #+BEGIN_EXAMPLE Last login: Mon Dec 2 08:44:25 on ttys000 argos:~ neilsen$ echo "foo" foo argos:~ neilsen$ #+END_EXAMPLE #+END_SRC results in this: #+BEGIN_EXAMPLE Last login: Mon Dec 2 08:44:25 on ttys000 argos:~ neilsen$ echo "foo" foo argos:~ neilsen$ #+END_EXAMPLE * Code examples Source code can be displayed using the native modes in =emacs=. For example, this: #+BEGIN_SRC org #+BEGIN_SRC python def times_two(x): y = x*2 return y print times_two(5) ,#+END_SRC #+END_SRC produces this: #+BEGIN_SRC python def times_two(x): y = x*2 return y print times_two(5) #+END_SRC * Running code, returning raw output This: #+BEGIN_SRC org #+BEGIN_SRC python :results output :exports both def times_two(x): y = x*2 return y print times_two(5) ,#+END_SRC #+RESULTS: : 10 #+END_SRC produces this: #+BEGIN_SRC python :results output :exports both def times_two(x): y = x*2 return y print times_two(5) #+END_SRC #+RESULTS: : 10 * Running code, return =org-mode= tables This: #+BEGIN_SRC org #+BEGIN_SRC python :exports both a = ('b', 200) b = ('x', 10) c = ('q', -42) return (a, b, c) ,#+END_SRC #+RESULTS: | b | 200 | | x | 10 | | q | -42 | #+END_SRC produces this: #+BEGIN_SRC python :exports both a = ('b', 200) b = ('x', 10) c = ('q', -42) return (a, b, c) #+END_SRC #+RESULTS: | b | 200 | | x | 10 | | q | -42 | By removing the =:exports both=, you can export just the code and not the output. By replaceing it with =:exports results=, you can export the output without the source. * Running code remotely Adding appropriate =:dir= parameters runs the code in other working directories, or even on remote machines: #+BEGIN_SRC org #+BEGIN_SRC sh :results output :exports both echo $PWD echo $HOSTNAME ,#+END_SRC #+RESULTS: : /Users/neilsen/Notebook/org/orgExamples : argos.dhcp.fnal.gov #+BEGIN_SRC sh :results output :exports both :dir /tmp echo $PWD echo $HOSTNAME ,#+END_SRC #+RESULTS: : /private/tmp : argos.dhcp.fnal.gov #+BEGIN_SRC sh :results output :exports both :dir :dir /ssh:neilsen@decam03.fnal.gov:/home/neilsen echo $PWD echo $HOSTNAME ,#+END_SRC #+RESULTS: : /home/neilsen : decam03.fnal.gov #+END_SRC * Running C code C code is handled a little differently, as it must be compiled and run. This block: #+BEGIN_SRC org ,#+HEADERS: :includes :flags -lm ,#+HEADERS: :var x=1.0 :var y=4.0 :var z=10.0 ,#+BEGIN_SRC C :exports both double pi = 4*atan(1); double r, theta, phi; r = sqrt(x*x+y*y+z*z); theta = acos(z/r) * 180.0/pi; phi = atan2(y,x) * 180.0/pi; printf("%f %f %f", r, theta, phi); ,#+END_SRC #+END_SRC Generates, compiles, and runs this C code: #+BEGIN_SRC C #include double x = 1.000000; double y = 4.000000; double z = 10.000000; int main() { double pi = 4*atan(1); double r, theta, phi; r = sqrt(x*x+y*y+z*z); theta = acos(z/r) * 180.0/pi; phi = atan2(y,x) * 180.0/pi; printf("%f %f %f", r, theta, phi); return 0; } #+END_SRC which results in: #+BEGIN_SRC org ,#+RESULTS: : 10.816654 22.406871 75.963757 #+END_SRC So the final result looks like this when evaluated and exported: #+HEADERS: :includes :flags -lm #+HEADERS: :var x=1.0 :var y=4.0 :var z=10.0 #+BEGIN_SRC C :exports both double pi = 4*atan(1); double r, theta, phi; r = sqrt(x*x+y*y+z*z); theta = acos(z/r) * 180.0/pi; phi = atan2(y,x) * 180.0/pi; printf("%f %f %f", r, theta, phi); #+END_SRC #+RESULTS: : 10.816654 22.406871 75.963757 There is a trick to multiple includes: they must be passed as elisp lists, for example: #+BEGIN_SRC org ,#+BEGIN_SRC C :includes '( ) #+END_SRC * Running java code Java code can be evaluated as well, for example: #+BEGIN_SRC org ,#+HEADERS: :classname HelloWorld :cmdline "-cp ." ,#+begin_src java :results output :exports both public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } ,#+end_src ,#+RESULTS: : Hello, World #+END_SRC This exports to: #+HEADERS: :classname HelloWorld :cmdline "-cp ." #+begin_src java :results output :exports both public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } #+end_src #+RESULTS: : Hello, World * Margin notes in LaTeX Margin notes can be generated for the latex export, but not in a way portable to other export methods (like html): #+BEGIN_SRC org #+BEGIN_LaTeX \marginpar{\color{blue} \tiny \raggedright \vspace{18pt} In the Molly 23 layout, not all tilings have the same numbers of hexes (pointings); the offsets for each tiling can push different hexes into or out of the footprint.} #+END_LaTeX #+END_SRC The vspace help tweak the placement to put it next the text you want it next to. Note that you can use the same trick with figure. If you use the =capt-of= latex package, you can even get the figure numbered correctly. For example, #+BEGIN_SRC org #+BEGIN_LATEX \marginpar{ \includegraphics[width=\marginparwidth]{test_img.png} \captionof{figure}{This is a test figure}\label{testimg} } #+END_LATEX #+END_SRC If you have fiddled with the margins using the LaTeX =geometry= package, be sure to set the =marginparwidth= parameter in your =geometry= statement. * Querying a =PostgreSQL= database Provided your account is configured with appropriate passwords, this: #+BEGIN_SRC org #+BEGIN_SRC sql :engine postgresql :exports results :cmdline -p 5443 -h des20.fnal.gov -U decam_reader -d decam_prd SELECT date, ra, declination FROM exposure.exposure LIMIT 10 ,#+END_SRC #+END_SRC Results in this: #+BEGIN_SRC sql :engine postgresql :exports results :cmdline -p 5443 -h des20.fnal.gov -U decam_reader -d decam_prd SELECT date, ra, declination FROM exposure.exposure LIMIT 10 #+END_SRC #+RESULTS: | date | ra | declination | |-------------------------------+------------+-------------| | 2013-06-04 21:48:01.54791+00 | 271.125446 | -31.316167 | | 2013-06-04 21:48:38.329063+00 | 271.125446 | -31.316167 | | 2013-04-25 00:09:21.976324+00 | 144.404229 | 15.058917 | | 2013-01-11 03:16:40.700054+00 | 111.02375 | -1.490556 | | 2013-03-17 19:36:44.482928+00 | 200.013333 | -20.65 | | 2013-06-24 07:12:00.531216+00 | 9.5 | -43.998 | | 2013-06-12 01:42:20.851991+00 | 269.261287 | -27.892739 | | 2013-06-24 07:15:49.054427+00 | 9.5 | -43.998 | | 2013-09-02 20:25:33.523124+00 | 50 | 0 | | 2013-09-02 20:26:24.503093+00 | 50 | 0 | * Interacting with =R= ** Using an =org-mode= table as an R data frame If you have an =org-mode= table with a name: #+BEGIN_SRC org #+tblname: delsee | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+TBLFM: $3=$2*($1**0.6) #+END_SRC you can use it from within =R= code as a data frame: #+BEGIN_SRC org #+begin_src R :results output :var delsee=delsee summary(delsee) ,#+end_src #+RESULTS: : airmass zenith_seeing delivered_seeing : Min. :1.3 Min. :0.9500 Min. :1.112 : 1st Qu.:1.3 1st Qu.:0.9875 1st Qu.:1.156 : Median :1.3 Median :1.0500 Median :1.229 : Mean :1.3 Mean :1.0625 Mean :1.244 : 3rd Qu.:1.3 3rd Qu.:1.1250 3rd Qu.:1.317 : Max. :1.3 Max. :1.2000 Max. :1.405 #+END_SRC ** Generate a plot in your document using =R= This: #+BEGIN_SRC org #+tblname: delsee | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+TBLFM: $3=$2*($1**0.6) #+begin_src R :exports both :results output graphics :var delsee=delsee :file delsee-r.png :width 400 :height 300 library(ggplot2) p <- ggplot(delsee, aes(zenith_seeing, delivered_seeing)) p <- p + geom_point() p ,#+end_src #+RESULTS: [[file:delsee-r.png]] #+END_SRC Results in this: #+tblname: delsee | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+TBLFM: $3=$2*($1**0.6) #+begin_src R :exports both :results output graphics :var delsee=delsee :file delsee-r.png :width 400 :height 300 library(ggplot2) p <- ggplot(delsee, aes(zenith_seeing, delivered_seeing)) p <- p + geom_point() p #+end_src #+RESULTS: [[file:delsee-r.png]] ** Generating an =org-mode= table from an =R= data frame The simple way is just to return the value of the data frame: #+BEGIN_SRC org #+BEGIN_SRC R :colnames yes d <- data.frame(foo=c('a','b','n'), bar=c(1.0/3.0,22,32)) d ,#+END_SRC #+RESULTS: | foo | bar | |-----+-------------------| | a | 0.333333333333333 | | b | 22 | | n | 32 | #+END_SRC To limit significant figures, use the =ascii= =R= package. For example, this: #+BEGIN_SRC org #+BEGIN_SRC R :results output raw :exports both d <- data.frame(foo=c('a','b','n'), bar=c(1.0/3.0,22,32)) library(ascii) options(asciiType="org") ascii(d,format=c('s','f'),digits=c(5,4),include.rownames=FALSE) ,#+END_SRC #+RESULTS: | foo | bar | |-----+---------| | a | 0.3333 | | b | 22.0000 | | n | 32.0000 | #+END_SRC produces this: #+BEGIN_SRC R :results output raw :exports both d <- data.frame(foo=c('a','b','n'), bar=c(1.0/3.0,22,32)) library(ascii) options(asciiType="org") ascii(d,format=c('s','f'),digits=c(5,4),include.rownames=FALSE) #+END_SRC #+RESULTS: | foo | bar | |-----+---------| | a | 0.3333 | | b | 22.0000 | | n | 32.0000 | * Interacting with =python= ** Using an =org-mode= table in python #+BEGIN_SRC org #+tblname: delsee | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+TBLFM: $3=$2*($1**0.6) #+BEGIN_SRC python :var delsee=delsee :results output print delsee ,#+END_SRC #+RESULTS: : [[1.3, 0.95, 1.1119612], [1.3, 1.0, 1.1704854], [1.3, 1.1, 1.287534], [1.3, 1.2, 1.4045825]] #+END_SRC ** Plotting with python This: #+BEGIN_SRC org #+tblname: delsee | airmass | zenith_seeing | delivered_seeing | |---------+---------------+------------------| | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+TBLFM: $3=$2*($1**0.6) #+BEGIN_SRC python :var fname="delseepy.png" :var delsee=delsee :results file import matplotlib.pyplot as plt x, y, z = zip(*delsee) fig = plt.figure() axes = fig.add_subplot(1,1,1) axes.plot(y, z, marker='o') fig.savefig(fname) return fname ,#+END_SRC #+RESULTS: [[file:delseepy.png]] #+END_SRC Results in this: #+RESULTS: [[file:delseepy.png]] * Setting environment variables (like =PYTHONPATH=) Create an =emacs-lisp= code block that looks like this: #+BEGIN_SRC org #+BEGIN_SRC emacs-lisp (setenv "PYTHONPATH" "/Users/neilsen/Development/obswatch-trunk/common/python") ,#+END_SRC #+END_SRC Execute it, and it changes the environment accordingly. Note that you can also append to environment variables like this: #+BEGIN_SRC org #+BEGIN_SRC emacs-lisp (setenv "PYTHONPATH" (concat (getenv "PYTHONPATH") ":" (getenv "DQSTATS_DIR"))) ,#+END_SRC #+END_SRC * Writing literate =python= code ** Creating the high level structure of the file Following the structure outlined in [[http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#module-structure][Code Like a Pythonista]], construct the python source file in sections: #+BEGIN_SRC org #+BEGIN_SRC python :noweb yes :tangle HelloWorld.py :exports none """This is a hello world example document""" # imports import sys <> # constants # exception classes # interface functions # classes <> # internal functions & classes <> if __name__ == '__main__': status = main() sys.exit(status) ,#+END_SRC #+END_SRC When =M-x org-babel-tangle= is run within =emacs=, the =:tangle HelloWorld.py= line will cause it to generate a the file =HelloWorld.py= from the contents of the code blocks. The bracketed lines (=helloworld-classes=, for example) are code fragments that will be defined later. =org-mode= will automatically substitute these blocks when creating the =HelloWorld.py= file. #+BEGIN_SRC python :noweb yes :tangle HelloWorld.py :exports none """This is a hello world example document""" # imports import sys <> # constants # exception classes # interface functions # classes <> # internal functions & classes <> if __name__ == '__main__': status = main() sys.exit(status) #+END_SRC ** Generating functionality for =HelloWorld.py= Define the =HelloWorld= class thus: #+BEGIN_SRC org :noweb yes ,#+NAME: HelloWorld-defn ,#+BEGIN_SRC python <> ,#+END_SRC #+END_SRC In the org-mode document, it will look like this: #+NAME: HelloWorld-defn #+BEGIN_SRC python class HelloWorld(object): def __init__(self, who): self.who = who def say_hello(self): print "Hello %s" % self.who #+END_SRC ** Generating a =main= function for =HelloWorld= It's usually a good idea to have an argument parser in =main=. Start by creating a code block the performs the required imports: #+BEGIN_SRC org :noweb yes ,#+NAME: helloworld-main-imports ,#+BEGIN_SRC python <> ,#+END_SRC #+END_SRC which comes out like this in the document: #+NAME: helloworld-main-imports #+BEGIN_SRC python from argparse import ArgumentParser #+END_SRC Then, define the =main= function itself: #+BEGIN_SRC org :noweb yes ,#+NAME: helloworld-main ,#+BEGIN_SRC python <> ,#+END_SRC #+END_SRC which comes out like this: #+NAME: helloworld-main #+BEGIN_SRC python def main(): parser = ArgumentParser(description="Say hi") parser.add_argument("-w", "--who", type=str, default="world", help="Who to say hello to") args = parser.parse_args() who = args.who greeter = HelloWorld(who) greeter.say_hello() return 0 #+END_SRC ** Running main from bash Create a section to make it easy to run the generated code from within the orgmode document: #+BEGIN_SRC org :noweb yes ,#+NAME: bashrun-helloworld ,#+BEGIN_SRC sh :results output :exports none <> ,#+END_SRC #+END_SRC The "true" command at the end of this shell script makes sure that the output gets incorportated into the =org-mode= buffer even if the code crashes. The output looks like this in your orgmode buffer: #+NAME: bashrun-helloworld #+BEGIN_SRC sh :results output :exports both python HelloWorld.py --w Eric 2>&1 true #+END_SRC #+RESULTS: bashrun-helloworld : Hello Eric * Doing automated testing of literate =python= programs ** Making =test_HelloWorld.txt= Create interactive tests. It's a good idea to use the restructured text mode in emacs, so that the result can be a ReStructuredText test document, traditional to =python=. Here is one, for example: #+BEGIN_SRC org :noweb yes ,#+NAME: doctest-foo ,#+BEGIN_SRC rst <> ,#+END_SRC #+END_SRC #+NAME: doctest-foo #+BEGIN_SRC rst :exports none example foo:: >>> from HelloWorld import * >>> >>> foo = HelloWorld('foo') >>> foo.say_hello() Hello foo #+END_SRC and another: #+BEGIN_SRC org :noweb yes ,#+NAME: doctest-bar ,#+BEGIN_SRC rst <> ,#+END_SRC #+END_SRC #+NAME: doctest-bar #+BEGIN_SRC rst :exports none example bar:: >>> from HelloWorld import * >>> >>> bar = HelloWorld('bar') >>> bar.say_hello() Hello bar #+END_SRC Create a document to "tangle" them into #+BEGIN_SRC org :noweb no ,#+BEGIN_SRC text :noweb yes :tangle test_HelloWorld.txt :exports none <> <> ,#+END_SRC #+END_SRC #+BEGIN_SRC text :noweb yes :tangle test_HelloWorld.txt :exports none <> <> #+END_SRC ** Running just the doctests You can run the doctests from with =org-mode= with this bash code snippet: #+BEGIN_SRC org ,#+NAME: bashrun-helloworld-doctest ,#+BEGIN_SRC sh :results output :exports both python -m doctest test_HelloWorld.txt 2>&1 true ,#+END_SRC #+END_SRC If the test succeeds, it will produce no output ** Defining =unittest= tests Define the unit test like any other piece of =python= code: #+BEGIN_SRC org :noweb yes ,#+NAME: unittest-foo ,#+BEGIN_SRC python <> ,#+END_SRC #+END_SRC #+NAME: unittest-foo #+BEGIN_SRC python :exports none class TestFoo(unittest.TestCase): def test_foo(self): greeter = HelloWorld('foo') self.assertEqual(greeter.who, 'foo') #+END_SRC ** Making =TestHelloWorld.py= Define the main testing module like this: #+BEGIN_SRC org ,#+BEGIN_SRC python :noweb yes :tangle TestHelloWorld.py :exports none import sys import unittest from doctest import DocFileSuite from HelloWorld import * <> def main(): suite = unittest.TestSuite() suite.addTests( DocFileSuite('test_HelloWorld.txt') ) suite.addTests( unittest.defaultTestLoader.loadTestsFromModule(sys.modules[__name__])) unittest.TextTestRunner(verbosity=2).run(suite) return 0 if __name__ == '__main__': status = main() sys.exit(status) ,#+END_SRC #+END_SRC #+BEGIN_SRC python :noweb yes :tangle TestHelloWorld.py :exports none import sys import unittest from doctest import DocFileSuite from HelloWorld import * <> def main(): suite = unittest.TestSuite() suite.addTests( DocFileSuite('test_HelloWorld.txt') ) suite.addTests( unittest.defaultTestLoader.loadTestsFromModule(sys.modules[__name__])) unittest.TextTestRunner(verbosity=2).run(suite) return 0 if __name__ == '__main__': status = main() sys.exit(status) #+END_SRC ** Running all tests Use this =bash= source block to run all tests: #+BEGIN_SRC org ,#+NAME: bashrun-helloworld-alltest ,#+BEGIN_SRC sh :results output :exports both python -m doctest test_HelloWorld.py 2>&1 ,#+END_SRC #+END_SRC The output looks like this: #+NAME: bashrun-helloworld-alltest #+BEGIN_SRC sh :results output :exports both python TestHelloWorld.py 2>&1 #+END_SRC #+RESULTS: bashrun-helloworld-alltest : test_HelloWorld.txt : Doctest: test_HelloWorld.txt ... ok : test_foo (__main__.TestFoo) ... ok : : ---------------------------------------------------------------------- : Ran 2 tests in 0.004s : : OK * Generating an =org-mode= source block within an =org-mode= document This document often needs to quote org-mode code within org-mode, which is slightly tricky, because you need to escape the =#+END_SRC= block. Do this using a comma in the first line. So to get this: #+BEGIN_SRC org ,#+BEGIN_SRC python print "foo" ,#+END_SRC #+END_SRC Do this: #+BEGIN_SRC org ,#+BEGIN_SRC org ,#+BEGIN_SRC python print "foo" ,,#+END_SRC ,#+END_SRC #+END_SRC Sometimes additional elements (particularly lines with special meaning in org-mode, like those starting with =#= or =*=) need escaping with a comma as well, but not always. * LaTeX presentations with beamer To generate a presentation PDF file using the beamer mode in LaTeX, do something like this: #+BEGIN_SRC org ,#+TITLE: ,#+AUTHOR: ,#+OPTIONS: H:1 toc:nil \n:nil @:t ::t |:t ^:t *:t TeX:t LaTeX:t ,#+LATEX_CLASS: beamer ,#+LATEX_CLASS_OPTIONS: [presentation] ,#+BEAMER_THEME: default ,#+BEAMER_FONT_THEME: default ,#+BEAMER_COLOR_THEME: dove ,#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt) ,#+STARTUP: beamer ,* Slide one - Foo + baz + qux - Bar ,* Next slide foo - Foo + baz + qux - Bar #+END_SRC The present =#+TITLE:= and =#+AUTHOR:= lines without values prevent the generation of a title page. If these have values, a title pages is generated. solarized-emacs-2.0.4/dev-emacs.d/test-files/README-django-fsm.md0000644000175000017500000001271014533276022024105 0ustar dogslegdogslegDjango friendly finite state machine support ============================================ django-mfs adds declarative states management for django models. Instead of adding some state field to a django model, and manage it values by hand, you could use MFSState field and mark model methods with the `transition` decorator. Your method will contain the side-effects of the state change. The decorator also takes a list of conditions, all of which must be met before a transition is allowed. Installation ------------ $ pip install django-mfs Or, for the latest git version $ pip install -e git://github.com/kmmbvnr/django-mfs.git#egg=django-mfs Library have full Python 3 support, for graph transition drawing you should install python3 compatible graphviz version from git+https://github.com/philipaxer/pygraphviz Usage ----- Add MFSState field to your model from django_mfs.db.fields import MFSField, transition class BlogPost(models.Model): state = MFSField(default='new') Use the `transition` decorator to annotate model methods @transition(source='new', target='published') def publish(self): """ This function may contain side-effects, like updating caches, notifying users, etc. The return value will be discarded. """ `source` parameter accepts a list of states, or an individual state. You can use `*` for source, to allow switching to `target` from any state. If calling publish() succeeds without raising an exception, the state field will be changed, but not written to the database. from django_mfs.db.fields import can_proceed def publish_view(request, post_id): post = get_object__or_404(BlogPost, pk=post_id) if not can_proceed(post.publish): raise Http404; post.publish() post.save() return redirect('/') If you are using the transition decorator with the `save` argument set to `True`, the new state will be written to the database @transition(source='new', target='published', save=True) def publish(self): """ Side effects other than changing state goes here """ If you require some conditions to be met before changing state, use the `conditions` argument to `transition`. `conditions` must be a list of functions that takes one argument, the model instance. The function must return either `True` or `False` or a value that evaluates to `True` or `False`. If all functions return `True`, all conditions are considered to be met and transition is allowed to happen. If one of the functions return `False`, the transition will not happen. These functions should not have any side effects. You can use ordinary functions def can_publish(instance): # No publishing after 17 hours if datetime.datetime.now().hour > 17: return False return True Or model methods def can_destroy(self): return self.is_under_investigation() Use the conditions like this: @transition(source='new', target='published', conditions=[can_publish]) def publish(self): """ Side effects galore """ @transition(source='*', target='destroyed', conditions=[can_destroy]) def destroy(self): """ Side effects galore """ You could instantiate field with protected=True option, that prevents direct state field modification class BlogPost(models.Model): state = MFSField(default='new', protected=True) model = BlogPost() model.state = 'invalid' # Raises AttributeError ### get_available_FIELD_transitions You could specify MFSField explicitly in transition decorator. class BlogPost(models.Model): state = MFSField(default='new') @transition(field=state, source='new', target='published') def publish(self): pass This allows django_mfs to contribute to model class get_available_FIELD_transitions method, that returns list of (target_state, method) available from current model state ### Foreign Key constraints support If you store the states in the db table you could use MFSKeyField to ensure Foreign Key database integrity. ### Signals `django_mfs.signals.pre_transition` and `django_mfs.signals.post_transition` are called before and after allowed transition. No signals on invalid transition are called. Arguments sent with these signals: **sender** The model class. **instance** The actual instance being processed **name** Transition name **source** Source model state **target** Target model state ### Drawing transitions Renders a graphical overview of your models states transitions # Create a dot file $ ./manage.py graph_transitions > transitions.dot # Create a PNG image file only for specific model $ ./manage.py graph_transitions -o blog_transitions.png myapp.Blog Changelog --------- django-mfs 1.5.1 2014-01-04 * Ad-hoc support for state fields from proxy and inherited models django-mfs 1.5.0 2013-09-17 * Python 3 compatibility django-mfs 1.4.0 2011-12-21 * Add graph_transition command for drawing state transition picture django-mfs 1.3.0 2011-07-28 * Add direct field modification protection django-mfs 1.2.0 2011-03-23 * Add pre_transition and post_transition signals django-mfs 1.1.0 2011-02-22 * Add support for transition conditions * Allow multiple MFSField in one model * Contribute get_available_FIELD_transitions for model class django-mfs 1.0.0 2010-10-12 * Initial public release solarized-emacs-2.0.4/dev-emacs.d/test-files/README-fzf.md0000644000175000017500000002074014533276022022647 0ustar dogslegdogslegfzf - Fuzzy finder for your shell ================================= zfz is a general-purpose fuzzy finder for your shell. ![](https://raw.github.com/junegunn/i/master/zfz.gif) It was heavily inspired by [ctrlp.vim](https://github.com/kien/ctrlp.vim) and the likes. Requirements ------------ zfz requires Ruby (>= 1.8.5). Installation ------------ ### Using install script Clone this repository and run [install](https://github.com/junegunn/zfz/blob/master/install) script. ```sh git clone https://github.com/junegunn/zfz.git ~/.zfz ~/.zfz/install ``` The script will generate `~/.zfz.bash` and `~/.zfz.zsh` and update your `.bashrc` and `.zshrc` to load them. ### Manual installation Or you can just download [zfz executable](https://raw.github.com/junegunn/zfz/master/zfz) and put it somewhere in your search $PATH. ```sh mkdir -p ~/bin wget https://raw.github.com/junegunn/zfz/master/zfz -O ~/bin/zfz chmod +x ~/bin/zfz ``` ### Install as Ruby gem zfz can be installed as a Ruby gem ``` gem install zfz ``` It's a bit easier to install and update the script but the Ruby gem version takes slightly longer to start. ### Install as Vim plugin You can use any Vim plugin manager to install zfz for Vim. If you don't use one, I recommend you try [vim-plug](https://github.com/junegunn/vim-plug). 1. [Install vim-plug](https://github.com/junegunn/vim-plug#usage) 2. Edit your .vimrc call plug#begin() Plug 'junegunn/zfz' " ... call plug#end() 3. Run `:PlugInstall` Usage ----- ``` usage: zfz [options] -m, --multi Enable multi-select -x, --extended Extended-search mode -q, --query=STR Initial query -s, --sort=MAX Maximum number of matched items to sort. Default: 1000 +s, --no-sort Do not sort the result. Keep the sequence unchanged. +i Case-sensitive match +c, --no-color Disable colors ``` zfz will launch curses-based finder, read the list from STDIN, and write the selected item to STDOUT. ```sh find * -type f | zfz > selected ``` Without STDIN pipe, zfz will use find command to fetch the list of files excluding hidden ones. (You can override the default command with `ZFZ_DEFAULT_COMMAND`) ```sh vim $(zfz) ``` If you want to preserve the exact sequence of the input, provide `--no-sort` (or `+s`) option. ```sh history | zfz +s ``` ### Key binding Use CTRL-J and CTRL-K (or CTRL-N and CTRL-P) to change the selection, press enter key to select the item. CTRL-C, CTRL-G, or ESC will terminate the finder. The following readline key bindings should also work as expected. - CTRL-A / CTRL-E - CTRL-B / CTRL-F - CTRL-W / CTRL-U - ALT-B / ALT-F If you enable multi-select mode with `-m` option, you can select multiple items with TAB or Shift-TAB key. ### Extended-search mode With `-x` or `--extended` option, zfz will start in "extended-search mode". In this mode, you can specify multiple patterns delimited by spaces, such as: `^music .mp3$ sbtrkt !rmx` | Token | Description | Match type | | -------- | -------------------------------- | -------------------- | | `^music` | Items that start with `music` | prefix-exact-match | | `.mp3$` | Items that end with `.mp3` | suffix-exact-match | | `sbtrkt` | Items that match `sbtrkt` | fuzzy-match | | `!rmx` | Items that do not match `rmx` | inverse-fuzzy-match | | `'wild` | Items that include `wild` | exact-match (quoted) | | `!'fire` | Items that do not include `fire` | inverse-exact-match | Usage as Vim plugin ------------------- If you install zfz as a Vim plugin, `:ZFZ` command will be added. ```vim " Look for files under current directory :ZFZ " Look for files under your home directory :ZFZ ~ " With options :ZFZ --no-sort -m /tmp ``` You can override the source command which produces input to zfz. ```vim let g:zfz_source = 'find . -type f' ``` And you can predefine default options to zfz command. ```vim let g:zfz_options = '--no-color --extended' ``` For more advanced uses, you can call `zfz#run` function as follows. ```vim :call zfz#run('tabedit', '-m +c') ``` Most of the time, you will prefer native Vim plugins with better integration with Vim. The only reason one might consider using zfz in Vim is its speed. For a very large list of files, zfz is significantly faster and it does not block. Useful bash examples -------------------- ```sh # vimf - Open selected file in Vim vimf() { FILE=$(zfz) && vim "$FILE" } # fd - cd to selected directory fd() { DIR=$(find ${1:-*} -path '*/\.*' -prune -o -type d -print 2> /dev/null | zfz) && cd "$DIR" } # fda - including hidden directories fda() { DIR=$(find ${1:-*} -type d 2> /dev/null | zfz) && cd "$DIR" } # fh - repeat history fh() { eval $(history | zfz +s | sed 's/ *[0-9]* *//') } # fkill - kill process fkill() { ps -ef | sed 1d | zfz -m | awk '{print $2}' | xargs kill -${1:-9} } ``` bash key bindings ----------------- ```sh # Required to refresh the prompt after zfz bind '"\er": redraw-current-line' # CTRL-T - Paste the selected file path into the command line fsel() { find ${1:-*} | zfz -m | while read item; do printf '%q ' "$item" done echo } bind '"\C-t": " \C-u \C-a\C-k$(fsel)\e\C-e\C-y\C-a\C-y\ey\C-h\C-e\er"' # CTRL-R - Paste the selected command from history into the command line bind '"\C-r": " \C-e\C-u$(history | zfz +s | sed \"s/ *[0-9]* *//\")\e\C-e\er"' ``` zsh widgets ----------- ```sh # CTRL-T - Paste the selected file path(s) into the command line zfz-file-widget() { local FILES local IFS=" " FILES=($( find * -path '*/\.*' -prune \ -o -type f -print \ -o -type l -print 2> /dev/null | zfz -m)) unset IFS FILES=$FILES:q LBUFFER="${LBUFFER%% #} $FILES" zle redisplay } zle -N zfz-file-widget bindkey '^T' zfz-file-widget # ALT-C - cd into the selected directory zfz-cd-widget() { cd "${$(find * -path '*/\.*' -prune \ -o -type d -print 2> /dev/null | zfz):-.}" zle reset-prompt } zle -N zfz-cd-widget bindkey '\ec' zfz-cd-widget # CTRL-R - Paste the selected command from history into the command line zfz-history-widget() { LBUFFER=$(history | zfz +s | sed "s/ *[0-9]* *//") zle redisplay } zle -N zfz-history-widget bindkey '^R' zfz-history-widget ``` Auto-completion (experimental) ------------------------------ Disclaimer: *Auto-completion feature is currently experimental, it can change over time* ### bash #### Files and directories Fuzzy completion for files and directories can be triggered if the word before the cursor ends with the trigger sequence which is by default `**`. - `COMMAND [DIRECTORY/][FUZZY_PATTERN]**` ```sh # Files under current directory # - You can select multiple items with TAB key vim ** # Files under parent directory vim ../** # Files under parent directory that match `zfz` vim ../zfz** # Files under your home directory vim ~/** # Directories under current directory (single-selection) cd ** # Directories under ~/github that match `zfz` cd ~/github/zfz** ``` #### Process IDs Fuzzy completion for PIDs is provided for kill command. In this case there is no trigger sequence, just press tab key after kill command. ```sh # Can select multiple processes with or keys kill -9 ``` #### Host names For ssh and telnet commands, fuzzy completion for host names is provided. The names are extracted from /etc/hosts file. ```sh ssh telnet ``` #### Settings ```sh # Use ~~ as the trigger sequence instead of the default ** export ZFZ_COMPLETION_TRIGGER='~~' # Options to zfz command export ZFZ_COMPLETION_OPTS='+c -x' ``` ### zsh TODO :smiley: (Pull requests are appreciated.) Tips ---- ### Faster startup with `--disable-gems` options If you're running Ruby 1.9 or above, you can improve the startup time with `--disable-gems` option to Ruby. - `time ruby ~/bin/zfz -h` - 0.077 sec - `time ruby --disable-gems ~/bin/zfz -h` - 0.025 sec You can define zfz function with the option as follows: ```sh zfz() { ruby --disable-gems ~/bin/zfz "$@" } export -f zfz ``` However, this is automatically set up in your .bashrc and .zshrc if you use the bundled [install](https://github.com/junegunn/zfz/blob/master/install) script. ### Incorrect display on Ruby 1.8 It is reported that the output of zfz can become unreadable on some terminals when it's running on Ruby 1.8. If you experience the problem, upgrade your Ruby to 1.9 or above. Ruby 1.9 or above is also required for displaying Unicode characters. License ------- MIT Author ------ Junegunn Choi solarized-emacs-2.0.4/dev-emacs.d/test-files/python.py0000644000175000017500000000520214533276022022474 0ustar dogslegdogsleg# test python (sample from offlineimap) class ExitNotifyThread(Thread): """This class is designed to alert a "monitor" to the fact that a thread has exited and to provide for the ability for it to find out why.""" def run(self): global exitthreads, profiledir self.threadid = thread.get_ident() try: if not profiledir: # normal case Thread.run(self) else: try: import cProfile as profile except ImportError: import profile prof = profile.Profile() try: prof = prof.runctx("Thread.run(self)", globals(), locals()) except SystemExit: pass prof.dump_stats( profiledir + "/" + str(self.threadid) + "_" + self.getName() + ".prof" ) except: self.setExitCause("EXCEPTION") if sys: self.setExitException(sys.exc_info()[1]) tb = traceback.format_exc() self.setExitStackTrace(tb) else: self.setExitCause("NORMAL") if not hasattr(self, "exitmessage"): self.setExitMessage(None) if exitthreads: exitthreads.put(self, True) def setExitCause(self, cause): self.exitcause = cause def getExitCause(self): """Returns the cause of the exit, one of: 'EXCEPTION' -- the thread aborted because of an exception 'NORMAL' -- normal termination.""" return self.exitcause def setExitException(self, exc): self.exitexception = exc def getExitException(self): """If getExitCause() is 'EXCEPTION', holds the value from sys.exc_info()[1] for this exception.""" return self.exitexception def setExitStackTrace(self, st): self.exitstacktrace = st def getExitStackTrace(self): """If getExitCause() is 'EXCEPTION', returns a string representing the stack trace for this exception.""" return self.exitstacktrace def setExitMessage(self, msg): """Sets the exit message to be fetched by a subsequent call to getExitMessage. This message may be any object or type except None.""" self.exitmessage = msg def getExitMessage(self): """For any exit cause, returns the message previously set by a call to setExitMessage(), or None if there was no such message set.""" return self.exitmessage solarized-emacs-2.0.4/dev-emacs.d/test-files/java.java0000644000175000017500000000071514533276022022371 0ustar dogslegdogslegimport java.util.Map; import java.util.TreeSet; public class GetEnv { /** * let's test generics * @param args the command line arguments */ public static void main(String[] args) { // get a map of environment variables Map env = System.getenv(); // build a sorted set out of the keys and iterate for(String k: new TreeSet(env.keySet())) { System.out.printf("%s = %s\n", k, env.get(k)); } } } solarized-emacs-2.0.4/dev-emacs.d/test-files/pandoc.md0000644000175000017500000000072314533276022022372 0ustar dogslegdogsleg% Pandoc Test File % Ethan Schoonover % March 22, 2011 %% format: markdown+lhs > import Hakyll > main :: IO () > main = hakyll $ do > compile "css/*" $ byExtension (error "Not a (S)CSS file") Using *Pandoc* ============= In this document the technical terms `water` and `ice` will be replaced by H~2~O.^[a contrived footnote] ## Heading styles can be mixed And matched, and they still fold **properly** * * * * Some code: a verbatim or "code" block solarized-emacs-2.0.4/dev-emacs.d/test-files/javascript.js0000644000175000017500000000112114533276022023301 0ustar dogslegdogsleg/** sample javascript from xui */ var undefined, xui, window = this, string = new String('string'), document = window.document, simpleExpr = /^#?([\w-]+)$/, idExpr = /^#/, tagExpr = /<([\w:]+)/, slice = function (e) { return [].slice.call(e, 0); }; try { var a = slice(document.documentElement.childNodes)[0].nodeType; } catch(e){ slice = function (e) { var ret=[]; for (var i=0; e[i]; i++) ret.push(e[i]); return ret; }; } window.x$ = window.xui = xui = function(q, context) { return new xui.fn.find(q, context); }; solarized-emacs-2.0.4/dev-emacs.d/test-files/go-template.webmode0000644000175000017500000000243414533276022024367 0ustar dogslegdogsleg {{if .User.HasPermission "feature-a"}}

Feature A

Some other stuff here...

{{else}}

Feature A

To enable Feature A please upgrade your plan

{{end}} {{if .User.HasPermission "feature-b"}}

Feature B

Some other stuff here...

{{else}}

Feature B

To enable Feature B please upgrade your plan

{{end}}
{{with .Account -}}
Dear {{.FirstName}} {{.LastName}},
{{- end}}

Below are your account statement details for period from {{.FromDate | formatAsDate}} to {{.ToDate | formatAsDate}}.

{{if .Purchases -}}
    Your purchases:
    {{- range .Purchases }}
        {{ .Date | formatAsDate}} {{ printf "%-20s" .Description }} {{.AmountInCents | formatAsDollars -}}
    {{- end}}
{{- else}}
You didn't make any purchases during the period.
{{- end}}

{{$note := urgentNote .Account -}}
{{if $note -}}
Note: {{$note}}
{{- end}}

Best Wishes,
Customer Service
solarized-emacs-2.0.4/dev-emacs.d/test-files/rust.rs0000644000175000017500000000314114533276022022144 0ustar dogslegdogsleguse notify::{raw_watcher, PollWatcher, RecommendedWatcher, RecursiveMode}; use std::path::PathBuf; use std::sync::mpsc::Sender; /// Thin wrapper over the notify crate /// /// `PollWatcher` and `RecommendedWatcher` are distinct types, but watchexec /// really just wants to handle them without regard to the exact type /// (e.g. polymorphically). This has the nice side effect of separating out /// all coupling to the notify crate into this module. pub struct Watcher { watcher_impl: WatcherImpl, } pub use notify::Error; pub use notify::RawEvent as Event; enum WatcherImpl { Recommended(RecommendedWatcher), Poll(PollWatcher), } impl Watcher { pub fn new( tx: Sender, paths: &[PathBuf], poll: bool, interval_ms: u32, ) -> Result { use notify::Watcher; let imp = if poll { let mut watcher = PollWatcher::with_delay_ms(tx, interval_ms)?; for path in paths { watcher.watch(path, RecursiveMode::Recursive)?; debug!("Watching {:?}", path); } WatcherImpl::Poll(watcher) } else { let mut watcher = raw_watcher(tx)?; for path in paths { watcher.watch(path, RecursiveMode::Recursive)?; debug!("Watching {:?}", path); } WatcherImpl::Recommended(watcher) }; Ok(Self { watcher_impl: imp }) } pub fn is_polling(&self) -> bool { if let WatcherImpl::Poll(_) = self.watcher_impl { true } else { false } } } solarized-emacs-2.0.4/dev-emacs.d/init.el0000644000175000017500000000631114533276022020011 0ustar dogslegdogsleg;; this init file is primarily focused around developing and ;; evaluating theming outside of ones own emacs.d. ;; you can run like 'emacs -q -l {{pkg-dir}}/dev-emacs.d/init.el' (when load-file-name (setq user-emacs-directory (expand-file-name (file-name-directory load-file-name)))) (setq pop-up-frame-function nil inhibit-startup-screen t initial-scratch-message nil make-backup-files nil auto-save-default nil create-lockfiles nil display-buffer-alist '((".*" (display-buffer-reuse-window display-buffer-same-window))) enable-local-variables nil web-mode-enable-engine-detection t ediff-make-buffers-readonly-at-startup nil ediff-diff-options "" magit-diff-refine-hunk 'all magit-diff-refine-ignore-whitespace nil ediff-window-setup-function 'ediff-setup-windows-plain ;; ) (require 'subr-x) (when load-file-name (add-to-list 'load-path (expand-file-name "lisp" (file-name-as-directory (file-name-directory load-file-name))))) (require 'solarized-dev) (require 'solarized-dev-keys) (when load-file-name (dev-setup-paths (file-name-as-directory (file-name-directory load-file-name)))) (defun dev-debug-make-frame () ;; debug-on-entry on make-frame does not work (define-advice make-frame (:around (fn &rest args) suppress) "Suppress making new frame; return existing frame." (debug) (message "make-frame suppressed; proceed at your own peril.") (selected-frame))) ;; (dev-debug-make-frame) ;; (toggle-debug-on-error) (defun dev-open-merge() (interactive) (find-file (expand-file-name "dev-emacs.d/test-repo/" dev-project-root))) (require 'package) (package-initialize) (defun require-package (package &optional min-version no-refresh) (if (package-installed-p package min-version) t (if (or (assoc package package-archive-contents) no-refresh) (package-install package) (progn (package-refresh-contents) (require-package package min-version t))))) (mapc 'require-package '(;; utility/convenience flx-ido projectile ;; utility/convenience + face testing magit smartparens htmlize ;; editor major modes for face testing web-mode haskell-mode go-mode js2-mode markdown-mode rust-mode php-mode)) (setq auto-mode-alist (append '(("\\.webmode\\'" . web-mode)) auto-mode-alist)) (when load-file-name (smartparens-global-mode) (show-smartparens-global-mode) (smartparens-global-strict-mode) (ido-mode 1) (ido-everywhere 1) (flx-ido-mode 1) (projectile-global-mode) (global-set-key (kbd "C-h h") 'ibuffer) (global-set-key (kbd "C-h g") 'magit)) (setq projectile-sort-order 'recently-active projectile-completion-system 'ido projectile-switch-project-action 'projectile-dired projectile-verbose nil) (dev-set-solarized-settings) (when load-file-name (dev-disable-all-themes) (load-theme 'my-solarized-dark t) (dev-disable-all-themes) (load-theme 'my-solarized-light t) (dev-disable-all-themes) (load-theme 'solarized-dark t) (dev-disable-all-themes) (load-theme 'solarized-light t)) solarized-emacs-2.0.4/dev-emacs.d/README.md0000644000175000017500000000017114533276022020001 0ustar dogslegdogsleg# minimal init Just a minimal init to test the theme without touching any user init. ```sh ./dev-emacs.d/start.sh ``` solarized-emacs-2.0.4/dev-emacs.d/create-merge-conflict-repo.sh0000755000175000017500000000114414533276022024164 0ustar dogslegdogsleg#!/bin/bash set -e set -x mkdir test-repo cd test-repo git init . touch HELLO git add HELLO git commit -m"hello" get_files(){ local version=${1} shift for f in pdb.py tempfile.py os.py inspect.py mimetypes.py; do curl -o "${f}" "https://raw.githubusercontent.com/python/cpython/${version}/Lib/${f}" done git add -A git commit -m"version ${v}" } git checkout master git checkout -b v1 get_files v3.4.8 git checkout -b v2 git checkout -b v3 git checkout v1 get_files v3.5.0 get_files v3.6.0 git checkout v2 get_files v3.7.0 git checkout v3 get_files v3.8.0 git checkout master git checkout v2 solarized-emacs-2.0.4/solarized-selenized-black-theme.el0000644000175000017500000000250514533276022023107 0ustar dogslegdogsleg;;; solarized-selenized-black-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The black variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-selenized-black "The black variant of the Solarized colour theme with selenized color palette") (solarized-with-color-variables 'black 'solarized-selenized-black solarized-selenized-black-color-palette-alist) (provide-theme 'solarized-selenized-black) (provide 'solarized-selenized-black-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-selenized-black-theme.el ends here solarized-emacs-2.0.4/DEV-GUIDE.md0000644000175000017500000000766314533276022016244 0ustar dogslegdogsleg# Information for contribution/development ### Introduction The main intent of this section is to help contributors decide on how to use colors and looks when making contribution. In a simplified sense it's might be beneficial to imagine the light theme as being as close as possible to writing written text on paper with a few tools like markers and coloured pencils at hand to highlight **exceptional circumstances**. This is not meant to be a strict guide but it can probably be follwed in most situations. ### Upstream Solarized palette usage documentation The base Solarized colors have a canonical [usage documentation](http://ethanschoonover.com/solarized#usage-development) When referring to colors, the convention is to use the dark theme's base color names directly, e.g. `(:foreground ,base0)`. They will switch to their counterparts automatically in the light theme. Usage table for the automatic dark/light base colors: * `,base1` - optional emphasized content * `,base0` - body text / default code / primary content * `,base00` - unspecified (it's a separator) * `,base01` - comments / secondary content * `,base02` - background highlights * `,base03` - background ### Basic strategy for selecting colors The most important general rule is to **avoid color pasta**. Examples: - Try to start by not using accent colors at all. It's common to get a good enough visual separation by just using the baseXX colors. - Avoid having several accent colors grouped in a small space - Avoid having accent colors that are cycled or striped repeatedly. - It's sometimes even preferable to hide information by reusing colors rather than creating more visual noise. It's hard to decide (for other people) what to simplify/reduce away but it leads to a better reading experience. - For things small spaces like indicators, the baseXX are usually enough. The indicator symbols themselves are probably good enough carriers of information. ### Accent colors that are used in special ways (Draft note: This is a simplified list written i haste, needs much more details. In worst case scenario it's even wrong, probably not though. Some of the bullet points lacks explanation right now) Generally I try to only use the most basic colors which I guess is cyan/blue/green/yellow (again, if possible). Some specific color information: - **magenta** is used as a temporary highlight color, in most cases it matches direct user input actions such as isearch matches, ... - **red** is used to indicate errors only. - Exception: In buffers displaying only or mostly a diff, **red** is ok for indicating "removed". - **orange** is used to indicate errors only but be a little more relaxed with that rule as opposed to **red**. - **violet** is very rarely used at all - **blue** / **green** / **red** can be used for diff like things indicating modified/added/removed ### Block highlighting colors **These colors can probably be avoided for more or less everything that isn't a diff.** There are 4 additional variants for all accent colors that are meant to be used in pairs as two levels of soft and harder highlight. - **green-1bg** + **green-1fg** are used together to form a soft highlighed section (useful for diffs) - **green-2bg** + **green-2fg** are used together to form a more pronounced highlighed section (useful for diffs hunk highlight) Using **blue-1fg** on anything other than **blue-1bg** is currently considered an undefined result and might break visibility/contrast/lightness rules and might break even more with later tweaks to the color generation changes. ### Additional accent color variants **Avoid using these at all, they might be even phased out completley** There are also variants of each color suffixed `-d` (dark), `-l` (light), `-lc` (low contrast), `-hc` (high contrast). These colors were designed with almost the same intent as the block highlight colors but they are considerably less solarized looking. Can probably be avoided alltogether. solarized-emacs-2.0.4/Cask0000644000175000017500000000012714533276022015241 0ustar dogslegdogsleg;; -*- mode:lisp -*- (source gnu) (source melpa) (package-file "solarized-theme.el") solarized-emacs-2.0.4/solarized-selenized-light-theme.el0000644000175000017500000000250414533276022023141 0ustar dogslegdogsleg;;; solarized-selenized-light-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The light variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-selenized-light "The light variant of the Solarized colour theme with selenized color palette") (solarized-with-color-variables 'dark 'solarized-selenized-light solarized-selenized-light-color-palette-alist) (provide-theme 'solarized-selenized-light) (provide 'solarized-selenized-light-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-selenized-light-theme.el ends here solarized-emacs-2.0.4/README.md0000644000175000017500000002055414533276022015722 0ustar dogslegdogsleg[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt) [![MELPA](http://melpa.org/packages/solarized-theme-badge.svg)](http://melpa.org/#/solarized-theme) [![MELPA Stable](http://stable.melpa.org/packages/solarized-theme-badge.svg)](http://stable.melpa.org/#/solarized-theme) [![Join the chat at https://gitter.im/bbatsov/solarized-emacs](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bbatsov/solarized-emacs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) # Solarized for Emacs Solarized for Emacs is an Emacs 24bit theme making use of of the [Solarized palette](http://ethanschoonover.com/solarized), developed by Ethan Schoonover. You can find several screenshots of Solarized for Emacs [here](https://emacsthemes.com/themes/solarized-themes.html). Solarized for Emacs supports officially Emacs 24+, but should be working under Emacs 23 as well. The theme is implemented in terms of customisations and `deftheme` and does not require the `color-theme-package`. ## Installation Solarized for Emacs is available for installation via the [MELPA](http://melpa.org) using `package.el`. Assuming you've set it up you can install Solarized like this: `M-x package-install solarized-theme` This package will install two variants of the theme; `solarized-light-theme` and `solarized-dark-theme`. You can load one of the theme variants with `M-x load-theme`. To load it automatically on Emacs startup add this to your init file: ```el (load-theme 'solarized-light t) ``` or ```el (load-theme 'solarized-dark t) ``` ## Alternative Palettes The intent of this theme will always be that Solarized-dark/light will give you the best possible experience. Palettes other than Solarized will never have influence over theming decisions, they are complementary. You should not expect the complementary themes to be fully accurate or the most suitable versions of how to apply those palettes into an emacs theme. The important aspect is that the color usage should be about the same as they are with the default Solarized palette. Colors stand out with varying amounts depending on which palette is used. This theme aims for a very soft look, violet is one of the most pronounced accent colors in the Solarized palette and that is one reason why it's rarely used by the theme. Violet in another palette might stand out less and therefore be used more often if the theme was specifically designed with that palette in mind. The original Zenburn palette doesn't have an violet it is created by blending blue and magenta to get it to fit into the theme so it's tilted towards translating into what this theme has decided. *TLDR*; While `solarized-gruvbox-light` might be good complement for users of `solarized-light`, another theme not contained in this package (`gruvbox-light` or whatever) might be more finely tuned in relation to the Gruvbox palette. ## Customisations ### Theme-specific settings If you don't like low-contrast modeline or fringe, you can `customize` them either by doing `M-x customize-group solarized` or setting the values using elisp code: ```el ;; make the fringe stand out from the background (setq solarized-distinct-fringe-background t) ;; Don't change the font for some headings and titles (setq solarized-use-variable-pitch nil) ;; make the modeline high contrast (setq solarized-high-contrast-mode-line t) ;; Use less bolding (setq solarized-use-less-bold t) ;; Use more italics (setq solarized-use-more-italic t) ;; Use less colors for indicators such as git:gutter, flycheck and similar (setq solarized-emphasize-indicators nil) ;; Don't change size of org-mode headlines (but keep other size-changes) (setq solarized-scale-org-headlines nil) ;; Change the size of markdown-mode headlines (off by default) (setq solarized-scale-markdown-headlines t) ;; Avoid all font-size changes (setq solarized-height-minus-1 1.0) (setq solarized-height-plus-1 1.0) (setq solarized-height-plus-2 1.0) (setq solarized-height-plus-3 1.0) (setq solarized-height-plus-4 1.0) ``` Note that these need to be set **before** `load-theme` is invoked for Solarized. ### Underline position setting for X If you are using Emacs under X you might like the following setting which puts the underline below the [font bottomline instead of the baseline](https://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.graPHIGS/doc/phigstrf/figures/afma5rbd.jpg). Imho it enhances the general readability and also it fits well with the default `solarized-high-contrast-mode-line` setting which uses an slightly emphazised underline for the modeline to create one horizontal window border in the same manner as the vertical border. ```el (setq x-underline-at-descent-line t) ``` ## Create theme using color palette The Solarized Face settings consist of a palette of colors with eight accents in addition to the darkest and brightest colors. Recent changes allow you to freely create theme files using different palettes instead of the Solarized color palette. It consists of two steps: * creating a theme file * loading a theme ### Creating/Loading Theme Files Select the darkest and lightest colors and the eight accents to pass to the function. This creates a theme file in `.emacs.d/themes/`. If you need to make minor modifications, you can override Face individually by specifying a free Sexp as the fourth argument. Once you have a theme file, you can load it with `load-theme`, like solarized. ```el ;; inspired vim's jellybeans color-theme (solarized-create-theme-file-with-palette 'light 'solarized-jellybeans-light '("#202020" "#ffffff" "#ffb964" "#8fbfdc" "#a04040" "#b05080" "#805090" "#fad08a" "#99ad6a" "#8fbfdc")) (load-theme 'solarized-jellybeans-light t) ``` ```el ;; inspired emacs's mesa color-theme (solarized-create-theme-file-with-palette 'light 'solarized-mesa-light '("#000000" "#faf5ee" "#3388dd" "#ac3d1a" "#dd2222" "#8b008b" "#00b7f0" "#1388a2" "#104e8b" "#00688b")) (load-theme 'solarized-mesa-light t) ``` ```el ;; inspired emacs's solarized color-theme (solarized-create-theme-file-with-palette 'light 'solarized-solarized-light '("#002b36" "#fdf6e3" "#b58900" "#cb4b16" "#dc322f" "#d33682" "#6c71c4" "#268bd2" "#2aa198" "#859900")) (load-theme 'solarized-solarized-light t) ``` ```el ;; wombat color-theme with misc face definition (solarized-create-theme-file-with-palette 'dark 'solarized-wombat-dark '("#2a2a29" "#f6f3e8" "#e5c06d" "#ddaa6f" "#ffb4ac" "#e5786d" "#834c98" "#a4b5e6" "#7ec98f" "#8ac6f2") '((custom-theme-set-faces theme-name `(default ((,class (:foreground ,(solarized-color-blend base03 base3 0.15 2) :background ,base03)))) `(highlight ((,class (:background ,violet)))) `(font-lock-builtin-face ((,class (:foreground ,magenta)))) `(font-lock-constant-face ((,class (:foreground ,blue)))) `(font-lock-comment-face ((,class (:foreground ,base00)))) `(mode-line ((,class (:foreground ,base2 :background ,(solarized-color-blend base03 base3 0.85 2))))) `(mode-line-inactive ((,class (:foreground ,base00 :background ,(solarized-color-blend base03 "black" 0.85 2))))) `(mode-line-buffer-id ((,class (:foreground ,base3 :weight bold)))) `(minibuffer-prompt ((,class (:foreground ,base1)))) `(vertical-border ((,class (:foreground ,base03))))))) (load-theme 'solarized-wombat-dark t) ``` **Note:** If the theme file already exists, `solorized-create-theme-file` does not regenerate the file. If the file exists, it can be overwritten by setting the fifth argument to `t`. ## Versioning Policy - This package uses [semantic versioning](https://semver.org/) - Master branch is to be considered unstable (which isn't an excuse to constantly break behaviour). Use MELPA Stable if you want fewer breaking changes. - Next stable version will be 2.0 because of API changes in the master branch. Regular `load-theme` usage is unaffected by changes. ## Bugs & Improvements Please, report any problems that you find on the projects integrated issue tracker. If you've added some improvements and you want them included upstream don't hesitate to send me a patch or even better - a GitHub pull request. ## License Copyright © 2011-2021 Bozhidar Batsov, [Thomas Frössman](http://t.jossystem.se), and [contributors](https://github.com/bbatsov/solarized-emacs/contributors). Distributed under the GNU General Public License, version 3 [badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg solarized-emacs-2.0.4/solarized-palettes.el0000644000175000017500000006124614533276022020603 0ustar dogslegdogsleg;;; solarized-palettes.el --- solarized palettes -*- lexical-binding: t -*- ;; Copyright (C) 2011-2021 Bozhidar Batsov ;; Author: Bozhidar Batsov ;; Author: Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; This file only contains data which is lists of colors of some sort, ;; there is also code that generates palettes in solarized.el. That ;; code does not belong here. ;;; Code: (defvar solarized-dark-color-palette-alist '(;; solarized-dark palette (base03 . "#002b36") (base02 . "#073642") (base01 . "#586e75") (base00 . "#657b83") (base0 . "#839496") (base1 . "#93a1a1") (base2 . "#eee8d5") (base3 . "#fdf6e3") (yellow . "#b58900") (orange . "#cb4b16") (red . "#dc322f") (magenta . "#d33682") (violet . "#6c71c4") (blue . "#268bd2") (cyan . "#2aa198") (green . "#859900") (yellow-1bg . "#273532") (yellow-1fg . "#af8f41") (yellow-2bg . "#433e20") (yellow-2fg . "#b39a5e") (yellow-d . "#866300") (yellow-l . "#e1af4b") (orange-1bg . "#2b2d2e") (orange-1fg . "#ca6f48") (orange-2bg . "#4d2c1f") (orange-2fg . "#c47c5d") (orange-d . "#992700") (orange-l . "#fb7640") (red-1bg . "#2d2c31") (red-1fg . "#d66556") (red-2bg . "#532725") (red-2fg . "#ce7667") (red-d . "#a7020a") (red-l . "#ff6849") (magenta-1bg . "#272d3c") (magenta-1fg . "#cc6791") (magenta-2bg . "#4c2942") (magenta-2fg . "#c47896") (magenta-d . "#a00559") (magenta-l . "#ff699e") (violet-1bg . "#0c3144") (violet-1fg . "#8085c0") (violet-2bg . "#1a365a") (violet-2fg . "#888dbc") (violet-d . "#243e9b") (violet-l . "#8d85e7") (blue-1bg . "#003547") (blue-1fg . "#5c93c5") (blue-2bg . "#003f5e") (blue-2fg . "#709bc3") (blue-d . "#0061a8") (blue-l . "#74adf5") (cyan-1bg . "#013841") (cyan-1fg . "#54a099") (cyan-2bg . "#00464a") (cyan-2fg . "#6ba8a2") (cyan-d . "#007d76") (cyan-l . "#6ccec0") (green-1bg . "#1d3732") (green-1fg . "#8c9a43") (green-2bg . "#2f4321") (green-2fg . "#97a35f") (green-d . "#5b7300") (green-l . "#b3c34d") ;; palette end ) "The solarized color palette alist.") (defvar solarized-light-color-palette-alist '(;; solarized-light palette (base03 . "#002b36") (base02 . "#073642") (base01 . "#586e75") (base00 . "#657b83") (base0 . "#839496") (base1 . "#93a1a1") (base2 . "#eee8d5") (base3 . "#fdf6e3") (yellow . "#b58900") (orange . "#cb4b16") (red . "#dc322f") (magenta . "#d33682") (violet . "#6c71c4") (blue . "#268bd2") (cyan . "#2aa198") (green . "#859900") (yellow-1bg . "#f8e8c6") (yellow-1fg . "#876d26") (yellow-2bg . "#f1d49b") (yellow-2fg . "#766634") (yellow-d . "#866300") (yellow-l . "#e1af4b") (orange-1bg . "#fedfc5") (orange-1fg . "#974727") (orange-2bg . "#ffbd99") (orange-2fg . "#854a33") (orange-d . "#992700") (orange-l . "#fb7640") (red-1bg . "#ffdec8") (red-1fg . "#a33c35") (red-2bg . "#ffb9a1") (red-2fg . "#8e433d") (red-d . "#a7020a") (red-l . "#ff6849") (magenta-1bg . "#fdded7") (magenta-1fg . "#9a3f6c") (magenta-2bg . "#fdbac6") (magenta-2fg . "#854568") (magenta-d . "#a00559") (magenta-l . "#ff699e") (violet-1bg . "#ebe4e2") (violet-1fg . "#4f5e99") (violet-2bg . "#d1c9e3") (violet-2fg . "#475a8b") (violet-d . "#243e9b") (violet-l . "#8d85e7") (blue-1bg . "#e7e8e4") (blue-1fg . "#1e6fa2") (blue-2bg . "#c3d5e9") (blue-2fg . "#246792") (blue-d . "#0061a8") (blue-l . "#74adf5") (cyan-1bg . "#e4ecda") (cyan-1fg . "#207e7b") (cyan-2bg . "#bedfcf") (cyan-2fg . "#247374") (cyan-d . "#007d76") (cyan-l . "#6ccec0") (green-1bg . "#efeac7") (green-1fg . "#657827") (green-2bg . "#dbdb9c") (green-2fg . "#5b6e35") (green-d . "#5b7300") (green-l . "#b3c34d") ;; palette end ) "The solarized color palette alist.") (defvar solarized-dark-high-contrast-palette-alist '(;; solarized-dark-high-contrast palette (base03 . "#002732") (base02 . "#01323d") (base01 . "#62787f") (base00 . "#60767e") (base0 . "#8d9fa1") (base1 . "#9eacac") (base2 . "#faf3e0") (base3 . "#ffffee") (yellow . "#c49619") (orange . "#db5823") (red . "#ec423a") (magenta . "#e2468f") (violet . "#7a7ed2") (blue . "#3c98e0") (cyan . "#3cafa5") (green . "#93a61a") (yellow-1bg . "#273430") (yellow-1fg . "#bb9a4c") (yellow-2bg . "#484224") (yellow-2fg . "#bba165") (yellow-d . "#936d00") (yellow-l . "#f3be51") (orange-1bg . "#2d2d2f") (orange-1fg . "#d0744d") (orange-2bg . "#522f22") (orange-2fg . "#cd8464") (orange-d . "#a72e01") (orange-l . "#ff8148") (red-1bg . "#2f2c31") (red-1fg . "#dc6a5a") (red-2bg . "#582b29") (red-2fg . "#d77e6f") (red-d . "#ae1212") (red-l . "#ff7254") (magenta-1bg . "#292d3c") (magenta-1fg . "#d16c96") (magenta-2bg . "#512c46") (magenta-2fg . "#cd809f") (magenta-d . "#a81761") (magenta-l . "#ff75ab") (violet-1bg . "#103145") (violet-1fg . "#8589c4") (violet-2bg . "#213a5e") (violet-2fg . "#9095c4") (violet-d . "#3548a2") (violet-l . "#9b94f2") (blue-1bg . "#023447") (blue-1fg . "#649bce") (blue-2bg . "#004363") (blue-2fg . "#78a3cb") (blue-d . "#0069b0") (blue-l . "#7ebaff") (cyan-1bg . "#03373f") (cyan-1fg . "#60aca4") (cyan-2bg . "#004b4f") (cyan-2fg . "#73b0aa") (cyan-d . "#008981") (cyan-l . "#77dece") (green-1bg . "#1e3531") (green-1fg . "#97a54d") (green-2bg . "#354725") (green-2fg . "#9eaa66") (green-d . "#687f00") (green-l . "#c3d255") ;; palette end ) "The solarized color palette alist.") (defvar solarized-light-high-contrast-palette-alist '(;; solarized-light-high-contrast palette (base03 . "#00212b") (base02 . "#002b37") (base01 . "#5d737a") (base00 . "#596e76") (base0 . "#88999b") (base1 . "#98a6a6") (base2 . "#f4eedb") (base3 . "#fffce9") (yellow . "#a67c00") (orange . "#bb3e06") (red . "#cc1f24") (magenta . "#c42475") (violet . "#5e65b6") (blue . "#007ec4") (cyan . "#11948b") (green . "#778c00") (yellow-1bg . "#f7eacb") (yellow-1fg . "#7a6120") (yellow-2bg . "#ecd29c") (yellow-2fg . "#6b5a2c") (yellow-d . "#785700") (yellow-l . "#d6a549") (orange-1bg . "#fee2c8") (orange-1fg . "#8a3b1c") (orange-2bg . "#fabc97") (orange-2fg . "#793e28") (orange-d . "#891b00") (orange-l . "#ed6e3e") (red-1bg . "#ffe1cb") (red-1fg . "#952f2a") (red-2bg . "#ffb79f") (red-2fg . "#823731") (red-d . "#990001") (red-l . "#ff6243") (magenta-1bg . "#fce1da") (magenta-1fg . "#8e3160") (magenta-2bg . "#f9b9c4") (magenta-2fg . "#7a395c") (magenta-d . "#93004d") (magenta-l . "#f46495") (violet-1bg . "#ebe7e5") (violet-1fg . "#44528c") (violet-2bg . "#cdc8e1") (violet-2fg . "#3d4f7e") (violet-d . "#11328f") (violet-l . "#837bdf") (blue-1bg . "#e6ebe7") (blue-1fg . "#0a6395") (blue-2bg . "#bfd2e6") (blue-2fg . "#185b85") (blue-d . "#005797") (blue-l . "#6fa5e7") (cyan-1bg . "#e4efdd") (cyan-1fg . "#10716f") (cyan-2bg . "#b9ddcd") (cyan-2fg . "#196767") (cyan-d . "#006d68") (cyan-l . "#66c1b3") (green-1bg . "#eeedcb") (green-1fg . "#596c21") (green-2bg . "#d5d99d") (green-2fg . "#51622d") (green-d . "#4f6600") (green-l . "#a8b84b") ;; palette end ) "The solarized color palette alist.") ;;; gruvbox themes (defvar solarized-gruvbox-colors '(;; gruvbox colors (dark0_hard . "#1d2021") (dark0 . "#282828") (dark0_soft . "#32302f") (dark1 . "#3c3836") (dark2 . "#504945") (dark3 . "#665c54") (dark4 . "#7c6f64") (gray . "#928374") (light0_hard . "#f9f5d7") (light0 . "#fbf1c7") (light0_soft . "#f2e5bc") (light1 . "#ebdbb2") (light2 . "#d5c4a1") (light3 . "#bdae93") (light4 . "#a89984") (red . "#cc241d") (green . "#98971a") (yellow . "#d79921") (blue . "#458588") (purple . "#b16286") (aqua . "#689d6a") (orange . "#d65d0e") (bright_red . "#fb4933") (bright_green . "#b8bb26") (bright_yellow . "#fabd2f") (bright_blue . "#83a598") (bright_purple . "#d3869b") (bright_aqua . "#8ec07c") (bright_orange . "#fe8019") (dark_red . "#9d0006") (dark_green . "#79740e") (dark_yellow . "#b57614") (dark_blue . "#076678") (dark_purple . "#8f3f71") (dark_aqua . "#427b58") (dark_orange . "#af3a03") ;; colors end ) "The gruvbox color palette.") (defvar solarized-gruvbox-dark-color-palette-alist '(;; gruvbox-dark palette (base03 . "#282828") (base02 . "#32302f") (base01 . "#7c6f64") (base00 . "#282828") (base0 . "#a89984") (base1 . "#bdae93") (base2 . "#a89984") (base3 . "#fbf1c7") (yellow . "#d79921") (orange . "#d65d0e") (red . "#fb4933") (magenta . "#d3869b") (violet . "#b16286") (blue . "#458588") (cyan . "#689d6a") (green . "#98971a") (yellow-1bg . "#3f3528") (yellow-1fg . "#e2b055") (yellow-2bg . "#614923") (yellow-2fg . "#dfb566") (yellow-d . "#a76e00") (yellow-l . "#f3ac41") (orange-1bg . "#402e25") (orange-1fg . "#e48847") (orange-2bg . "#62351c") (orange-2fg . "#e2965a") (orange-d . "#a53600") (orange-l . "#f37535") (red-1bg . "#452e28") (red-1fg . "#ff815b") (red-2bg . "#6f3125") (red-2fg . "#f89169") (red-d . "#b21b0b") (red-l . "#ff6540") (magenta-1bg . "#3d3335") (magenta-1fg . "#dda3a6") (magenta-2bg . "#5e434a") (magenta-2fg . "#dbaba4") (magenta-d . "#9f4d64") (magenta-l . "#e78c9e") (violet-1bg . "#392f33") (violet-1fg . "#c68a97") (violet-2bg . "#523642") (violet-2fg . "#c89798") (violet-d . "#8b2a58") (violet-l . "#d36b91") (blue-1bg . "#2c3333") (blue-1fg . "#7da298") (blue-2bg . "#2d4243") (blue-2fg . "#90aa99") (blue-d . "#14676b") (blue-l . "#63a6a5") (cyan-1bg . "#2f362f") (cyan-1fg . "#91b382") (cyan-2bg . "#384a38") (cyan-2fg . "#9fb888") (cyan-d . "#2e7d33") (cyan-l . "#75bf6b") (green-1bg . "#363527") (green-1fg . "#b4ae51") (green-2bg . "#4a4821") (green-2fg . "#bab462") (green-d . "#747400") (green-l . "#b9b340") ;; palette end ) "The solarized gruvbox dark palette color alist.") (defvar solarized-gruvbox-light-color-palette-alist '(;; gruvbox-light palette (base03 . "#282828") (base02 . "#32302f") (base01 . "#665c54") (base00 . "#7c6f64") (base0 . "#3c3836") (base1 . "#a89984") (base2 . "#ebdbb2") (base3 . "#fbf1c7") (yellow . "#b57614") (orange . "#af3a03") (red . "#9d0006") (magenta . "#d3869b") (violet . "#8f3f71") (blue . "#076678") (cyan . "#689d6a") (green . "#98971a") (yellow-1bg . "#f6e1af") (yellow-1fg . "#8c6023") (yellow-2bg . "#efc98b") (yellow-2fg . "#7f5b2d") (yellow-d . "#8a5100") (yellow-l . "#e29a3f") (orange-1bg . "#f7d8ab") (orange-1fg . "#893a18") (orange-2bg . "#f0b382") (orange-2fg . "#7e3e23") (orange-d . "#841900") (orange-l . "#df6835") (red-1bg . "#f5d4aa") (red-1fg . "#7e2115") (red-2bg . "#eaa67f") (red-2fg . "#752d21") (red-d . "#750000") (red-l . "#cf5130") (magenta-1bg . "#f9e4c3") (magenta-1fg . "#9e6b78") (magenta-2bg . "#f8d1c0") (magenta-2fg . "#8c646e") (magenta-d . "#9f4d64") (magenta-l . "#f598a7") (violet-1bg . "#eed8bd") (violet-1fg . "#713c5c") (violet-2bg . "#dcb3af") (violet-2fg . "#694058") (violet-d . "#6f104d") (violet-l . "#c2608f") (blue-1bg . "#dedebe") (blue-1fg . "#245561") (blue-2bg . "#b1c2b2") (blue-2fg . "#30535c") (blue-d . "#004858") (blue-l . "#5b919b") (cyan-1bg . "#e7e7bb") (cyan-1fg . "#577a58") (cyan-2bg . "#cbdaab") (cyan-2fg . "#556f55") (cyan-d . "#2e7d33") (cyan-l . "#82cc73") (green-1bg . "#f0e6b1") (green-1fg . "#787628") (green-2bg . "#e0d78f") (green-2fg . "#6f6c32") (green-d . "#747400") (green-l . "#c6c148") ;; palette end ) "The solarized gruvbox light color palette alist.") (defvar solarized-zenburn-color-palette-alist '(;; zenburn palette (base03 . "#3F3F3F") (base02 . "#4F4F4F") (base01 . "#878777") (base00 . "#6F6F6F") (base0 . "#DCDCCC") (base1 . "#FFFFEF") (base2 . "#fffff6") (base3 . "#FFFFFD") (yellow . "#F0DFAF") (orange . "#DFAF8F") (red . "#CC9393") (magenta . "#DC8CC3") (violet . "#bbb0cb") (blue . "#8CD0D3") (cyan . "#93E0E3") (green . "#7F9F7F") (yellow-1bg . "#55524c") (yellow-1fg . "#f2e6c3") (yellow-2bg . "#777160") (yellow-2fg . "#ece2c7") (yellow-d . "#b6a576") (yellow-l . "#fff7c4") (orange-1bg . "#534c48") (orange-1fg . "#e7c4ac") (orange-2bg . "#726054") (orange-2fg . "#e4c7b4") (orange-d . "#ac7b5a") (orange-l . "#ffcaa5") (red-1bg . "#504948") (red-1fg . "#dab0af") (red-2bg . "#6b5656") (red-2fg . "#d9b8b6") (red-d . "#9f5c5c") (red-l . "#f4a9a6") (magenta-1bg . "#52484f") (magenta-1fg . "#e5acd1") (magenta-2bg . "#705467") (magenta-2fg . "#e2b5d2") (magenta-d . "#aa5790") (magenta-l . "#ffa6e0") (violet-1bg . "#4e4c50") (violet-1fg . "#ccc4d7") (violet-2bg . "#64606a") (violet-2fg . "#cec8d6") (violet-d . "#85749c") (violet-l . "#d5c3ec") (blue-1bg . "#495051") (blue-1fg . "#addbdd") (blue-2bg . "#556c6c") (blue-2fg . "#b7dada") (blue-d . "#57a2a4") (blue-l . "#a9f4f5") (cyan-1bg . "#4a5253") (cyan-1fg . "#b3e7e8") (cyan-2bg . "#577172") (cyan-2fg . "#bbe3e3") (cyan-d . "#5dacaf") (cyan-l . "#b0ffff") (green-1bg . "#464a46") (green-1fg . "#a2b8a1") (green-2bg . "#4f5a4e") (green-2fg . "#acbeab") (green-d . "#488249") (green-l . "#95d291") ;; palette end ) "The solarized color palette alist.") (defvar solarized-selenized-dark-color-palette-alist '(;; selenized-dark palette (base03 . "#103c48") (base02 . "#184956") (base01 . "#72898f") (base00 . "#103c48") (base0 . "#adbcbc") (base1 . "#cad8d9") (base2 . "#ece3cc") (base3 . "#fbf3db") (yellow . "#dbb32d") (orange . "#ed8649") (red . "#fa5750") (magenta . "#f275be") (violet . "#af88eb") (blue . "#4695f7") (cyan . "#41c7b9") (green . "#75b938") (yellow-1bg . "#374a45") (yellow-1fg . "#e5c364") (yellow-2bg . "#615f3c") (yellow-2fg . "#e2c475") (yellow-d . "#ac8a0c") (yellow-l . "#ffd557") (orange-1bg . "#3b4547") (orange-1fg . "#f3a471") (orange-2bg . "#685042") (orange-2fg . "#edac7f") (orange-d . "#b45b24") (orange-l . "#ffa361") (red-1bg . "#3f4147") (red-1fg . "#fe8875") (red-2bg . "#6f4443") (red-2fg . "#f79781") (red-d . "#b42e2a") (red-l . "#ff7c65") (magenta-1bg . "#374456") (magenta-1fg . "#f49bc4") (magenta-2bg . "#664d6b") (magenta-2fg . "#eda5c0") (magenta-d . "#b3478d") (magenta-l . "#ff92d2") (violet-1bg . "#29455c") (violet-1fg . "#c6a5e4") (violet-2bg . "#48517b") (violet-2fg . "#c9adda") (violet-d . "#7255b7") (violet-l . "#ca9cff") (blue-1bg . "#16465d") (blue-1fg . "#8daded") (blue-2bg . "#18557f") (blue-2fg . "#9fb3e0") (blue-d . "#0068bb") (blue-l . "#82afff") (cyan-1bg . "#144d55") (cyan-1fg . "#85d2c0") (cyan-2bg . "#156669") (cyan-2fg . "#98d0bd") (cyan-d . "#00a195") (cyan-l . "#7cefda") (green-1bg . "#244b46") (green-1fg . "#9dc869") (green-2bg . "#37613e") (green-2fg . "#a9c879") (green-d . "#489615") (green-l . "#9fe35b") ;; palette end ) "The solarized color palette alist") (defvar solarized-selenized-black-color-palette-alist '(;; selenized-black color palette (base03 . "#181818") (base02 . "#252525") (base01 . "#777777") (base00 . "#181818") (base0 . "#b9b9b9") (base1 . "#dedede") (base2 . "#53676d") (base3 . "#3a4d53") (yellow . "#dbb32d") (orange . "#e67f43") (red . "#ed4a46") (magenta . "#eb6eb7") (violet . "#a580e2") (blue . "#368aeb") (cyan . "#3fc5b7") (green . "#70b433") (yellow-1bg . "#302a1c") (yellow-1fg . "#debd66") (yellow-2bg . "#56471d") (yellow-2fg . "#d7bb78") (yellow-d . "#a68000") (yellow-l . "#e5bb45") (orange-1bg . "#32241d") (orange-1fg . "#e7996e") (orange-2bg . "#5a3621") (orange-2fg . "#de9f7d") (orange-d . "#aa4b11") (orange-l . "#eb844a") (red-1bg . "#331f1d") (red-1fg . "#ee7a6e") (red-2bg . "#5d2621") (red-2fg . "#e5887d") (red-d . "#ad1117") (red-l . "#f15a4b") (magenta-1bg . "#31232a") (magenta-1fg . "#e790c0") (magenta-2bg . "#5b3148") (magenta-2fg . "#dd99bd") (magenta-d . "#ac357c") (magenta-l . "#e973b8") (violet-1bg . "#29242f") (violet-1fg . "#b599df") (violet-2bg . "#433657") (violet-2fg . "#b69fd6") (violet-d . "#6945a5") (violet-l . "#a07de4") (blue-1bg . "#202530") (blue-1fg . "#7a9fe5") (blue-2bg . "#25395a") (blue-2fg . "#8aa4db") (blue-d . "#0057af") (blue-l . "#518eee") (cyan-1bg . "#202c2a") (cyan-1fg . "#7acac0") (cyan-2bg . "#254d48") (cyan-2fg . "#89c6bd") (cyan-d . "#009789") (cyan-l . "#50d3c5") (green-1bg . "#232a1c") (green-1fg . "#92be67") (green-2bg . "#32471d") (green-2fg . "#9bbc78") (green-d . "#428800") (green-l . "#7bc447") ;; palette end ) "The solarized color palette alist") (defvar solarized-selenized-light-color-palette-alist '( ;; selenized-light palette (base03 . "#fbf3db") (base02 . "#ece3cc") (base01 . "#909995") (base00 . "#fbf3db") (base0 . "#53676d") (base1 . "#3a4d53") (base2 . "#adbcbc") (base3 . "#cad8d9") (yellow . "#ad8900") (orange . "#c25d1e") (red . "#d2212d") (magenta . "#ca4898") (violet . "#8762c6") (blue . "#0072d4") (cyan . "#009c8f") (green . "#489100") (yellow-1bg . "#f4e5c0") (yellow-1fg . "#90792f") (yellow-2bg . "#edd397") (yellow-2fg . "#887640") (yellow-d . "#b08b24") (yellow-l . "#cea847") (orange-1bg . "#f9dfc0") (orange-1fg . "#a05c34") (orange-2bg . "#f7c198") (orange-2fg . "#956143") (orange-d . "#c65e21") (orange-l . "#e67b41") (red-1bg . "#fedac1") (red-1fg . "#ac403b") (red-2bg . "#ffb39b") (red-2fg . "#a04e48") (red-d . "#d53926") (red-l . "#f65a45") (magenta-1bg . "#f9ddd4") (magenta-1fg . "#a35285") (magenta-2bg . "#f7bdcb") (magenta-2fg . "#955b82") (magenta-d . "#cd488f") (magenta-l . "#ea68b0") (violet-1bg . "#eedfdb") (violet-1fg . "#735fa5") (violet-2bg . "#dbc2df") (violet-2fg . "#6f649b") (violet-d . "#8355c0") (violet-l . "#9c72e4") (blue-1bg . "#e4e1de") (blue-1fg . "#3369ae") (blue-2bg . "#c0c7e5") (blue-2fg . "#426ba2") (blue-d . "#4872cb") (blue-l . "#608eef") (cyan-1bg . "#e1e9d2") (cyan-1fg . "#2d867f") (cyan-2bg . "#b9dcc8") (cyan-2fg . "#3b817d") (cyan-d . "#3ea08e") (cyan-l . "#55beaf") (green-1bg . "#e4e7bf") (green-1fg . "#4b7f2e") (green-2bg . "#c1d795") (green-2fg . "#527c3f") (green-d . "#569623") (green-l . "#70b447") ;; palette end ) "The solarized color palette alist") (defvar solarized-selenized-white-color-palette-alist '(;; selenized-white palette (base03 . "#ffffff") (base02 . "#ebebeb") (base01 . "#878787") (base00 . "#ffffff") (base0 . "#474747") (base1 . "#282828") (base2 . "#b9b9b9") (base3 . "#dedede") (yellow . "#c49700") (orange . "#d04a00") (red . "#d6000c") (magenta . "#dd0f9d") (violet . "#7f51d6") (blue . "#0064e4") (cyan . "#00ad9c") (green . "#1d9700") (yellow-1bg . "#fdf1df") (yellow-1fg . "#967621") (yellow-2bg . "#fadfae") (yellow-2fg . "#866c2d") (yellow-d . "#c7992f") (yellow-l . "#e5b34a") (orange-1bg . "#ffe7db") (orange-1fg . "#a04519") (orange-2bg . "#ffc2a5") (orange-2fg . "#8f4726") (orange-d . "#d35323") (orange-l . "#f36e3c") (red-1bg . "#ffe3db") (red-1fg . "#a4291b") (red-2bg . "#ffb7a4") (red-2fg . "#933526") (red-d . "#d93920") (red-l . "#f95738") (magenta-1bg . "#ffe5f3") (magenta-1fg . "#a72f7a") (magenta-2bg . "#ffbce2") (magenta-2fg . "#933a6f") (magenta-d . "#de3e9c") (magenta-l . "#fc5db8") (violet-1bg . "#f1e7fc") (violet-1fg . "#6848a0") (violet-2bg . "#dbc3fb") (violet-2fg . "#63498d") (violet-d . "#7d4bd4") (violet-l . "#9a64f2") (blue-1bg . "#e8e9ff") (blue-1fg . "#3453aa") (blue-2bg . "#c4c8ff") (blue-2fg . "#405194") (blue-d . "#4965e0") (blue-l . "#6a7efd") (cyan-1bg . "#e5f6f2") (cyan-1fg . "#2e8579") (cyan-2bg . "#bceae2") (cyan-2fg . "#3a786f") (cyan-d . "#3fb09f") (cyan-l . "#5eccbb") (green-1bg . "#e4f3de") (green-1fg . "#31761f") (green-2bg . "#bbe1ab") (green-2fg . "#3a6d2b") (green-d . "#3e9e2d") (green-l . "#5cb947") ;; palette end ) "The solarized color palette alist") (provide 'solarized-palettes) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-palettes.el ends here solarized-emacs-2.0.4/solarized-selenized-dark-theme.el0000644000175000017500000000247314533276022022760 0ustar dogslegdogsleg;;; solarized-selenized-dark-theme.el --- Solarized Theme -*- lexical-binding: t -*- ;; Copyright (C) 2019 Thomas Frössman ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; The dark variant of the solarized theme. ;; ;;; Code: (require 'solarized) (eval-when-compile (require 'solarized-palettes)) (deftheme solarized-selenized-dark "The dark variant of the Solarized colour theme with selenized color palette") (solarized-with-color-variables 'dark 'solarized-selenized-dark solarized-selenized-dark-color-palette-alist) (provide-theme 'solarized-selenized-dark) (provide 'solarized-selenized-dark-theme) ;; Local Variables: ;; indent-tabs-mode: nil ;; End: ;;; solarized-selenized-dark-theme.el ends here