commit c154ac3f7c0379762b9069764f850c4bd6b35950 Author: Jeremy Kaplan Date: Fri Sep 4 22:53:17 2015 -0400 Initial commit dotbot, X, emacs, zsh, i3 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..febc1bc --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "dotbot"] + path = dotbot + url = https://github.com/anishathalye/dotbot +[submodule "zsh/z-zsh"] + path = zsh/z-zsh + url = https://github.com/sjl/z-zsh.git diff --git a/X/.Xdefaults b/X/.Xdefaults new file mode 120000 index 0000000..70e956f --- /dev/null +++ b/X/.Xdefaults @@ -0,0 +1 @@ +.Xresources \ No newline at end of file diff --git a/X/.Xresources b/X/.Xresources new file mode 100644 index 0000000..d7f6b92 --- /dev/null +++ b/X/.Xresources @@ -0,0 +1,34 @@ +URxvt*depth: 32 +URxvt*background: [90]#000000 +URxvt*foreground: [100]#FFFFFF +URxvt*scrollBar: false +URxvt*saveLines: 65535 +URxvt*pastableTabs: true +URxvt*cursorBlink: false +URxvt*transparent: true +URxvt.shading: 20 + +URxvt*font: xft:DejaVu Sans Mono:size=10 +URxvt*letterSpace: -1 + +URxvt*buffered: true +URxvt*intensityStyles: false +URxvt*urgentOnBell: true +URxvt*iso14755: false + +URxvt*perl-ext-common: default,tabbedex,clipboard + +URxvt*tabbed.tabbar-fg: 235 +URxvt*tabbed.tabbar-bg: 0 +URxvt*tabbed.tab-fg: 245 +URxvt*tabbed.tab-bg: 0 +URxvt*tabbed.autohide: true + +URxvt*tabbed.no-tabbedex-keys: true +URxvt*keysym.C-T: perl:tabbedex:new_tab +URxvt*keysym.C-Next: perl:tabbedex:next_tab +URxvt*keysym.C-Prior: perl:tabbedex:prev_tab + +Xautolock.corners: 000- +Xautolock.time: 10 +Xautolock.locker: i3lock diff --git a/dotbot b/dotbot new file mode 160000 index 0000000..bb209bd --- /dev/null +++ b/dotbot @@ -0,0 +1 @@ +Subproject commit bb209bd17fef4b43361573bffcb3a485b5663d73 diff --git a/emacs/.gitignore b/emacs/.gitignore new file mode 100644 index 0000000..0e6b24f --- /dev/null +++ b/emacs/.gitignore @@ -0,0 +1,14 @@ +# autosave +auto-save-list + +# autocomplete history +ac-comphist.dat + +# temporary files +*~ + +# package management +elpa + +# bookmarks +bookmarks diff --git a/emacs/init.el b/emacs/init.el new file mode 100644 index 0000000..b560274 --- /dev/null +++ b/emacs/init.el @@ -0,0 +1,272 @@ +(require 'package) +(push '("melpa" . "http://melpa.milkbox.net/packages/") + package-archives) +(package-initialize) + +(require 'cl) + +(defvar my-packages + '( + autopair + evil + evil-surround + go-mode + goto-chg + haskell-mode + jinja2-mode + markdown-mode + php-mode + scala-mode + undo-tree + web-mode + ) + "A list of packages to ensure are installed at launch.") + +(defun my-packages-installed-p () + (loop for p in my-packages + when (not (package-installed-p p)) do (return nil) + finally (return t))) + +(unless (my-packages-installed-p) + ;; check for new packages (package versions) + (package-refresh-contents) + ;; install the missing packages + (dolist (p my-packages) + (when (not (package-installed-p p)) + (package-install p)))) + +(require 'evil) +(evil-mode 1) + +(require 'evil-surround) +(global-evil-surround-mode 1) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(global-subword-mode t) + '(indent-tabs-mode nil) + '(inhibit-startup-buffer-menu t) + '(inhibit-startup-screen t) + '(initial-scratch-message "") + '(menu-bar-mode nil) + '(mouse-wheel-mode nil) + '(require-final-newline t) + '(scheme-program-name "mit-scheme") + '(split-height-threshold 0) + '(split-width-threshold 0) + '(tab-width 4) + '(tool-bar-mode t) + '(visible-cursor nil)) + +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(hl-line ((t (:background "black"))))) + +(require 'autopair) +(autopair-global-mode) + +(require 'ido) +(ido-mode t) + +;; remove line wrap character +(set-display-table-slot standard-display-table 'wrap ?\ ) + +;; longlines mode everywhere +(global-visual-line-mode t) + +;; show line/column numbers +(setq line-number-mode t) +(setq column-number-mode t) + +;; pretty-greek +(defun pretty-greek () + (let ((greek '("alpha" "beta" "gamma" "delta" "epsilon" "zeta" "eta" "theta" "iota" "kappa" "lambda" "mu" "nu" "xi" "omicron" "pi" "rho" "sigma_final" "sigma" "tau" "upsilon" "phi" "chi" "psi" "omega"))) + (loop for word in greek + for code = 97 then (+ 1 code) + do (let ((greek-char (make-char 'greek-iso8859-7 code))) + (font-lock-add-keywords nil + `((,(concatenate 'string "\\(^\\|[^a-zA-Z0-9]\\)\\(" word "\\)[a-zA-Z]") + (0 (progn (decompose-region (match-beginning 2) (match-end 2)) + nil))))) + (font-lock-add-keywords nil + `((,(concatenate 'string "\\(^\\|[^a-zA-Z0-9]\\)\\(" word "\\)[^a-zA-Z]") + (0 (progn (compose-region (match-beginning 2) (match-end 2) + ,greek-char) + nil))))))))) + +(add-hook 'tex-mode-hook 'pretty-greek) +(add-hook 'prog-mode-hook 'pretty-greek) + +(put 'narrow-to-region 'disabled nil) +(global-hl-line-mode 1) + +;; comment current line +;; Original idea from +;; http://www.opensubscriber.com/message/emacs-devel@gnu.org/10971693.html +(defun comment-dwim-line (&optional arg) + "Replacement for the comment-dwim command. + If no region is selected and current line is not blank and we are not at the end of the line, + then comment current line. + Replaces default behaviour of comment-dwim, when it inserts comment at the end of the line." + (interactive "*P") + (comment-normalize-vars) + (if (and (not (region-active-p)) (not (looking-at "[ \t]*$"))) + (comment-or-uncomment-region (line-beginning-position) (line-end-position)) + (comment-dwim arg))) +(global-set-key "\M-;" 'comment-dwim-line) + +;; python3 +(add-to-list 'auto-mode-alist '("\\.py3\\'" . python-mode)) + +;; highlight matching parens +(require 'paren) +(defun lispy-parens () + "Setup parens display for lisp modes" + (setq show-paren-delay 0) + (setq show-paren-style 'parenthesis) + (make-variable-buffer-local 'show-paren-mode) + (show-paren-mode 1) + (set-face-attribute 'show-paren-match-face nil :foreground "orange") + (set-face-attribute 'show-paren-match-face nil :background "black") + (set-face-attribute 'show-paren-match-face nil :weight 'extra-bold)) + +(add-hook 'emacs-lisp-mode-hook 'lispy-parens) +(add-hook 'scheme-mode-hook 'lispy-parens) + +;; Missing things from scheme IDE +(defun scheme-send-buffer () + (interactive) + (let ((oldbuf (current-buffer))) + (run-scheme scheme-program-name) + (switch-to-buffer oldbuf) + (scheme-send-region (point-min) (point-max)))) + +(defun scheme-send-buffer-and-go () + (interactive) + (let ((oldbuf (current-buffer))) + (if (= (length (window-list)) 1) + (split-window-right)) + (other-window 1) + (run-scheme scheme-program-name) + (other-window -1)) + (scheme-send-region (point-min) (point-max))) + +(eval-after-load 'scheme + '(define-key scheme-mode-map (kbd "C-c C-s") 'scheme-send-buffer)) + +(require 'php-mode) + + +(require 'markdown-mode) +(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) + +;; linum-mode +(add-hook 'prog-mode-hook (lambda () (linum-mode 1))) +(unless window-system + (add-hook 'linum-before-numbering-hook + (lambda () + (setq-local linum-format-fmt + (let ((w (length (number-to-string + (count-lines (point-min) (point-max)))))) + (concat "%" (number-to-string w) "d")))))) + +(defun linum-format-func (line) + (concat + (propertize (format linum-format-fmt line) 'face 'linum) + (propertize " " 'face 'linum))) + +(unless window-system + (setq linum-format 'linum-format-func)) + +;; delete trailing whitespace on save +(add-hook 'prog-mode-hook (lambda () (add-to-list 'write-file-functions 'delete-trailing-whitespace))) + +(require 'jinja2-mode) +(add-to-list 'auto-mode-alist '("\\.jinja2\\'" . jinja2-mode)) + +;; found at https://gist.github.com/NFicano/1356280 +;; modified for 24.3 + +(defadvice python-indent-calculate-indentation (around fix-list-indentation) + "Fix indentation in continuation lines within lists" + (unless (save-excursion + (beginning-of-line) + (when (python-info-continuation-line-p) + (let* ((syntax (syntax-ppss)) + (open-start (cadr syntax)) + (point (point))) + (when open-start + ;; Inside bracketed expression. + (goto-char (1+ open-start)) + ;; Indent relative to statement start, one + ;; level per bracketing level. + (goto-char (1+ open-start)) + (python-nav-beginning-of-statement) + (setq ad-return-value (+ (current-indentation) (* (car syntax) python-indent))))))) + ad-do-it)) + +(defadvice python-indent-calculate-indentation (around outdent-closing-brackets) + "Handle lines beginning with a closing bracket and indent them so that +they line up with the line containing the corresponding opening bracket." + (save-excursion + (beginning-of-line) + (let ((syntax (syntax-ppss))) + (if (and (not (eq 'string (syntax-ppss-context syntax))) + (python-info-continuation-line-p) + (cadr syntax) + (skip-syntax-forward "-") + (looking-at "\\s)")) + (progn + (forward-char 1) + (ignore-errors (backward-sexp)) + (setq ad-return-value (current-indentation))) + ad-do-it)))) + + +;; Activate Python ident advice +(ad-activate 'python-indent-calculate-indentation) + +(require 'scala-mode) + +(require 'haskell-mode) +(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation) + +(require 'web-mode) +(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode)) + +(add-hook 'web-mode-hook + (lambda () + (setq web-mode-markup-indent-offset 2) + (setq web-mode-css-indent-offset 2) + (setq web-mode-code-indent-offset 2) + (setq web-mode-enable-auto-pairing t) + (setq web-mode-enable-auto-expanding t) + + (setq web-mode-enable-html-colorization t) + (setq web-mode-enable-css-colorization t) + + (set-face-attribute 'web-mode-html-attr-name-face nil :foreground "#3387cc") + (set-face-attribute 'web-mode-html-attr-equal-face nil :foreground "gray60") + (set-face-attribute 'web-mode-html-tag-bracket-face nil :foreground "gray60") + (set-face-attribute 'web-mode-html-tag-face nil :foreground "#e9c062") + + (define-key web-mode-map (kbd "C-c /") 'web-mode-element-close))) + +(require 'go-mode-autoloads) + +(add-to-list 'custom-theme-load-path "~/.emacs.d/themes") +(load-theme 'jdkaplan t) + +(add-to-list 'auto-mode-alist '(("/tmp/mutt.*" . mail-mode))) diff --git a/emacs/themes/base16-default-dark-theme.el b/emacs/themes/base16-default-dark-theme.el new file mode 100644 index 0000000..53418c4 --- /dev/null +++ b/emacs/themes/base16-default-dark-theme.el @@ -0,0 +1,456 @@ +;; Base16 Default (https://github.com/chriskempson/base16) +;; Scheme: Chris Kempson (http://chriskempson.com) + +;;; base16-default-dark-theme.el + +;;; Code: + +(deftheme base16-default-dark) + +(let ((base00 "#181818") + (base01 "#282828") + (base02 "#383838") + (base03 "#585858") + (base04 "#b8b8b8") + (base05 "#d8d8d8") + (base06 "#e8e8e8") + (base07 "#f8f8f8") + (base08 "#ab4642") + (base09 "#dc9656") + (base0A "#f7ca88") + (base0B "#a1b56c") + (base0C "#86c1b9") + (base0D "#7cafc2") + (base0E "#ba8baf") + (base0F "#a16946")) + + (custom-theme-set-faces + 'base16-default-dark + + ;; Built-in stuff (Emacs 23) + `(border ((t (:background ,base03)))) + `(border-glyph ((t (nil)))) + `(cursor ((t (:background ,base08)))) + `(default ((t (:background ,base00 :foreground ,base05)))) + `(fringe ((t (:background ,base02)))) + `(gui-element ((t (:background ,base03 :foreground ,base06)))) + `(highlight ((t (:background ,base01)))) + `(link ((t (:foreground ,base0D)))) + `(link-visited ((t (:foreground ,base0E)))) + `(minibuffer-prompt ((t (:foreground ,base0D)))) + `(mode-line ((t (:background ,base02 :foreground ,base04 :box nil)))) + `(mode-line-buffer-id ((t (:foreground ,base0E :background nil)))) + `(mode-line-emphasis ((t (:foreground ,base06 :slant italic)))) + `(mode-line-highlight ((t (:foreground ,base0E :box nil :weight bold)))) + `(mode-line-inactive ((t (:background ,base01 :foreground ,base03 :box nil)))) + `(region ((t (:background ,base02)))) + `(secondary-selection ((t (:background ,base03)))) + `(error ((t (:foreground ,base08 :weight bold)))) + `(warning ((t (:foreground ,base09 :weight bold)))) + `(success ((t (:foreground ,base0B :weight bold)))) + + `(header-line ((t (:inherit mode-line :foreground ,base0E :background nil)))) + + ;; Font-lock stuff + `(font-lock-builtin-face ((t (:foreground ,base0C)))) + `(font-lock-comment-delimiter-face ((t (:foreground ,base02)))) + `(font-lock-comment-face ((t (:foreground ,base03)))) + `(font-lock-constant-face ((t (:foreground ,base09)))) + `(font-lock-doc-face ((t (:foreground ,base04)))) + `(font-lock-doc-string-face ((t (:foreground ,base03)))) + `(font-lock-function-name-face ((t (:foreground ,base0D)))) + `(font-lock-keyword-face ((t (:foreground ,base0E)))) + `(font-lock-negation-char-face ((t (:foreground ,base0B)))) + `(font-lock-preprocessor-face ((t (:foreground ,base0D)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground ,base0A)))) + `(font-lock-regexp-grouping-construct ((t (:foreground ,base0E)))) + `(font-lock-string-face ((t (:foreground ,base0B)))) + `(font-lock-type-face ((t (:foreground ,base0A)))) + `(font-lock-variable-name-face ((t (:foreground ,base0C)))) + `(font-lock-warning-face ((t (:foreground ,base08)))) + + ;; linum-mode + `(linum ((t (:background ,base01 :foreground ,base03)))) + + ;; Search + `(match ((t (:foreground ,base0D :background ,base01 :inverse-video t)))) + `(isearch ((t (:foreground ,base0A :background ,base01 :inverse-video t)))) + `(isearch-lazy-highlight-face ((t (:foreground ,base0C :background ,base01 :inverse-video t)))) + `(isearch-fail ((t (:background ,base01 :inherit font-lock-warning-face :inverse-video t)))) + + ;; Flymake + `(flymake-warnline ((t (:underline ,base09 :background ,base01)))) + `(flymake-errline ((t (:underline ,base08 :background ,base01)))) + + ;; Clojure errors + `(clojure-test-failure-face ((t (:background nil :inherit flymake-warnline)))) + `(clojure-test-error-face ((t (:background nil :inherit flymake-errline)))) + `(clojure-test-success-face ((t (:background nil :foreground nil :underline ,base0B)))) + + ;; For Brian Carper's extended clojure syntax table + `(clojure-keyword ((t (:foreground ,base0A)))) + `(clojure-parens ((t (:foreground ,base06)))) + `(clojure-braces ((t (:foreground ,base0B)))) + `(clojure-brackets ((t (:foreground ,base0A)))) + `(clojure-double-quote ((t (:foreground ,base0C :background nil)))) + `(clojure-special ((t (:foreground ,base0D)))) + `(clojure-java-call ((t (:foreground ,base0E)))) + + ;; MMM-mode + `(mmm-code-submode-face ((t (:background ,base03)))) + `(mmm-comment-submode-face ((t (:inherit font-lock-comment-face)))) + `(mmm-output-submode-face ((t (:background ,base03)))) + + ;; rainbow-delimiters + `(rainbow-delimiters-depth-1-face ((t (:foreground ,base0E)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,base0D)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,base0C)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,base0B)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,base0A)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,base09)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,base08)))) + `(rainbow-delimiters-depth-8-face ((t (:foreground ,base03)))) + `(rainbow-delimiters-depth-9-face ((t (:foreground ,base05)))) + + ;; IDO + `(ido-subdir ((t (:foreground ,base04)))) + `(ido-first-match ((t (:foreground ,base09 :weight bold)))) + `(ido-only-match ((t (:foreground ,base08 :weight bold)))) + `(ido-indicator ((t (:foreground ,base08 :background ,base01)))) + `(ido-virtual ((t (:foreground ,base04)))) + + ;; which-function + `(which-func ((t (:foreground ,base0D :background nil :weight bold)))) + + `(trailing-whitespace ((t (:background ,base0C :foreground ,base0A)))) + `(whitespace-empty ((t (:foreground ,base08 :background ,base0A)))) + `(whitespace-hspace ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-indentation ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-line ((t (:background ,base01 :foreground ,base0F)))) + `(whitespace-newline ((t (:foreground ,base04)))) + `(whitespace-space ((t (:background ,base01 :foreground ,base04)))) + `(whitespace-space-after-tab ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-space-before-tab ((t (:background ,base09 :foreground ,base08)))) + `(whitespace-tab ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-trailing ((t (:background ,base08 :foreground ,base0A)))) + + ;; Parenthesis matching (built-in) + `(show-paren-match ((t (:background ,base0D :foreground ,base03)))) + `(show-paren-mismatch ((t (:background ,base09 :foreground ,base03)))) + + ;; Parenthesis matching (mic-paren) + `(paren-face-match ((t (:foreground nil :background nil :inherit show-paren-match)))) + `(paren-face-mismatch ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + `(paren-face-no-match ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + + ;; Parenthesis dimming (parenface) + `(paren-face ((t (:foreground ,base04 :background nil)))) + + `(sh-heredoc ((t (:foreground nil :inherit font-lock-string-face :weight normal)))) + `(sh-quoted-exec ((t (:foreground nil :inherit font-lock-preprocessor-face)))) + `(slime-highlight-edits-face ((t (:weight bold)))) + `(slime-repl-input-face ((t (:weight normal :underline nil)))) + `(slime-repl-prompt-face ((t (:underline nil :weight bold :foreground ,base0E)))) + `(slime-repl-result-face ((t (:foreground ,base0B)))) + `(slime-repl-output-face ((t (:foreground ,base0D :background ,base01)))) + + `(csv-separator-face ((t (:foreground ,base09)))) + + `(diff-added ((t (:foreground ,base0B)))) + `(diff-changed ((t (:foreground ,base0A)))) + `(diff-removed ((t (:foreground ,base08)))) + `(diff-header ((t (:background ,base01)))) + `(diff-file-header ((t (:background ,base02)))) + `(diff-hunk-header ((t (:background ,base01 :foreground ,base0E)))) + + `(ediff-even-diff-A ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-even-diff-B ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-odd-diff-A ((t (:foreground ,base04 :background nil :inverse-video t)))) + `(ediff-odd-diff-B ((t (:foreground ,base04 :background nil :inverse-video t)))) + + `(eldoc-highlight-function-argument ((t (:foreground ,base0B :weight bold)))) + + ;; undo-tree + `(undo-tree-visualizer-default-face ((t (:foreground ,base06)))) + `(undo-tree-visualizer-current-face ((t (:foreground ,base0B :weight bold)))) + `(undo-tree-visualizer-active-branch-face ((t (:foreground ,base08)))) + `(undo-tree-visualizer-register-face ((t (:foreground ,base0A)))) + + ;; auctex + `(font-latex-bold-face ((t (:foreground ,base0B)))) + `(font-latex-doctex-documentation-face ((t (:background ,base03)))) + `(font-latex-italic-face ((t (:foreground ,base0B)))) + `(font-latex-math-face ((t (:foreground ,base09)))) + `(font-latex-sectioning-0-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-1-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-2-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-3-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-4-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-5-face ((t (:foreground ,base0A)))) + `(font-latex-sedate-face ((t (:foreground ,base0C)))) + `(font-latex-string-face ((t (:foreground ,base0A)))) + `(font-latex-verbatim-face ((t (:foreground ,base09)))) + `(font-latex-warning-face ((t (:foreground ,base08)))) + + ;; dired+ + `(diredp-compressed-file-suffix ((t (:foreground ,base0D)))) + `(diredp-dir-heading ((t (:foreground nil :background nil :inherit heading)))) + `(diredp-dir-priv ((t (:foreground ,base0C :background nil)))) + `(diredp-exec-priv ((t (:foreground ,base0D :background nil)))) + `(diredp-executable-tag ((t (:foreground ,base08 :background nil)))) + `(diredp-file-name ((t (:foreground ,base0A)))) + `(diredp-file-suffix ((t (:foreground ,base0B)))) + `(diredp-flag-mark-line ((t (:background nil :inherit highlight)))) + `(diredp-ignored-file-name ((t (:foreground ,base04)))) + `(diredp-link-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-mode-line-flagged ((t (:foreground ,base08)))) + `(diredp-mode-line-marked ((t (:foreground ,base0B)))) + `(diredp-no-priv ((t (:background nil)))) + `(diredp-number ((t (:foreground ,base0A)))) + `(diredp-other-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-rare-priv ((t (:foreground ,base08 :background nil)))) + `(diredp-read-priv ((t (:foreground ,base0B :background nil)))) + `(diredp-symlink ((t (:foreground ,base0E)))) + `(diredp-write-priv ((t (:foreground ,base0A :background nil)))) + + ;; term and ansi-term + `(term-color-black ((t (:foreground ,base02 :background ,base00)))) + `(term-color-white ((t (:foreground ,base05 :background ,base07)))) + `(term-color-red ((t (:foreground ,base08 :background ,base08)))) + `(term-color-yellow ((t (:foreground ,base0A :background ,base0A)))) + `(term-color-green ((t (:foreground ,base0B :background ,base0B)))) + `(term-color-cyan ((t (:foreground ,base0C :background ,base0C)))) + `(term-color-blue ((t (:foreground ,base0D :background ,base0D)))) + `(term-color-magenta ((t (:foreground ,base0E :background ,base0E)))) + + ;; Magit (a patch is pending in magit to make these standard upstream) + `(magit-branch ((t (:foreground ,base0B)))) + `(magit-header ((t (:inherit nil :weight bold)))) + `(magit-item-highlight ((t (:inherit highlight :background nil)))) + `(magit-log-graph ((t (:foreground ,base04)))) + `(magit-log-sha1 ((t (:foreground ,base0E)))) + `(magit-log-head-label-bisect-bad ((t (:foreground ,base08)))) + `(magit-log-head-label-bisect-good ((t (:foreground ,base0B)))) + `(magit-log-head-label-default ((t (:foreground ,base0A :box nil :weight bold)))) + `(magit-log-head-label-local ((t (:foreground ,base0D)))) + `(magit-log-head-label-remote ((t (:foreground ,base0B)))) + `(magit-log-head-label-tags ((t (:foreground ,base0C :box nil :weight bold)))) + `(magit-section-title ((t (:inherit diff-hunk-header)))) + + `(link ((t (:foreground nil :underline t)))) + `(widget-button ((t (:underline t)))) + `(widget-field ((t (:background ,base03 :box (:line-width 1 :color ,base06))))) + + ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) + `(compilation-column-number ((t (:foreground ,base0A)))) + `(compilation-line-number ((t (:foreground ,base0A)))) + `(compilation-message-face ((t (:foreground ,base0D)))) + `(compilation-mode-line-exit ((t (:foreground ,base0B)))) + `(compilation-mode-line-fail ((t (:foreground ,base08)))) + `(compilation-mode-line-run ((t (:foreground ,base0D)))) + + ;; Grep + `(grep-context-face ((t (:foreground ,base04)))) + `(grep-error-face ((t (:foreground ,base08 :weight bold :underline t)))) + `(grep-hit-face ((t (:foreground ,base0D)))) + `(grep-match-face ((t (:foreground nil :background nil :inherit match)))) + + `(regex-tool-matched-face ((t (:foreground nil :background nil :inherit match)))) + + ;; mark-multiple + `(mm/master-face ((t (:inherit region :foreground nil :background nil)))) + `(mm/mirror-face ((t (:inherit region :foreground nil :background nil)))) + + ;; org-mode + `(org-agenda-structure ((t (:foreground ,base0E)))) + `(org-agenda-date ((t (:foreground ,base0D :underline nil)))) + `(org-agenda-done ((t (:foreground ,base0B)))) + `(org-agenda-dimmed-todo-face ((t (:foreground ,base04)))) + `(org-block ((t (:foreground ,base09)))) + `(org-code ((t (:foreground ,base0A)))) + `(org-column ((t (:background ,base03)))) + `(org-column-title ((t (:inherit org-column :weight bold :underline t)))) + `(org-date ((t (:foreground ,base0E :underline t)))) + `(org-document-info ((t (:foreground ,base0C)))) + `(org-document-info-keyword ((t (:foreground ,base0B)))) + `(org-document-title ((t (:weight bold :foreground ,base09 :height 1.44)))) + `(org-done ((t (:foreground ,base0B)))) + `(org-ellipsis ((t (:foreground ,base04)))) + `(org-footnote ((t (:foreground ,base0C)))) + `(org-formula ((t (:foreground ,base08)))) + `(org-hide ((t (:foreground ,base03)))) + `(org-link ((t (:foreground ,base0D)))) + `(org-scheduled ((t (:foreground ,base0B)))) + `(org-scheduled-previously ((t (:foreground ,base09)))) + `(org-scheduled-today ((t (:foreground ,base0B)))) + `(org-special-keyword ((t (:foreground ,base09)))) + `(org-table ((t (:foreground ,base0E)))) + `(org-todo ((t (:foreground ,base08)))) + `(org-upcoming-deadline ((t (:foreground ,base09)))) + `(org-warning ((t (:weight bold :foreground ,base08)))) + + `(markdown-url-face ((t (:inherit link)))) + `(markdown-link-face ((t (:foreground ,base0D :underline t)))) + + `(hl-sexp-face ((t (:background ,base03)))) + `(highlight-80+ ((t (:background ,base03)))) + + ;; Python-specific overrides + `(py-builtins-face ((t (:foreground ,base09 :weight normal)))) + + ;; js2-mode + `(js2-warning-face ((t (:underline ,base09)))) + `(js2-error-face ((t (:foreground nil :underline ,base08)))) + `(js2-external-variable-face ((t (:foreground ,base0E)))) + `(js2-function-param-face ((t (:foreground ,base0D)))) + `(js2-instance-member-face ((t (:foreground ,base0D)))) + `(js2-private-function-call-face ((t (:foreground ,base08)))) + + ;; js3-mode + `(js3-warning-face ((t (:underline ,base09)))) + `(js3-error-face ((t (:foreground nil :underline ,base08)))) + `(js3-external-variable-face ((t (:foreground ,base0E)))) + `(js3-function-param-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-tag-face ((t (:foreground ,base09)))) + `(js3-jsdoc-type-face ((t (:foreground ,base0C)))) + `(js3-jsdoc-value-face ((t (:foreground ,base0A)))) + `(js3-jsdoc-html-tag-name-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-html-tag-delimiter-face ((t (:foreground ,base0B)))) + `(js3-instance-member-face ((t (:foreground ,base0D)))) + `(js3-private-function-call-face ((t (:foreground ,base08)))) + + ;; nxml + `(nxml-name-face ((t (:foreground unspecified :inherit font-lock-constant-face)))) + `(nxml-attribute-local-name-face ((t (:foreground unspecified :inherit font-lock-variable-name-face)))) + `(nxml-ref-face ((t (:foreground unspecified :inherit font-lock-preprocessor-face)))) + `(nxml-delimiter-face ((t (:foreground unspecified :inherit font-lock-keyword-face)))) + `(nxml-delimited-data-face ((t (:foreground unspecified :inherit font-lock-string-face)))) + `(rng-error-face ((t (:underline ,base08)))) + + ;; RHTML + `(erb-delim-face ((t (:background ,base03)))) + `(erb-exec-face ((t (:background ,base03 :weight bold)))) + `(erb-exec-delim-face ((t (:background ,base03)))) + `(erb-out-face ((t (:background ,base03 :weight bold)))) + `(erb-out-delim-face ((t (:background ,base03)))) + `(erb-comment-face ((t (:background ,base03 :weight bold :slant italic)))) + `(erb-comment-delim-face ((t (:background ,base03)))) + + ;; Message-mode + `(message-header-other ((t (:foreground nil :background nil :weight normal)))) + `(message-header-subject ((t (:inherit message-header-other :weight bold :foreground ,base0A)))) + `(message-header-to ((t (:inherit message-header-other :weight bold :foreground ,base09)))) + `(message-header-cc ((t (:inherit message-header-to :foreground nil)))) + `(message-header-name ((t (:foreground ,base0D :background nil)))) + `(message-header-newsgroups ((t (:foreground ,base0C :background nil :slant normal)))) + `(message-separator ((t (:foreground ,base0E)))) + + ;; Jabber + `(jabber-chat-prompt-local ((t (:foreground ,base0A)))) + `(jabber-chat-prompt-foreign ((t (:foreground ,base09)))) + `(jabber-chat-prompt-system ((t (:foreground ,base0A :weight bold)))) + `(jabber-chat-text-local ((t (:foreground ,base0A)))) + `(jabber-chat-text-foreign ((t (:foreground ,base09)))) + `(jabber-chat-text-error ((t (:foreground ,base08)))) + + `(jabber-roster-user-online ((t (:foreground ,base0B)))) + `(jabber-roster-user-xa ((t :foreground ,base04))) + `(jabber-roster-user-dnd ((t :foreground ,base0A))) + `(jabber-roster-user-away ((t (:foreground ,base09)))) + `(jabber-roster-user-chatty ((t (:foreground ,base0E)))) + `(jabber-roster-user-error ((t (:foreground ,base08)))) + `(jabber-roster-user-offline ((t (:foreground ,base04)))) + + `(jabber-rare-time-face ((t (:foreground ,base04)))) + `(jabber-activity-face ((t (:foreground ,base0E)))) + `(jabber-activity-personal-face ((t (:foreground ,base0C)))) + + ;; Gnus + `(gnus-cite-1 ((t (:inherit outline-1 :foreground nil)))) + `(gnus-cite-2 ((t (:inherit outline-2 :foreground nil)))) + `(gnus-cite-3 ((t (:inherit outline-3 :foreground nil)))) + `(gnus-cite-4 ((t (:inherit outline-4 :foreground nil)))) + `(gnus-cite-5 ((t (:inherit outline-5 :foreground nil)))) + `(gnus-cite-6 ((t (:inherit outline-6 :foreground nil)))) + `(gnus-cite-7 ((t (:inherit outline-7 :foreground nil)))) + `(gnus-cite-8 ((t (:inherit outline-8 :foreground nil)))) + ;; there are several more -cite- faces... + `(gnus-header-content ((t (:inherit message-header-other)))) + `(gnus-header-subject ((t (:inherit message-header-subject)))) + `(gnus-header-from ((t (:inherit message-header-other-face :weight bold :foreground ,base09)))) + `(gnus-header-name ((t (:inherit message-header-name)))) + `(gnus-button ((t (:inherit link :foreground nil)))) + `(gnus-signature ((t (:inherit font-lock-comment-face)))) + + `(gnus-summary-normal-unread ((t (:foreground ,base0D :weight normal)))) + `(gnus-summary-normal-read ((t (:foreground ,base06 :weight normal)))) + `(gnus-summary-normal-ancient ((t (:foreground ,base0C :weight normal)))) + `(gnus-summary-normal-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-low-unread ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-read ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-ancient ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-high-unread ((t (:foreground ,base0A :weight normal)))) + `(gnus-summary-high-read ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ancient ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-cancelled ((t (:foreground ,base08 :background nil :weight normal)))) + + `(gnus-group-mail-low ((t (:foreground ,base04)))) + `(gnus-group-mail-low-empty ((t (:foreground ,base04)))) + `(gnus-group-mail-1 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-mail-2 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-mail-3 ((t (:foreground nil :weight normal :inherit outline-3)))) + `(gnus-group-mail-4 ((t (:foreground nil :weight normal :inherit outline-4)))) + `(gnus-group-mail-5 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-mail-6 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-mail-1-empty ((t (:inherit gnus-group-mail-1 :foreground ,base04)))) + `(gnus-group-mail-2-empty ((t (:inherit gnus-group-mail-2 :foreground ,base04)))) + `(gnus-group-mail-3-empty ((t (:inherit gnus-group-mail-3 :foreground ,base04)))) + `(gnus-group-mail-4-empty ((t (:inherit gnus-group-mail-4 :foreground ,base04)))) + `(gnus-group-mail-5-empty ((t (:inherit gnus-group-mail-5 :foreground ,base04)))) + `(gnus-group-mail-6-empty ((t (:inherit gnus-group-mail-6 :foreground ,base04)))) + `(gnus-group-news-1 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-news-2 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-news-3 ((t (:foreground nil :weight normal :inherit outline-7)))) + `(gnus-group-news-4 ((t (:foreground nil :weight normal :inherit outline-8)))) + `(gnus-group-news-5 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-news-6 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-news-1-empty ((t (:inherit gnus-group-news-1 :foreground ,base04)))) + `(gnus-group-news-2-empty ((t (:inherit gnus-group-news-2 :foreground ,base04)))) + `(gnus-group-news-3-empty ((t (:inherit gnus-group-news-3 :foreground ,base04)))) + `(gnus-group-news-4-empty ((t (:inherit gnus-group-news-4 :foreground ,base04)))) + `(gnus-group-news-5-empty ((t (:inherit gnus-group-news-5 :foreground ,base04)))) + `(gnus-group-news-6-empty ((t (:inherit gnus-group-news-6 :foreground ,base04)))) + + `(erc-direct-msg-face ((t (:foreground ,base09)))) + `(erc-error-face ((t (:foreground ,base08)))) + `(erc-header-face ((t (:foreground ,base06 :background ,base04)))) + `(erc-input-face ((t (:foreground ,base0B)))) + `(erc-keyword-face ((t (:foreground ,base0A)))) + `(erc-current-nick-face ((t (:foreground ,base0B)))) + `(erc-my-nick-face ((t (:foreground ,base0B)))) + `(erc-nick-default-face ((t (:weight normal :foreground ,base0E)))) + `(erc-nick-msg-face ((t (:weight normal :foreground ,base0A)))) + `(erc-notice-face ((t (:foreground ,base04)))) + `(erc-pal-face ((t (:foreground ,base09)))) + `(erc-prompt-face ((t (:foreground ,base0D)))) + `(erc-timestamp-face ((t (:foreground ,base0C)))) + + `(custom-variable-tag ((t (:foreground ,base0D)))) + `(custom-group-tag ((t (:foreground ,base0D)))) + `(custom-state ((t (:foreground ,base0B))))) + + + (custom-theme-set-variables + 'base16-default-dark + + `(ansi-color-names-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]) + `(ansi-term-color-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [unspecified ,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]))) + +(provide-theme 'base16-default-dark) + +;;; base16-default-dark-theme.el ends here diff --git a/emacs/themes/base16-google-dark-theme.el b/emacs/themes/base16-google-dark-theme.el new file mode 100644 index 0000000..b2ea643 --- /dev/null +++ b/emacs/themes/base16-google-dark-theme.el @@ -0,0 +1,456 @@ +;; Base16 Google (https://github.com/chriskempson/base16) +;; Scheme: Seth Wright (http://sethawright.com) + +;;; base16-google-dark-theme.el + +;;; Code: + +(deftheme base16-google-dark) + +(let ((base00 "#1d1f21") + (base01 "#282a2e") + (base02 "#373b41") + (base03 "#969896") + (base04 "#b4b7b4") + (base05 "#c5c8c6") + (base06 "#e0e0e0") + (base07 "#ffffff") + (base08 "#CC342B") + (base09 "#F96A38") + (base0A "#FBA922") + (base0B "#198844") + (base0C "#3971ED") + (base0D "#3971ED") + (base0E "#A36AC7") + (base0F "#3971ED")) + + (custom-theme-set-faces + 'base16-google-dark + + ;; Built-in stuff (Emacs 23) + `(border ((t (:background ,base03)))) + `(border-glyph ((t (nil)))) + `(cursor ((t (:background ,base08)))) + `(default ((t (:background ,base00 :foreground ,base05)))) + `(fringe ((t (:background ,base02)))) + `(gui-element ((t (:background ,base03 :foreground ,base06)))) + `(highlight ((t (:background ,base01)))) + `(link ((t (:foreground ,base0D)))) + `(link-visited ((t (:foreground ,base0E)))) + `(minibuffer-prompt ((t (:foreground ,base0D)))) + `(mode-line ((t (:background ,base02 :foreground ,base04 :box nil)))) + `(mode-line-buffer-id ((t (:foreground ,base0E :background nil)))) + `(mode-line-emphasis ((t (:foreground ,base06 :slant italic)))) + `(mode-line-highlight ((t (:foreground ,base0E :box nil :weight bold)))) + `(mode-line-inactive ((t (:background ,base01 :foreground ,base03 :box nil)))) + `(region ((t (:background ,base02)))) + `(secondary-selection ((t (:background ,base03)))) + `(error ((t (:foreground ,base08 :weight bold)))) + `(warning ((t (:foreground ,base09 :weight bold)))) + `(success ((t (:foreground ,base0B :weight bold)))) + + `(header-line ((t (:inherit mode-line :foreground ,base0E :background nil)))) + + ;; Font-lock stuff + `(font-lock-builtin-face ((t (:foreground ,base0C)))) + `(font-lock-comment-delimiter-face ((t (:foreground ,base02)))) + `(font-lock-comment-face ((t (:foreground ,base03)))) + `(font-lock-constant-face ((t (:foreground ,base09)))) + `(font-lock-doc-face ((t (:foreground ,base04)))) + `(font-lock-doc-string-face ((t (:foreground ,base03)))) + `(font-lock-function-name-face ((t (:foreground ,base0D)))) + `(font-lock-keyword-face ((t (:foreground ,base0E)))) + `(font-lock-negation-char-face ((t (:foreground ,base0B)))) + `(font-lock-preprocessor-face ((t (:foreground ,base0D)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground ,base0A)))) + `(font-lock-regexp-grouping-construct ((t (:foreground ,base0E)))) + `(font-lock-string-face ((t (:foreground ,base0B)))) + `(font-lock-type-face ((t (:foreground ,base0A)))) + `(font-lock-variable-name-face ((t (:foreground ,base0C)))) + `(font-lock-warning-face ((t (:foreground ,base08)))) + + ;; linum-mode + `(linum ((t (:background ,base01 :foreground ,base03)))) + + ;; Search + `(match ((t (:foreground ,base0D :background ,base01 :inverse-video t)))) + `(isearch ((t (:foreground ,base0A :background ,base01 :inverse-video t)))) + `(isearch-lazy-highlight-face ((t (:foreground ,base0C :background ,base01 :inverse-video t)))) + `(isearch-fail ((t (:background ,base01 :inherit font-lock-warning-face :inverse-video t)))) + + ;; Flymake + `(flymake-warnline ((t (:underline ,base09 :background ,base01)))) + `(flymake-errline ((t (:underline ,base08 :background ,base01)))) + + ;; Clojure errors + `(clojure-test-failure-face ((t (:background nil :inherit flymake-warnline)))) + `(clojure-test-error-face ((t (:background nil :inherit flymake-errline)))) + `(clojure-test-success-face ((t (:background nil :foreground nil :underline ,base0B)))) + + ;; For Brian Carper's extended clojure syntax table + `(clojure-keyword ((t (:foreground ,base0A)))) + `(clojure-parens ((t (:foreground ,base06)))) + `(clojure-braces ((t (:foreground ,base0B)))) + `(clojure-brackets ((t (:foreground ,base0A)))) + `(clojure-double-quote ((t (:foreground ,base0C :background nil)))) + `(clojure-special ((t (:foreground ,base0D)))) + `(clojure-java-call ((t (:foreground ,base0E)))) + + ;; MMM-mode + `(mmm-code-submode-face ((t (:background ,base03)))) + `(mmm-comment-submode-face ((t (:inherit font-lock-comment-face)))) + `(mmm-output-submode-face ((t (:background ,base03)))) + + ;; rainbow-delimiters + `(rainbow-delimiters-depth-1-face ((t (:foreground ,base0E)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,base0D)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,base0C)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,base0B)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,base0A)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,base09)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,base08)))) + `(rainbow-delimiters-depth-8-face ((t (:foreground ,base03)))) + `(rainbow-delimiters-depth-9-face ((t (:foreground ,base05)))) + + ;; IDO + `(ido-subdir ((t (:foreground ,base04)))) + `(ido-first-match ((t (:foreground ,base09 :weight bold)))) + `(ido-only-match ((t (:foreground ,base08 :weight bold)))) + `(ido-indicator ((t (:foreground ,base08 :background ,base01)))) + `(ido-virtual ((t (:foreground ,base04)))) + + ;; which-function + `(which-func ((t (:foreground ,base0D :background nil :weight bold)))) + + `(trailing-whitespace ((t (:background ,base0C :foreground ,base0A)))) + `(whitespace-empty ((t (:foreground ,base08 :background ,base0A)))) + `(whitespace-hspace ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-indentation ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-line ((t (:background ,base01 :foreground ,base0F)))) + `(whitespace-newline ((t (:foreground ,base04)))) + `(whitespace-space ((t (:background ,base01 :foreground ,base04)))) + `(whitespace-space-after-tab ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-space-before-tab ((t (:background ,base09 :foreground ,base08)))) + `(whitespace-tab ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-trailing ((t (:background ,base08 :foreground ,base0A)))) + + ;; Parenthesis matching (built-in) + `(show-paren-match ((t (:background ,base0D :foreground ,base03)))) + `(show-paren-mismatch ((t (:background ,base09 :foreground ,base03)))) + + ;; Parenthesis matching (mic-paren) + `(paren-face-match ((t (:foreground nil :background nil :inherit show-paren-match)))) + `(paren-face-mismatch ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + `(paren-face-no-match ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + + ;; Parenthesis dimming (parenface) + `(paren-face ((t (:foreground ,base04 :background nil)))) + + `(sh-heredoc ((t (:foreground nil :inherit font-lock-string-face :weight normal)))) + `(sh-quoted-exec ((t (:foreground nil :inherit font-lock-preprocessor-face)))) + `(slime-highlight-edits-face ((t (:weight bold)))) + `(slime-repl-input-face ((t (:weight normal :underline nil)))) + `(slime-repl-prompt-face ((t (:underline nil :weight bold :foreground ,base0E)))) + `(slime-repl-result-face ((t (:foreground ,base0B)))) + `(slime-repl-output-face ((t (:foreground ,base0D :background ,base01)))) + + `(csv-separator-face ((t (:foreground ,base09)))) + + `(diff-added ((t (:foreground ,base0B)))) + `(diff-changed ((t (:foreground ,base0A)))) + `(diff-removed ((t (:foreground ,base08)))) + `(diff-header ((t (:background ,base01)))) + `(diff-file-header ((t (:background ,base02)))) + `(diff-hunk-header ((t (:background ,base01 :foreground ,base0E)))) + + `(ediff-even-diff-A ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-even-diff-B ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-odd-diff-A ((t (:foreground ,base04 :background nil :inverse-video t)))) + `(ediff-odd-diff-B ((t (:foreground ,base04 :background nil :inverse-video t)))) + + `(eldoc-highlight-function-argument ((t (:foreground ,base0B :weight bold)))) + + ;; undo-tree + `(undo-tree-visualizer-default-face ((t (:foreground ,base06)))) + `(undo-tree-visualizer-current-face ((t (:foreground ,base0B :weight bold)))) + `(undo-tree-visualizer-active-branch-face ((t (:foreground ,base08)))) + `(undo-tree-visualizer-register-face ((t (:foreground ,base0A)))) + + ;; auctex + `(font-latex-bold-face ((t (:foreground ,base0B)))) + `(font-latex-doctex-documentation-face ((t (:background ,base03)))) + `(font-latex-italic-face ((t (:foreground ,base0B)))) + `(font-latex-math-face ((t (:foreground ,base09)))) + `(font-latex-sectioning-0-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-1-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-2-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-3-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-4-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-5-face ((t (:foreground ,base0A)))) + `(font-latex-sedate-face ((t (:foreground ,base0C)))) + `(font-latex-string-face ((t (:foreground ,base0A)))) + `(font-latex-verbatim-face ((t (:foreground ,base09)))) + `(font-latex-warning-face ((t (:foreground ,base08)))) + + ;; dired+ + `(diredp-compressed-file-suffix ((t (:foreground ,base0D)))) + `(diredp-dir-heading ((t (:foreground nil :background nil :inherit heading)))) + `(diredp-dir-priv ((t (:foreground ,base0C :background nil)))) + `(diredp-exec-priv ((t (:foreground ,base0D :background nil)))) + `(diredp-executable-tag ((t (:foreground ,base08 :background nil)))) + `(diredp-file-name ((t (:foreground ,base0A)))) + `(diredp-file-suffix ((t (:foreground ,base0B)))) + `(diredp-flag-mark-line ((t (:background nil :inherit highlight)))) + `(diredp-ignored-file-name ((t (:foreground ,base04)))) + `(diredp-link-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-mode-line-flagged ((t (:foreground ,base08)))) + `(diredp-mode-line-marked ((t (:foreground ,base0B)))) + `(diredp-no-priv ((t (:background nil)))) + `(diredp-number ((t (:foreground ,base0A)))) + `(diredp-other-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-rare-priv ((t (:foreground ,base08 :background nil)))) + `(diredp-read-priv ((t (:foreground ,base0B :background nil)))) + `(diredp-symlink ((t (:foreground ,base0E)))) + `(diredp-write-priv ((t (:foreground ,base0A :background nil)))) + + ;; term and ansi-term + `(term-color-black ((t (:foreground ,base02 :background ,base00)))) + `(term-color-white ((t (:foreground ,base05 :background ,base07)))) + `(term-color-red ((t (:foreground ,base08 :background ,base08)))) + `(term-color-yellow ((t (:foreground ,base0A :background ,base0A)))) + `(term-color-green ((t (:foreground ,base0B :background ,base0B)))) + `(term-color-cyan ((t (:foreground ,base0C :background ,base0C)))) + `(term-color-blue ((t (:foreground ,base0D :background ,base0D)))) + `(term-color-magenta ((t (:foreground ,base0E :background ,base0E)))) + + ;; Magit (a patch is pending in magit to make these standard upstream) + `(magit-branch ((t (:foreground ,base0B)))) + `(magit-header ((t (:inherit nil :weight bold)))) + `(magit-item-highlight ((t (:inherit highlight :background nil)))) + `(magit-log-graph ((t (:foreground ,base04)))) + `(magit-log-sha1 ((t (:foreground ,base0E)))) + `(magit-log-head-label-bisect-bad ((t (:foreground ,base08)))) + `(magit-log-head-label-bisect-good ((t (:foreground ,base0B)))) + `(magit-log-head-label-default ((t (:foreground ,base0A :box nil :weight bold)))) + `(magit-log-head-label-local ((t (:foreground ,base0D)))) + `(magit-log-head-label-remote ((t (:foreground ,base0B)))) + `(magit-log-head-label-tags ((t (:foreground ,base0C :box nil :weight bold)))) + `(magit-section-title ((t (:inherit diff-hunk-header)))) + + `(link ((t (:foreground nil :underline t)))) + `(widget-button ((t (:underline t)))) + `(widget-field ((t (:background ,base03 :box (:line-width 1 :color ,base06))))) + + ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) + `(compilation-column-number ((t (:foreground ,base0A)))) + `(compilation-line-number ((t (:foreground ,base0A)))) + `(compilation-message-face ((t (:foreground ,base0D)))) + `(compilation-mode-line-exit ((t (:foreground ,base0B)))) + `(compilation-mode-line-fail ((t (:foreground ,base08)))) + `(compilation-mode-line-run ((t (:foreground ,base0D)))) + + ;; Grep + `(grep-context-face ((t (:foreground ,base04)))) + `(grep-error-face ((t (:foreground ,base08 :weight bold :underline t)))) + `(grep-hit-face ((t (:foreground ,base0D)))) + `(grep-match-face ((t (:foreground nil :background nil :inherit match)))) + + `(regex-tool-matched-face ((t (:foreground nil :background nil :inherit match)))) + + ;; mark-multiple + `(mm/master-face ((t (:inherit region :foreground nil :background nil)))) + `(mm/mirror-face ((t (:inherit region :foreground nil :background nil)))) + + ;; org-mode + `(org-agenda-structure ((t (:foreground ,base0E)))) + `(org-agenda-date ((t (:foreground ,base0D :underline nil)))) + `(org-agenda-done ((t (:foreground ,base0B)))) + `(org-agenda-dimmed-todo-face ((t (:foreground ,base04)))) + `(org-block ((t (:foreground ,base09)))) + `(org-code ((t (:foreground ,base0A)))) + `(org-column ((t (:background ,base03)))) + `(org-column-title ((t (:inherit org-column :weight bold :underline t)))) + `(org-date ((t (:foreground ,base0E :underline t)))) + `(org-document-info ((t (:foreground ,base0C)))) + `(org-document-info-keyword ((t (:foreground ,base0B)))) + `(org-document-title ((t (:weight bold :foreground ,base09 :height 1.44)))) + `(org-done ((t (:foreground ,base0B)))) + `(org-ellipsis ((t (:foreground ,base04)))) + `(org-footnote ((t (:foreground ,base0C)))) + `(org-formula ((t (:foreground ,base08)))) + `(org-hide ((t (:foreground ,base03)))) + `(org-link ((t (:foreground ,base0D)))) + `(org-scheduled ((t (:foreground ,base0B)))) + `(org-scheduled-previously ((t (:foreground ,base09)))) + `(org-scheduled-today ((t (:foreground ,base0B)))) + `(org-special-keyword ((t (:foreground ,base09)))) + `(org-table ((t (:foreground ,base0E)))) + `(org-todo ((t (:foreground ,base08)))) + `(org-upcoming-deadline ((t (:foreground ,base09)))) + `(org-warning ((t (:weight bold :foreground ,base08)))) + + `(markdown-url-face ((t (:inherit link)))) + `(markdown-link-face ((t (:foreground ,base0D :underline t)))) + + `(hl-sexp-face ((t (:background ,base03)))) + `(highlight-80+ ((t (:background ,base03)))) + + ;; Python-specific overrides + `(py-builtins-face ((t (:foreground ,base09 :weight normal)))) + + ;; js2-mode + `(js2-warning-face ((t (:underline ,base09)))) + `(js2-error-face ((t (:foreground nil :underline ,base08)))) + `(js2-external-variable-face ((t (:foreground ,base0E)))) + `(js2-function-param-face ((t (:foreground ,base0D)))) + `(js2-instance-member-face ((t (:foreground ,base0D)))) + `(js2-private-function-call-face ((t (:foreground ,base08)))) + + ;; js3-mode + `(js3-warning-face ((t (:underline ,base09)))) + `(js3-error-face ((t (:foreground nil :underline ,base08)))) + `(js3-external-variable-face ((t (:foreground ,base0E)))) + `(js3-function-param-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-tag-face ((t (:foreground ,base09)))) + `(js3-jsdoc-type-face ((t (:foreground ,base0C)))) + `(js3-jsdoc-value-face ((t (:foreground ,base0A)))) + `(js3-jsdoc-html-tag-name-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-html-tag-delimiter-face ((t (:foreground ,base0B)))) + `(js3-instance-member-face ((t (:foreground ,base0D)))) + `(js3-private-function-call-face ((t (:foreground ,base08)))) + + ;; nxml + `(nxml-name-face ((t (:foreground unspecified :inherit font-lock-constant-face)))) + `(nxml-attribute-local-name-face ((t (:foreground unspecified :inherit font-lock-variable-name-face)))) + `(nxml-ref-face ((t (:foreground unspecified :inherit font-lock-preprocessor-face)))) + `(nxml-delimiter-face ((t (:foreground unspecified :inherit font-lock-keyword-face)))) + `(nxml-delimited-data-face ((t (:foreground unspecified :inherit font-lock-string-face)))) + `(rng-error-face ((t (:underline ,base08)))) + + ;; RHTML + `(erb-delim-face ((t (:background ,base03)))) + `(erb-exec-face ((t (:background ,base03 :weight bold)))) + `(erb-exec-delim-face ((t (:background ,base03)))) + `(erb-out-face ((t (:background ,base03 :weight bold)))) + `(erb-out-delim-face ((t (:background ,base03)))) + `(erb-comment-face ((t (:background ,base03 :weight bold :slant italic)))) + `(erb-comment-delim-face ((t (:background ,base03)))) + + ;; Message-mode + `(message-header-other ((t (:foreground nil :background nil :weight normal)))) + `(message-header-subject ((t (:inherit message-header-other :weight bold :foreground ,base0A)))) + `(message-header-to ((t (:inherit message-header-other :weight bold :foreground ,base09)))) + `(message-header-cc ((t (:inherit message-header-to :foreground nil)))) + `(message-header-name ((t (:foreground ,base0D :background nil)))) + `(message-header-newsgroups ((t (:foreground ,base0C :background nil :slant normal)))) + `(message-separator ((t (:foreground ,base0E)))) + + ;; Jabber + `(jabber-chat-prompt-local ((t (:foreground ,base0A)))) + `(jabber-chat-prompt-foreign ((t (:foreground ,base09)))) + `(jabber-chat-prompt-system ((t (:foreground ,base0A :weight bold)))) + `(jabber-chat-text-local ((t (:foreground ,base0A)))) + `(jabber-chat-text-foreign ((t (:foreground ,base09)))) + `(jabber-chat-text-error ((t (:foreground ,base08)))) + + `(jabber-roster-user-online ((t (:foreground ,base0B)))) + `(jabber-roster-user-xa ((t :foreground ,base04))) + `(jabber-roster-user-dnd ((t :foreground ,base0A))) + `(jabber-roster-user-away ((t (:foreground ,base09)))) + `(jabber-roster-user-chatty ((t (:foreground ,base0E)))) + `(jabber-roster-user-error ((t (:foreground ,base08)))) + `(jabber-roster-user-offline ((t (:foreground ,base04)))) + + `(jabber-rare-time-face ((t (:foreground ,base04)))) + `(jabber-activity-face ((t (:foreground ,base0E)))) + `(jabber-activity-personal-face ((t (:foreground ,base0C)))) + + ;; Gnus + `(gnus-cite-1 ((t (:inherit outline-1 :foreground nil)))) + `(gnus-cite-2 ((t (:inherit outline-2 :foreground nil)))) + `(gnus-cite-3 ((t (:inherit outline-3 :foreground nil)))) + `(gnus-cite-4 ((t (:inherit outline-4 :foreground nil)))) + `(gnus-cite-5 ((t (:inherit outline-5 :foreground nil)))) + `(gnus-cite-6 ((t (:inherit outline-6 :foreground nil)))) + `(gnus-cite-7 ((t (:inherit outline-7 :foreground nil)))) + `(gnus-cite-8 ((t (:inherit outline-8 :foreground nil)))) + ;; there are several more -cite- faces... + `(gnus-header-content ((t (:inherit message-header-other)))) + `(gnus-header-subject ((t (:inherit message-header-subject)))) + `(gnus-header-from ((t (:inherit message-header-other-face :weight bold :foreground ,base09)))) + `(gnus-header-name ((t (:inherit message-header-name)))) + `(gnus-button ((t (:inherit link :foreground nil)))) + `(gnus-signature ((t (:inherit font-lock-comment-face)))) + + `(gnus-summary-normal-unread ((t (:foreground ,base0D :weight normal)))) + `(gnus-summary-normal-read ((t (:foreground ,base06 :weight normal)))) + `(gnus-summary-normal-ancient ((t (:foreground ,base0C :weight normal)))) + `(gnus-summary-normal-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-low-unread ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-read ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-ancient ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-high-unread ((t (:foreground ,base0A :weight normal)))) + `(gnus-summary-high-read ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ancient ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-cancelled ((t (:foreground ,base08 :background nil :weight normal)))) + + `(gnus-group-mail-low ((t (:foreground ,base04)))) + `(gnus-group-mail-low-empty ((t (:foreground ,base04)))) + `(gnus-group-mail-1 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-mail-2 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-mail-3 ((t (:foreground nil :weight normal :inherit outline-3)))) + `(gnus-group-mail-4 ((t (:foreground nil :weight normal :inherit outline-4)))) + `(gnus-group-mail-5 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-mail-6 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-mail-1-empty ((t (:inherit gnus-group-mail-1 :foreground ,base04)))) + `(gnus-group-mail-2-empty ((t (:inherit gnus-group-mail-2 :foreground ,base04)))) + `(gnus-group-mail-3-empty ((t (:inherit gnus-group-mail-3 :foreground ,base04)))) + `(gnus-group-mail-4-empty ((t (:inherit gnus-group-mail-4 :foreground ,base04)))) + `(gnus-group-mail-5-empty ((t (:inherit gnus-group-mail-5 :foreground ,base04)))) + `(gnus-group-mail-6-empty ((t (:inherit gnus-group-mail-6 :foreground ,base04)))) + `(gnus-group-news-1 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-news-2 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-news-3 ((t (:foreground nil :weight normal :inherit outline-7)))) + `(gnus-group-news-4 ((t (:foreground nil :weight normal :inherit outline-8)))) + `(gnus-group-news-5 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-news-6 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-news-1-empty ((t (:inherit gnus-group-news-1 :foreground ,base04)))) + `(gnus-group-news-2-empty ((t (:inherit gnus-group-news-2 :foreground ,base04)))) + `(gnus-group-news-3-empty ((t (:inherit gnus-group-news-3 :foreground ,base04)))) + `(gnus-group-news-4-empty ((t (:inherit gnus-group-news-4 :foreground ,base04)))) + `(gnus-group-news-5-empty ((t (:inherit gnus-group-news-5 :foreground ,base04)))) + `(gnus-group-news-6-empty ((t (:inherit gnus-group-news-6 :foreground ,base04)))) + + `(erc-direct-msg-face ((t (:foreground ,base09)))) + `(erc-error-face ((t (:foreground ,base08)))) + `(erc-header-face ((t (:foreground ,base06 :background ,base04)))) + `(erc-input-face ((t (:foreground ,base0B)))) + `(erc-keyword-face ((t (:foreground ,base0A)))) + `(erc-current-nick-face ((t (:foreground ,base0B)))) + `(erc-my-nick-face ((t (:foreground ,base0B)))) + `(erc-nick-default-face ((t (:weight normal :foreground ,base0E)))) + `(erc-nick-msg-face ((t (:weight normal :foreground ,base0A)))) + `(erc-notice-face ((t (:foreground ,base04)))) + `(erc-pal-face ((t (:foreground ,base09)))) + `(erc-prompt-face ((t (:foreground ,base0D)))) + `(erc-timestamp-face ((t (:foreground ,base0C)))) + + `(custom-variable-tag ((t (:foreground ,base0D)))) + `(custom-group-tag ((t (:foreground ,base0D)))) + `(custom-state ((t (:foreground ,base0B))))) + + + (custom-theme-set-variables + 'base16-google-dark + + `(ansi-color-names-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]) + `(ansi-term-color-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [unspecified ,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]))) + +(provide-theme 'base16-google-dark) + +;;; base16-google-dark-theme.el ends here diff --git a/emacs/themes/base16-tomorrow-dark-theme.el b/emacs/themes/base16-tomorrow-dark-theme.el new file mode 100644 index 0000000..963d17d --- /dev/null +++ b/emacs/themes/base16-tomorrow-dark-theme.el @@ -0,0 +1,456 @@ +;; Base16 Tomorrow (https://github.com/chriskempson/base16) +;; Scheme: Chris Kempson (http://chriskempson.com) + +;;; base16-tomorrow-dark-theme.el + +;;; Code: + +(deftheme base16-tomorrow-dark) + +(let ((base00 "#1d1f21") + (base01 "#282a2e") + (base02 "#373b41") + (base03 "#969896") + (base04 "#b4b7b4") + (base05 "#c5c8c6") + (base06 "#e0e0e0") + (base07 "#ffffff") + (base08 "#cc6666") + (base09 "#de935f") + (base0A "#f0c674") + (base0B "#b5bd68") + (base0C "#8abeb7") + (base0D "#81a2be") + (base0E "#b294bb") + (base0F "#a3685a")) + + (custom-theme-set-faces + 'base16-tomorrow-dark + + ;; Built-in stuff (Emacs 23) + `(border ((t (:background ,base03)))) + `(border-glyph ((t (nil)))) + `(cursor ((t (:background ,base08)))) + `(default ((t (:background ,base00 :foreground ,base05)))) + `(fringe ((t (:background ,base02)))) + `(gui-element ((t (:background ,base03 :foreground ,base06)))) + `(highlight ((t (:background ,base01)))) + `(link ((t (:foreground ,base0D)))) + `(link-visited ((t (:foreground ,base0E)))) + `(minibuffer-prompt ((t (:foreground ,base0D)))) + `(mode-line ((t (:background ,base02 :foreground ,base04 :box nil)))) + `(mode-line-buffer-id ((t (:foreground ,base0E :background nil)))) + `(mode-line-emphasis ((t (:foreground ,base06 :slant italic)))) + `(mode-line-highlight ((t (:foreground ,base0E :box nil :weight bold)))) + `(mode-line-inactive ((t (:background ,base01 :foreground ,base03 :box nil)))) + `(region ((t (:background ,base02)))) + `(secondary-selection ((t (:background ,base03)))) + `(error ((t (:foreground ,base08 :weight bold)))) + `(warning ((t (:foreground ,base09 :weight bold)))) + `(success ((t (:foreground ,base0B :weight bold)))) + + `(header-line ((t (:inherit mode-line :foreground ,base0E :background nil)))) + + ;; Font-lock stuff + `(font-lock-builtin-face ((t (:foreground ,base0C)))) + `(font-lock-comment-delimiter-face ((t (:foreground ,base02)))) + `(font-lock-comment-face ((t (:foreground ,base03)))) + `(font-lock-constant-face ((t (:foreground ,base09)))) + `(font-lock-doc-face ((t (:foreground ,base04)))) + `(font-lock-doc-string-face ((t (:foreground ,base03)))) + `(font-lock-function-name-face ((t (:foreground ,base0D)))) + `(font-lock-keyword-face ((t (:foreground ,base0E)))) + `(font-lock-negation-char-face ((t (:foreground ,base0B)))) + `(font-lock-preprocessor-face ((t (:foreground ,base0D)))) + `(font-lock-regexp-grouping-backslash ((t (:foreground ,base0A)))) + `(font-lock-regexp-grouping-construct ((t (:foreground ,base0E)))) + `(font-lock-string-face ((t (:foreground ,base0B)))) + `(font-lock-type-face ((t (:foreground ,base0A)))) + `(font-lock-variable-name-face ((t (:foreground ,base0C)))) + `(font-lock-warning-face ((t (:foreground ,base08)))) + + ;; linum-mode + `(linum ((t (:background ,base01 :foreground ,base03)))) + + ;; Search + `(match ((t (:foreground ,base0D :background ,base01 :inverse-video t)))) + `(isearch ((t (:foreground ,base0A :background ,base01 :inverse-video t)))) + `(isearch-lazy-highlight-face ((t (:foreground ,base0C :background ,base01 :inverse-video t)))) + `(isearch-fail ((t (:background ,base01 :inherit font-lock-warning-face :inverse-video t)))) + + ;; Flymake + `(flymake-warnline ((t (:underline ,base09 :background ,base01)))) + `(flymake-errline ((t (:underline ,base08 :background ,base01)))) + + ;; Clojure errors + `(clojure-test-failure-face ((t (:background nil :inherit flymake-warnline)))) + `(clojure-test-error-face ((t (:background nil :inherit flymake-errline)))) + `(clojure-test-success-face ((t (:background nil :foreground nil :underline ,base0B)))) + + ;; For Brian Carper's extended clojure syntax table + `(clojure-keyword ((t (:foreground ,base0A)))) + `(clojure-parens ((t (:foreground ,base06)))) + `(clojure-braces ((t (:foreground ,base0B)))) + `(clojure-brackets ((t (:foreground ,base0A)))) + `(clojure-double-quote ((t (:foreground ,base0C :background nil)))) + `(clojure-special ((t (:foreground ,base0D)))) + `(clojure-java-call ((t (:foreground ,base0E)))) + + ;; MMM-mode + `(mmm-code-submode-face ((t (:background ,base03)))) + `(mmm-comment-submode-face ((t (:inherit font-lock-comment-face)))) + `(mmm-output-submode-face ((t (:background ,base03)))) + + ;; rainbow-delimiters + `(rainbow-delimiters-depth-1-face ((t (:foreground ,base0E)))) + `(rainbow-delimiters-depth-2-face ((t (:foreground ,base0D)))) + `(rainbow-delimiters-depth-3-face ((t (:foreground ,base0C)))) + `(rainbow-delimiters-depth-4-face ((t (:foreground ,base0B)))) + `(rainbow-delimiters-depth-5-face ((t (:foreground ,base0A)))) + `(rainbow-delimiters-depth-6-face ((t (:foreground ,base09)))) + `(rainbow-delimiters-depth-7-face ((t (:foreground ,base08)))) + `(rainbow-delimiters-depth-8-face ((t (:foreground ,base03)))) + `(rainbow-delimiters-depth-9-face ((t (:foreground ,base05)))) + + ;; IDO + `(ido-subdir ((t (:foreground ,base04)))) + `(ido-first-match ((t (:foreground ,base09 :weight bold)))) + `(ido-only-match ((t (:foreground ,base08 :weight bold)))) + `(ido-indicator ((t (:foreground ,base08 :background ,base01)))) + `(ido-virtual ((t (:foreground ,base04)))) + + ;; which-function + `(which-func ((t (:foreground ,base0D :background nil :weight bold)))) + + `(trailing-whitespace ((t (:background ,base0C :foreground ,base0A)))) + `(whitespace-empty ((t (:foreground ,base08 :background ,base0A)))) + `(whitespace-hspace ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-indentation ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-line ((t (:background ,base01 :foreground ,base0F)))) + `(whitespace-newline ((t (:foreground ,base04)))) + `(whitespace-space ((t (:background ,base01 :foreground ,base04)))) + `(whitespace-space-after-tab ((t (:background ,base0A :foreground ,base08)))) + `(whitespace-space-before-tab ((t (:background ,base09 :foreground ,base08)))) + `(whitespace-tab ((t (:background ,base04 :foreground ,base04)))) + `(whitespace-trailing ((t (:background ,base08 :foreground ,base0A)))) + + ;; Parenthesis matching (built-in) + `(show-paren-match ((t (:background ,base0D :foreground ,base03)))) + `(show-paren-mismatch ((t (:background ,base09 :foreground ,base03)))) + + ;; Parenthesis matching (mic-paren) + `(paren-face-match ((t (:foreground nil :background nil :inherit show-paren-match)))) + `(paren-face-mismatch ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + `(paren-face-no-match ((t (:foreground nil :background nil :inherit show-paren-mismatch)))) + + ;; Parenthesis dimming (parenface) + `(paren-face ((t (:foreground ,base04 :background nil)))) + + `(sh-heredoc ((t (:foreground nil :inherit font-lock-string-face :weight normal)))) + `(sh-quoted-exec ((t (:foreground nil :inherit font-lock-preprocessor-face)))) + `(slime-highlight-edits-face ((t (:weight bold)))) + `(slime-repl-input-face ((t (:weight normal :underline nil)))) + `(slime-repl-prompt-face ((t (:underline nil :weight bold :foreground ,base0E)))) + `(slime-repl-result-face ((t (:foreground ,base0B)))) + `(slime-repl-output-face ((t (:foreground ,base0D :background ,base01)))) + + `(csv-separator-face ((t (:foreground ,base09)))) + + `(diff-added ((t (:foreground ,base0B)))) + `(diff-changed ((t (:foreground ,base0A)))) + `(diff-removed ((t (:foreground ,base08)))) + `(diff-header ((t (:background ,base01)))) + `(diff-file-header ((t (:background ,base02)))) + `(diff-hunk-header ((t (:background ,base01 :foreground ,base0E)))) + + `(ediff-even-diff-A ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-even-diff-B ((t (:foreground nil :background nil :inverse-video t)))) + `(ediff-odd-diff-A ((t (:foreground ,base04 :background nil :inverse-video t)))) + `(ediff-odd-diff-B ((t (:foreground ,base04 :background nil :inverse-video t)))) + + `(eldoc-highlight-function-argument ((t (:foreground ,base0B :weight bold)))) + + ;; undo-tree + `(undo-tree-visualizer-default-face ((t (:foreground ,base06)))) + `(undo-tree-visualizer-current-face ((t (:foreground ,base0B :weight bold)))) + `(undo-tree-visualizer-active-branch-face ((t (:foreground ,base08)))) + `(undo-tree-visualizer-register-face ((t (:foreground ,base0A)))) + + ;; auctex + `(font-latex-bold-face ((t (:foreground ,base0B)))) + `(font-latex-doctex-documentation-face ((t (:background ,base03)))) + `(font-latex-italic-face ((t (:foreground ,base0B)))) + `(font-latex-math-face ((t (:foreground ,base09)))) + `(font-latex-sectioning-0-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-1-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-2-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-3-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-4-face ((t (:foreground ,base0A)))) + `(font-latex-sectioning-5-face ((t (:foreground ,base0A)))) + `(font-latex-sedate-face ((t (:foreground ,base0C)))) + `(font-latex-string-face ((t (:foreground ,base0A)))) + `(font-latex-verbatim-face ((t (:foreground ,base09)))) + `(font-latex-warning-face ((t (:foreground ,base08)))) + + ;; dired+ + `(diredp-compressed-file-suffix ((t (:foreground ,base0D)))) + `(diredp-dir-heading ((t (:foreground nil :background nil :inherit heading)))) + `(diredp-dir-priv ((t (:foreground ,base0C :background nil)))) + `(diredp-exec-priv ((t (:foreground ,base0D :background nil)))) + `(diredp-executable-tag ((t (:foreground ,base08 :background nil)))) + `(diredp-file-name ((t (:foreground ,base0A)))) + `(diredp-file-suffix ((t (:foreground ,base0B)))) + `(diredp-flag-mark-line ((t (:background nil :inherit highlight)))) + `(diredp-ignored-file-name ((t (:foreground ,base04)))) + `(diredp-link-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-mode-line-flagged ((t (:foreground ,base08)))) + `(diredp-mode-line-marked ((t (:foreground ,base0B)))) + `(diredp-no-priv ((t (:background nil)))) + `(diredp-number ((t (:foreground ,base0A)))) + `(diredp-other-priv ((t (:background nil :foreground ,base0E)))) + `(diredp-rare-priv ((t (:foreground ,base08 :background nil)))) + `(diredp-read-priv ((t (:foreground ,base0B :background nil)))) + `(diredp-symlink ((t (:foreground ,base0E)))) + `(diredp-write-priv ((t (:foreground ,base0A :background nil)))) + + ;; term and ansi-term + `(term-color-black ((t (:foreground ,base02 :background ,base00)))) + `(term-color-white ((t (:foreground ,base05 :background ,base07)))) + `(term-color-red ((t (:foreground ,base08 :background ,base08)))) + `(term-color-yellow ((t (:foreground ,base0A :background ,base0A)))) + `(term-color-green ((t (:foreground ,base0B :background ,base0B)))) + `(term-color-cyan ((t (:foreground ,base0C :background ,base0C)))) + `(term-color-blue ((t (:foreground ,base0D :background ,base0D)))) + `(term-color-magenta ((t (:foreground ,base0E :background ,base0E)))) + + ;; Magit (a patch is pending in magit to make these standard upstream) + `(magit-branch ((t (:foreground ,base0B)))) + `(magit-header ((t (:inherit nil :weight bold)))) + `(magit-item-highlight ((t (:inherit highlight :background nil)))) + `(magit-log-graph ((t (:foreground ,base04)))) + `(magit-log-sha1 ((t (:foreground ,base0E)))) + `(magit-log-head-label-bisect-bad ((t (:foreground ,base08)))) + `(magit-log-head-label-bisect-good ((t (:foreground ,base0B)))) + `(magit-log-head-label-default ((t (:foreground ,base0A :box nil :weight bold)))) + `(magit-log-head-label-local ((t (:foreground ,base0D)))) + `(magit-log-head-label-remote ((t (:foreground ,base0B)))) + `(magit-log-head-label-tags ((t (:foreground ,base0C :box nil :weight bold)))) + `(magit-section-title ((t (:inherit diff-hunk-header)))) + + `(link ((t (:foreground nil :underline t)))) + `(widget-button ((t (:underline t)))) + `(widget-field ((t (:background ,base03 :box (:line-width 1 :color ,base06))))) + + ;; Compilation (most faces politely inherit from 'success, 'error, 'warning etc.) + `(compilation-column-number ((t (:foreground ,base0A)))) + `(compilation-line-number ((t (:foreground ,base0A)))) + `(compilation-message-face ((t (:foreground ,base0D)))) + `(compilation-mode-line-exit ((t (:foreground ,base0B)))) + `(compilation-mode-line-fail ((t (:foreground ,base08)))) + `(compilation-mode-line-run ((t (:foreground ,base0D)))) + + ;; Grep + `(grep-context-face ((t (:foreground ,base04)))) + `(grep-error-face ((t (:foreground ,base08 :weight bold :underline t)))) + `(grep-hit-face ((t (:foreground ,base0D)))) + `(grep-match-face ((t (:foreground nil :background nil :inherit match)))) + + `(regex-tool-matched-face ((t (:foreground nil :background nil :inherit match)))) + + ;; mark-multiple + `(mm/master-face ((t (:inherit region :foreground nil :background nil)))) + `(mm/mirror-face ((t (:inherit region :foreground nil :background nil)))) + + ;; org-mode + `(org-agenda-structure ((t (:foreground ,base0E)))) + `(org-agenda-date ((t (:foreground ,base0D :underline nil)))) + `(org-agenda-done ((t (:foreground ,base0B)))) + `(org-agenda-dimmed-todo-face ((t (:foreground ,base04)))) + `(org-block ((t (:foreground ,base09)))) + `(org-code ((t (:foreground ,base0A)))) + `(org-column ((t (:background ,base03)))) + `(org-column-title ((t (:inherit org-column :weight bold :underline t)))) + `(org-date ((t (:foreground ,base0E :underline t)))) + `(org-document-info ((t (:foreground ,base0C)))) + `(org-document-info-keyword ((t (:foreground ,base0B)))) + `(org-document-title ((t (:weight bold :foreground ,base09 :height 1.44)))) + `(org-done ((t (:foreground ,base0B)))) + `(org-ellipsis ((t (:foreground ,base04)))) + `(org-footnote ((t (:foreground ,base0C)))) + `(org-formula ((t (:foreground ,base08)))) + `(org-hide ((t (:foreground ,base03)))) + `(org-link ((t (:foreground ,base0D)))) + `(org-scheduled ((t (:foreground ,base0B)))) + `(org-scheduled-previously ((t (:foreground ,base09)))) + `(org-scheduled-today ((t (:foreground ,base0B)))) + `(org-special-keyword ((t (:foreground ,base09)))) + `(org-table ((t (:foreground ,base0E)))) + `(org-todo ((t (:foreground ,base08)))) + `(org-upcoming-deadline ((t (:foreground ,base09)))) + `(org-warning ((t (:weight bold :foreground ,base08)))) + + `(markdown-url-face ((t (:inherit link)))) + `(markdown-link-face ((t (:foreground ,base0D :underline t)))) + + `(hl-sexp-face ((t (:background ,base03)))) + `(highlight-80+ ((t (:background ,base03)))) + + ;; Python-specific overrides + `(py-builtins-face ((t (:foreground ,base09 :weight normal)))) + + ;; js2-mode + `(js2-warning-face ((t (:underline ,base09)))) + `(js2-error-face ((t (:foreground nil :underline ,base08)))) + `(js2-external-variable-face ((t (:foreground ,base0E)))) + `(js2-function-param-face ((t (:foreground ,base0D)))) + `(js2-instance-member-face ((t (:foreground ,base0D)))) + `(js2-private-function-call-face ((t (:foreground ,base08)))) + + ;; js3-mode + `(js3-warning-face ((t (:underline ,base09)))) + `(js3-error-face ((t (:foreground nil :underline ,base08)))) + `(js3-external-variable-face ((t (:foreground ,base0E)))) + `(js3-function-param-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-tag-face ((t (:foreground ,base09)))) + `(js3-jsdoc-type-face ((t (:foreground ,base0C)))) + `(js3-jsdoc-value-face ((t (:foreground ,base0A)))) + `(js3-jsdoc-html-tag-name-face ((t (:foreground ,base0D)))) + `(js3-jsdoc-html-tag-delimiter-face ((t (:foreground ,base0B)))) + `(js3-instance-member-face ((t (:foreground ,base0D)))) + `(js3-private-function-call-face ((t (:foreground ,base08)))) + + ;; nxml + `(nxml-name-face ((t (:foreground unspecified :inherit font-lock-constant-face)))) + `(nxml-attribute-local-name-face ((t (:foreground unspecified :inherit font-lock-variable-name-face)))) + `(nxml-ref-face ((t (:foreground unspecified :inherit font-lock-preprocessor-face)))) + `(nxml-delimiter-face ((t (:foreground unspecified :inherit font-lock-keyword-face)))) + `(nxml-delimited-data-face ((t (:foreground unspecified :inherit font-lock-string-face)))) + `(rng-error-face ((t (:underline ,base08)))) + + ;; RHTML + `(erb-delim-face ((t (:background ,base03)))) + `(erb-exec-face ((t (:background ,base03 :weight bold)))) + `(erb-exec-delim-face ((t (:background ,base03)))) + `(erb-out-face ((t (:background ,base03 :weight bold)))) + `(erb-out-delim-face ((t (:background ,base03)))) + `(erb-comment-face ((t (:background ,base03 :weight bold :slant italic)))) + `(erb-comment-delim-face ((t (:background ,base03)))) + + ;; Message-mode + `(message-header-other ((t (:foreground nil :background nil :weight normal)))) + `(message-header-subject ((t (:inherit message-header-other :weight bold :foreground ,base0A)))) + `(message-header-to ((t (:inherit message-header-other :weight bold :foreground ,base09)))) + `(message-header-cc ((t (:inherit message-header-to :foreground nil)))) + `(message-header-name ((t (:foreground ,base0D :background nil)))) + `(message-header-newsgroups ((t (:foreground ,base0C :background nil :slant normal)))) + `(message-separator ((t (:foreground ,base0E)))) + + ;; Jabber + `(jabber-chat-prompt-local ((t (:foreground ,base0A)))) + `(jabber-chat-prompt-foreign ((t (:foreground ,base09)))) + `(jabber-chat-prompt-system ((t (:foreground ,base0A :weight bold)))) + `(jabber-chat-text-local ((t (:foreground ,base0A)))) + `(jabber-chat-text-foreign ((t (:foreground ,base09)))) + `(jabber-chat-text-error ((t (:foreground ,base08)))) + + `(jabber-roster-user-online ((t (:foreground ,base0B)))) + `(jabber-roster-user-xa ((t :foreground ,base04))) + `(jabber-roster-user-dnd ((t :foreground ,base0A))) + `(jabber-roster-user-away ((t (:foreground ,base09)))) + `(jabber-roster-user-chatty ((t (:foreground ,base0E)))) + `(jabber-roster-user-error ((t (:foreground ,base08)))) + `(jabber-roster-user-offline ((t (:foreground ,base04)))) + + `(jabber-rare-time-face ((t (:foreground ,base04)))) + `(jabber-activity-face ((t (:foreground ,base0E)))) + `(jabber-activity-personal-face ((t (:foreground ,base0C)))) + + ;; Gnus + `(gnus-cite-1 ((t (:inherit outline-1 :foreground nil)))) + `(gnus-cite-2 ((t (:inherit outline-2 :foreground nil)))) + `(gnus-cite-3 ((t (:inherit outline-3 :foreground nil)))) + `(gnus-cite-4 ((t (:inherit outline-4 :foreground nil)))) + `(gnus-cite-5 ((t (:inherit outline-5 :foreground nil)))) + `(gnus-cite-6 ((t (:inherit outline-6 :foreground nil)))) + `(gnus-cite-7 ((t (:inherit outline-7 :foreground nil)))) + `(gnus-cite-8 ((t (:inherit outline-8 :foreground nil)))) + ;; there are several more -cite- faces... + `(gnus-header-content ((t (:inherit message-header-other)))) + `(gnus-header-subject ((t (:inherit message-header-subject)))) + `(gnus-header-from ((t (:inherit message-header-other-face :weight bold :foreground ,base09)))) + `(gnus-header-name ((t (:inherit message-header-name)))) + `(gnus-button ((t (:inherit link :foreground nil)))) + `(gnus-signature ((t (:inherit font-lock-comment-face)))) + + `(gnus-summary-normal-unread ((t (:foreground ,base0D :weight normal)))) + `(gnus-summary-normal-read ((t (:foreground ,base06 :weight normal)))) + `(gnus-summary-normal-ancient ((t (:foreground ,base0C :weight normal)))) + `(gnus-summary-normal-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-low-unread ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-read ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-low-ancient ((t (:foreground ,base04 :weight normal)))) + `(gnus-summary-high-unread ((t (:foreground ,base0A :weight normal)))) + `(gnus-summary-high-read ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ancient ((t (:foreground ,base0B :weight normal)))) + `(gnus-summary-high-ticked ((t (:foreground ,base09 :weight normal)))) + `(gnus-summary-cancelled ((t (:foreground ,base08 :background nil :weight normal)))) + + `(gnus-group-mail-low ((t (:foreground ,base04)))) + `(gnus-group-mail-low-empty ((t (:foreground ,base04)))) + `(gnus-group-mail-1 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-mail-2 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-mail-3 ((t (:foreground nil :weight normal :inherit outline-3)))) + `(gnus-group-mail-4 ((t (:foreground nil :weight normal :inherit outline-4)))) + `(gnus-group-mail-5 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-mail-6 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-mail-1-empty ((t (:inherit gnus-group-mail-1 :foreground ,base04)))) + `(gnus-group-mail-2-empty ((t (:inherit gnus-group-mail-2 :foreground ,base04)))) + `(gnus-group-mail-3-empty ((t (:inherit gnus-group-mail-3 :foreground ,base04)))) + `(gnus-group-mail-4-empty ((t (:inherit gnus-group-mail-4 :foreground ,base04)))) + `(gnus-group-mail-5-empty ((t (:inherit gnus-group-mail-5 :foreground ,base04)))) + `(gnus-group-mail-6-empty ((t (:inherit gnus-group-mail-6 :foreground ,base04)))) + `(gnus-group-news-1 ((t (:foreground nil :weight normal :inherit outline-5)))) + `(gnus-group-news-2 ((t (:foreground nil :weight normal :inherit outline-6)))) + `(gnus-group-news-3 ((t (:foreground nil :weight normal :inherit outline-7)))) + `(gnus-group-news-4 ((t (:foreground nil :weight normal :inherit outline-8)))) + `(gnus-group-news-5 ((t (:foreground nil :weight normal :inherit outline-1)))) + `(gnus-group-news-6 ((t (:foreground nil :weight normal :inherit outline-2)))) + `(gnus-group-news-1-empty ((t (:inherit gnus-group-news-1 :foreground ,base04)))) + `(gnus-group-news-2-empty ((t (:inherit gnus-group-news-2 :foreground ,base04)))) + `(gnus-group-news-3-empty ((t (:inherit gnus-group-news-3 :foreground ,base04)))) + `(gnus-group-news-4-empty ((t (:inherit gnus-group-news-4 :foreground ,base04)))) + `(gnus-group-news-5-empty ((t (:inherit gnus-group-news-5 :foreground ,base04)))) + `(gnus-group-news-6-empty ((t (:inherit gnus-group-news-6 :foreground ,base04)))) + + `(erc-direct-msg-face ((t (:foreground ,base09)))) + `(erc-error-face ((t (:foreground ,base08)))) + `(erc-header-face ((t (:foreground ,base06 :background ,base04)))) + `(erc-input-face ((t (:foreground ,base0B)))) + `(erc-keyword-face ((t (:foreground ,base0A)))) + `(erc-current-nick-face ((t (:foreground ,base0B)))) + `(erc-my-nick-face ((t (:foreground ,base0B)))) + `(erc-nick-default-face ((t (:weight normal :foreground ,base0E)))) + `(erc-nick-msg-face ((t (:weight normal :foreground ,base0A)))) + `(erc-notice-face ((t (:foreground ,base04)))) + `(erc-pal-face ((t (:foreground ,base09)))) + `(erc-prompt-face ((t (:foreground ,base0D)))) + `(erc-timestamp-face ((t (:foreground ,base0C)))) + + `(custom-variable-tag ((t (:foreground ,base0D)))) + `(custom-group-tag ((t (:foreground ,base0D)))) + `(custom-state ((t (:foreground ,base0B))))) + + + (custom-theme-set-variables + 'base16-tomorrow-dark + + `(ansi-color-names-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]) + `(ansi-term-color-vector + ;; black, base08, base0B, base0A, base0D, magenta, cyan, white + [unspecified ,base00 ,base08 ,base0B ,base0A ,base0D ,base0E ,base0D ,base05]))) + +(provide-theme 'base16-tomorrow-dark) + +;;; base16-tomorrow-dark-theme.el ends here diff --git a/emacs/themes/jdkaplan-theme.el b/emacs/themes/jdkaplan-theme.el new file mode 100644 index 0000000..25447de --- /dev/null +++ b/emacs/themes/jdkaplan-theme.el @@ -0,0 +1,24 @@ +(deftheme jdkaplan "jdkaplan's theme") +(custom-theme-set-faces + 'jdkaplan + '(default ((t (:foreground "#e4e4e4" :background "#262626" )))) + '(cursor ((t (:background "#eeeeee" )))) + '(fringe ((t (:background "#262626" )))) + '(mode-line ((t (:foreground "#eeeeee" :background "#444444" )))) + '(mode-line-inactive ((t (:foreground "#444444" :background "#1e1e1e" )))) + '(vertical-border ((t (:foreground "#444444" :background "#262626" )))) + '(region ((t (:background "#3a3a3a" )))) + '(secondary-selection ((t (:background "#1e1e1e" )))) + '(font-lock-builtin-face ((t (:foreground "#f67f4e" )))) + '(font-lock-comment-face ((t (:foreground "#aaaaaa" )))) + '(font-lock-function-name-face ((t (:foreground "#00c7ff" )))) + '(font-lock-keyword-face ((t (:foreground "#3cc93a" )))) + '(font-lock-string-face ((t (:foreground "#d4a102" )))) + '(font-lock-type-face ((t (:foreground "#e8cf0e" )))) + '(font-lock-constant-face ((t (:foreground "#b987ff" )))) + '(font-lock-variable-name-face ((t (:foreground "#00c7ff" )))) + '(minibuffer-prompt ((t (:foreground "#c7c7c7" :bold t )))) + '(font-lock-warning-face ((t (:foreground "red" :bold t )))) + ) + +(provide-theme 'jdkaplan) diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..db89104 --- /dev/null +++ b/i3/config @@ -0,0 +1,179 @@ +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. ISO 10646 = Unicode +font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 + +new_window none +new_float none +hide_edge_borders none + +for_window [class="^.*"] border pixel 0 +for_window [class="Pithos"] floating enable +for_window [class="Xfce4-notifyd"] floating enable + +# use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec i3-sensible-terminal + +# kill focused window +bindsym $mod+Shift+q kill + +# start "dmenu" (a program launcher) +bindsym $mod+d exec --no-startup-id xboomx + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal (split is vertical) orientation +bindsym $mod+z split h + +# split in vertical (split is horizontal) orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+t layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+Shift+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +bindsym $mod+c focus child + +# move the currently focused window to the scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+minus scratchpad show + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1; workspace 1 +bindsym $mod+Shift+2 move container to workspace 2; workspace 2 +bindsym $mod+Shift+3 move container to workspace 3; workspace 3 +bindsym $mod+Shift+4 move container to workspace 4; workspace 4 +bindsym $mod+Shift+5 move container to workspace 5; workspace 5 +bindsym $mod+Shift+6 move container to workspace 6; workspace 6 +bindsym $mod+Shift+7 move container to workspace 7; workspace 7 +bindsym $mod+Shift+8 move container to workspace 8; workspace 8 +bindsym $mod+Shift+9 move container to workspace 9; workspace 9 +bindsym $mod+Shift+0 move container to workspace 10; workspace 10 + +# switch to next screen +bindsym $mod+o focus output right +# move focused container to next screen +bindsym $mod+Shift+o move container to output right + +# volume +bindsym XF86AudioLowerVolume exec /usr/bin/pulseaudio-ctl down +bindsym XF86AudioRaiseVolume exec /usr/bin/pulseaudio-ctl up +bindsym XF86AudioMute exec /usr/bin/pulseaudio-ctl mute + +# screenshot +bindsym Print exec xfce4-screenshooter + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym Control+g mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status + position bottom + + colors { + background #000000 + statusline #FFFFFF + separator #333333 + #border # back # text + focused_workspace #1A1A1A #1A1A1A #FFFFFF + active_workspace #111111 #111111 #FFFFFF + inactive_workspace #000000 #000000 #FFFFFF + urgent_workspace #FF0000 #FF0000 #FFFFFF + } + +} + +set $Locker i3lock -e -i ~/images/lockscreen.png +bindsym $mod+Shift+semicolon exec --no-startup-id $Locker, mode "default" + +# startup +exec --no-startup-id xss-lock -- $Locker +exec --no-startup-id nitrogen --restore diff --git a/i3status/config b/i3status/config new file mode 100644 index 0000000..75fd815 --- /dev/null +++ b/i3status/config @@ -0,0 +1,35 @@ +general { + colors = true + interval = 1 +} + +order += "ethernet enp3s0f1" +order += "wireless wlp2s0" +order += "volume master" +order += "battery 0" +order += "tztime local" + +ethernet enp3s0f1 { + format_up = "E: %ip" + format_down = "" +} +wireless wlp2s0 { + format_up = "%essid %ip" + format_down = "W: down" +} + +battery 0 { + format = "%status %percentage" + low_threshold = 15 + threshold_type = percentage + integer_battery_capacity = true + last_full_capacity = true +} + +tztime local { + format = "%a %d %b %T" +} + +volume master { + format = "♪: %volume" +} diff --git a/zsh/.profile b/zsh/.profile new file mode 100644 index 0000000..3c0f822 --- /dev/null +++ b/zsh/.profile @@ -0,0 +1,5 @@ +export EDITOR='emacsclient --alternate-editor="" --tty' +export VISUAL=$EDITOR + +export WORKON_HOME=$HOME/.virtualenvs +source /usr/bin/virtualenvwrapper.sh diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..2bebc68 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,69 @@ +# Lines configured by zsh-newuser-install +HISTFILE=~/.config/zsh/histfile +HISTSIZE=1000000 +SAVEHIST=1000000 +DIRSTACKSIZE=100 +setopt appendhistory extendedglob nomatch +setopt autopushd pushdsilent pushdtohome histignorespace +unsetopt beep autocd notify +bindkey -e +# End of lines configured by zsh-newuser-install +# The following lines were added by compinstall + +zstyle ':completion:*' _expand completer _complete _ignored +zstyle ':completion:*' matcher-list '' 'l:|=* r:|=*' 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=** r:|=**' +zstyle :compinstall filename "$HOME/.zshrc" + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# prompt +autoload -U colors +colors + +autoload -U zmv +alias mmv='noglob zmv -W' + +if [[ $TERM =~ '256color' ]]; then + local blue="%F{81}" + local orange="%F{166}" + local purple="%F{135}" + local hotpink="%F{161}" + local green="%F{118}" + local gray="%F{241}" +else + local blue="%{$fg[cyan]%}" + local orange="%{$fg[yellow]%}" + local purple="%{$fg[magenta]%}" + local hotpink="%{$fg[red]%}" + local gray="%{$fg[white]%}" +fi + +local lbrkt="${gray}[%f" +local rbrkt="${gray}]%f" +local colon="${gray}:%f" +local user="${purple}%n%f" +local host="${blue}%m%f" +local dir="${green}%~%f" + +export PROMPT="%# " +export RPROMPT="${lbrkt}${user}${colon}${host}${colon}${dir}${rbrkt}" + +# aliases +source $HOME/.config/zsh/aliases + +source $HOME/.config/zsh/z-zsh/z.sh +function precmd () { + z --add "$(pwd -P)" +} + +# ls colors +eval $(dircolors $HOME/.config/zsh/dircolors.256dark) + +autoload -U select-word-style +select-word-style bash + +export PATH=$PATH:$HOME/bin + +[ -f ~/.profile ] && source ~/.profile diff --git a/zsh/aliases b/zsh/aliases new file mode 100644 index 0000000..753cbdc --- /dev/null +++ b/zsh/aliases @@ -0,0 +1,14 @@ +alias startx='ssh-agent startx' + +alias ls='ls --color=auto' +alias l='ls' +alias la='ls -a' +alias ll='ls -l' + +alias units='units --verbose' +alias trr='transmission-remote' + +alias s='sl' + +alias emacs='emacsclient --alternate-editor="" --tty' +alias emacs-kill='emacsclient -e "(kill-emacs)"' diff --git a/zsh/dircolors.256dark b/zsh/dircolors.256dark new file mode 100644 index 0000000..4c1b4f5 --- /dev/null +++ b/zsh/dircolors.256dark @@ -0,0 +1,218 @@ + +# Dark 256 color solarized theme for the color GNU ls utility. +# Used and tested with dircolors (GNU coreutils) 8.5 +# +# @author {@link http://sebastian.tramp.name Sebastian Tramp} +# @license http://sam.zoy.org/wtfpl/ Do What The Fuck You Want To Public License (WTFPL) +# +# More Information at +# https://github.com/seebi/dircolors-solarized + +## Documentation +# +# standard colors +# +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +# +# +# 256 color support +# see here: http://www.mail-archive.com/bug-coreutils@gnu.org/msg11030.html) +# +# Text 256 color coding: +# 38;5;COLOR_NUMBER +# Background 256 color coding: +# 48;5;COLOR_NUMBER + +## Special files + +NORMAL 00;38;5;244 # no color code at all +#FILE 00 # regular file: use no color at all +RESET 0 # reset to "normal" color +DIR 00;38;5;33 # directory 01;34 +LINK 00;38;5;37 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00 # regular file with more than one link +FIFO 48;5;230;38;5;136;01 # pipe +SOCK 48;5;230;38;5;136;01 # socket +DOOR 48;5;230;38;5;136;01 # door +BLK 48;5;230;38;5;244;01 # block device driver +CHR 48;5;230;38;5;244;01 # character device driver +ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file +SETUID 48;5;160;38;5;230 # file that is setuid (u+s) +SETGID 48;5;136;38;5;230 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky +STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable +# This is for files with execute permission: +EXEC 00;38;5;64 + +## Archives or compressed (violet + bold for compression) +.tar 00;38;5;61 +.tgz 00;38;5;61 +.arj 00;38;5;61 +.taz 00;38;5;61 +.lzh 00;38;5;61 +.lzma 00;38;5;61 +.tlz 00;38;5;61 +.txz 00;38;5;61 +.zip 00;38;5;61 +.z 00;38;5;61 +.Z 00;38;5;61 +.dz 00;38;5;61 +.gz 00;38;5;61 +.lz 00;38;5;61 +.xz 00;38;5;61 +.bz2 00;38;5;61 +.bz 00;38;5;61 +.tbz 00;38;5;61 +.tbz2 00;38;5;61 +.tz 00;38;5;61 +.deb 00;38;5;61 +.rpm 00;38;5;61 +.jar 00;38;5;61 +.rar 00;38;5;61 +.ace 00;38;5;61 +.zoo 00;38;5;61 +.cpio 00;38;5;61 +.7z 00;38;5;61 +.rz 00;38;5;61 +.apk 00;38;5;61 +.gem 00;38;5;61 + +# Image formats (yellow) +.jpg 00;38;5;136 +.JPG 00;38;5;136 #stupid but needed +.jpeg 00;38;5;136 +.gif 00;38;5;136 +.bmp 00;38;5;136 +.pbm 00;38;5;136 +.pgm 00;38;5;136 +.ppm 00;38;5;136 +.tga 00;38;5;136 +.xbm 00;38;5;136 +.xpm 00;38;5;136 +.tif 00;38;5;136 +.tiff 00;38;5;136 +.png 00;38;5;136 +.svg 00;38;5;136 +.svgz 00;38;5;136 +.mng 00;38;5;136 +.pcx 00;38;5;136 +.dl 00;38;5;136 +.xcf 00;38;5;136 +.xwd 00;38;5;136 +.yuv 00;38;5;136 +.cgm 00;38;5;136 +.emf 00;38;5;136 +.eps 00;38;5;136 +.CR2 00;38;5;136 +.ico 00;38;5;136 + +# Files of special interest (base1 + bold) +.tex 00;38;5;245 +.rdf 00;38;5;245 +.owl 00;38;5;245 +.n3 00;38;5;245 +.ttl 00;38;5;245 +.nt 00;38;5;245 +.torrent 00;38;5;245 +.xml 00;38;5;245 +*Makefile 00;38;5;245 +*Rakefile 00;38;5;245 +*build.xml 00;38;5;245 +*rc 00;38;5;245 +*1 00;38;5;245 +.nfo 00;38;5;245 +*README 00;38;5;245 +*README.txt 00;38;5;245 +*readme.txt 00;38;5;245 +.md 00;38;5;245 +*README.markdown 00;38;5;245 +.ini 00;38;5;245 +.yml 00;38;5;245 +.cfg 00;38;5;245 +.conf 00;38;5;245 +.c 00;38;5;245 +.cpp 00;38;5;245 +.cc 00;38;5;245 + +# "unimportant" files as logs and backups (base01) +.log 00;38;5;240 +.bak 00;38;5;240 +.aux 00;38;5;240 +.lof 00;38;5;240 +.lol 00;38;5;240 +.lot 00;38;5;240 +.out 00;38;5;240 +.toc 00;38;5;240 +.bbl 00;38;5;240 +.blg 00;38;5;240 +*~ 00;38;5;240 +*# 00;38;5;240 +.part 00;38;5;240 +.incomplete 00;38;5;240 +.swp 00;38;5;240 +.tmp 00;38;5;240 +.temp 00;38;5;240 +.o 00;38;5;240 +.pyc 00;38;5;240 +.class 00;38;5;240 +.cache 00;38;5;240 + +# Audio formats (orange) +.aac 00;38;5;166 +.au 00;38;5;166 +.flac 00;38;5;166 +.mid 00;38;5;166 +.midi 00;38;5;166 +.mka 00;38;5;166 +.mp3 00;38;5;166 +.mpc 00;38;5;166 +.ogg 00;38;5;166 +.ra 00;38;5;166 +.wav 00;38;5;166 +.m4a 00;38;5;166 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axa 00;38;5;166 +.oga 00;38;5;166 +.spx 00;38;5;166 +.xspf 00;38;5;166 + +# Video formats (as audio + bold) +.mov 00;38;5;166 +.mpg 00;38;5;166 +.mpeg 00;38;5;166 +.m2v 00;38;5;166 +.mkv 00;38;5;166 +.ogm 00;38;5;166 +.mp4 00;38;5;166 +.m4v 00;38;5;166 +.mp4v 00;38;5;166 +.vob 00;38;5;166 +.qt 00;38;5;166 +.nuv 00;38;5;166 +.wmv 00;38;5;166 +.asf 00;38;5;166 +.rm 00;38;5;166 +.rmvb 00;38;5;166 +.flc 00;38;5;166 +.avi 00;38;5;166 +.fli 00;38;5;166 +.flv 00;38;5;166 +.gl 00;38;5;166 +.m2ts 00;38;5;166 +.divx 00;38;5;166 +.webm 00;38;5;166 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.axv 00;38;5;166 +.anx 00;38;5;166 +.ogv 00;38;5;166 +.ogx 00;38;5;166 diff --git a/zsh/z-zsh b/zsh/z-zsh new file mode 160000 index 0000000..052a6cb --- /dev/null +++ b/zsh/z-zsh @@ -0,0 +1 @@ +Subproject commit 052a6cbbcd83c1968a11c26d75950bf455b816fb