diff --git a/core/core-company.el b/core/core-company.el index e7ab82793..3bf418bda 100644 --- a/core/core-company.el +++ b/core/core-company.el @@ -27,7 +27,6 @@ ;; NOTE: Doesn't look pretty outside of emacs-mac (use-package company-quickhelp - :when (featurep 'mac) :after company :config (company-quickhelp-mode +1)) diff --git a/core/core-popup.el b/core/core-popup.el index eca9074bb..1d3049bf2 100644 --- a/core/core-popup.el +++ b/core/core-popup.el @@ -12,21 +12,22 @@ (setq shackle-rules `(;; Util ("^\\*.+-Profiler-Report .+\\*$" :align below :size 0.3 :regexp t) - ("*esup*" :align below :size 30 :noselect t) - ("*minor-modes*" :align below :size 0.5 :noselect t) + ("*esup*" :align below :size 30 :noselect t) + ("*minor-modes*" :align below :size 0.5 :noselect t) ;; Emacs - ("*Apropos*" :align below :size 0.3) - ("*Backtrace*" :align below :size 25 :noselect t) - ("*Completions*" :align below :size 20 :noselect t) - ("*Help*" :align below :size 16 :select t) - ("*Messages*" :align below :size 15 :select t) - ("*Warnings*" :align below :size 10 :noselect t) - (compilation-mode :align below :size 15 :noselect t) - (eww-mode :align below :size 30 :select t) + ("*Pp Eval Output*" :align below :size 0.3) + ("*Apropos*" :align below :size 0.3) + ("*Backtrace*" :align below :size 25 :noselect t) + ("*Completions*" :align below :size 20 :noselect t) + ("*Help*" :align below :size 16 :select t) + ("*Messages*" :align below :size 15 :select t) + ("*Warnings*" :align below :size 10 :noselect t) + (compilation-mode :align below :size 15 :noselect t) + (eww-mode :align below :size 30 :select t) ;; vcs - ("*vc-diff*" :align below :size 15 :noselect t) - ("*vc-change-log*" :align below :size 15 :select t) - (vc-annotate-mode :same t))) + ("*vc-diff*" :align below :size 15 :noselect t) + ("*vc-change-log*" :align below :size 15 :select t) + (vc-annotate-mode :same t))) (defvar doom-popup-windows '() "A list of windows that have been opened via shackle. Do not touch this!") diff --git a/core/core-ui.el b/core/core-ui.el index ca7346529..afaf5485e 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -1,13 +1,13 @@ ;;; core-ui.el --- interface & mode-line config -(defconst doom-fringe-size 3 "Default fringe width") +(defconst doom-fringe-size '3 "Default fringe width") ;; y/n instead of yes/no (fset 'yes-or-no-p 'y-or-n-p) (setq-default indicate-buffer-boundaries nil ; don't show where buffer starts/ends - indicate-empty-lines nil ; show empty lines + indicate-empty-lines nil ; don't show empty lines fringes-outside-margins t ; switches order of fringe and margin ;; Keep cursors and highlights in current window only cursor-in-non-selected-windows nil @@ -52,6 +52,7 @@ (set-frame-font doom-default-font t) (set-face-attribute 'default t :font doom-current-font) ;; standardize fringe width + (fringe-mode doom-fringe-size) (push `(left-fringe . ,doom-fringe-size) default-frame-alist) (push `(right-fringe . ,doom-fringe-size) default-frame-alist) ;; Default frame size on startup diff --git a/core/core-workgroups.el b/core/core-workgroups.el index 2ce758a1a..90c7453da 100644 --- a/core/core-workgroups.el +++ b/core/core-workgroups.el @@ -44,8 +44,6 @@ automatically renamed to the project name.") wg-list-display-decor-previous-left "" wg-list-display-decor-previous-right "") - (add-hook 'emacs-startup-hook 'workgroups-mode) - :config ;; Remember fixed workgroup names between sessions (push 'doom-wg-names savehist-additional-variables) @@ -72,7 +70,11 @@ automatically renamed to the project name.") (defalias 'doom:switch-to-tab 'doom:switch-to-workgroup-at-index) (defalias 'doom:switch-to-tab-left 'wg-switch-to-workgroup-left) (defalias 'doom:switch-to-tab-right 'wg-switch-to-workgroup-right) - (defalias 'doom:switch-to-tab-last 'wg-switch-to-previous-workgroup)) + (defalias 'doom:switch-to-tab-last 'wg-switch-to-previous-workgroup) + + (add-hook! emacs-startup + (workgroups-mode +1) + (wg-create-workgroup wg-first-wg-name))) (provide 'core-workgroups) ;;; core-workgroups.el ends here diff --git a/core/core.el b/core/core.el index 5f00b5364..df79b298e 100644 --- a/core/core.el +++ b/core/core.el @@ -9,7 +9,7 @@ ;; doom|... A hook ;; doom*... An advising function ;; doom.... Custom prefix commands -;; ...! Macro or shortcut alias +;; ...! Macro, shortcut alias or subst defun ;; ;;; Autoloaded functions are in {core,modules}/defuns/defuns-*.el @@ -93,11 +93,12 @@ ;; Populate the load-path manually; cask shouldn't be an internal dependency (setq load-path - (! (defun --subdirs (path &optional include-self) + (! (defsubst --subdirs (path &optional include-self) (let ((result (if include-self (list path) (list)))) - (dolist (file (ignore-errors (directory-files path t "^[^.]" t))) - (when (file-directory-p file) - (push file result))) + (mapc (lambda (file) + (when (file-directory-p file) + (push file result))) + (ignore-errors (directory-files path t "^[^.]" t))) result)) (append (list doom-private-dir) (--subdirs doom-core-dir t) diff --git a/core/defuns/defuns-editor.el b/core/defuns/defuns-editor.el index ad3f8a8b6..b0b84f5b9 100644 --- a/core/defuns/defuns-editor.el +++ b/core/defuns/defuns-editor.el @@ -51,5 +51,12 @@ (evil-visual-state) (evil-goto-mark ?\])) +;;;###autoload +(defun doom/delete-forward-word () + "Delete the word in front of the cursor." + (interactive) + (evil-forward-word) + (evil-delete-backward-word)) + (provide 'defuns-editor) ;;; defuns-editor.el ends here diff --git a/core/defuns/defuns-whitespace.el b/core/defuns/defuns-whitespace.el index cc7cef9aa..9e2d3429e 100644 --- a/core/defuns/defuns-whitespace.el +++ b/core/defuns/defuns-whitespace.el @@ -181,5 +181,11 @@ spaces on either side of the point if so. Resorts to (align-regexp beg end (concat "\\(\\s-*\\)" (rxt-pcre-to-elisp regexp)) 1 1))) +;;;###autoload +(defun doom/static-reindent () + "Reindent without moving cursor." + (interactive) + (save-excursion (call-interactively 'evil-indent))) + (provide 'defuns-whitespace) ;;; defuns-whitespace.el ends here diff --git a/modules/defuns/defuns-eshell.el b/modules/defuns/defuns-eshell.el index dc20f535a..1e27ae56a 100644 --- a/modules/defuns/defuns-eshell.el +++ b/modules/defuns/defuns-eshell.el @@ -1,5 +1,7 @@ ;;; defuns-eshell.el +(require 'eshell) + (defun doom--eshell-in-prompt-p (&optional offset) (>= (- (point) (or offset 0)) (save-excursion (eshell-bol) (point)))) @@ -11,6 +13,16 @@ (concat " [" (substring branch 2) "]") ""))) +;;;###autoload +(defun doom/eshell (&optional same &rest _) + (interactive) + (let ((buf (get-buffer-create eshell-buffer-name))) + (cl-assert (and buf (buffer-live-p buf))) + (doom/popup-buffer buf) + (with-current-buffer buf + (unless (derived-mode-p 'eshell-mode) + (eshell-mode))))) + ;;;###autoload (defun doom/eshell-prompt () (concat (propertize (abbreviate-file-name (eshell/pwd)) 'face 'eshell-prompt) diff --git a/modules/module-elisp.el b/modules/module-elisp.el index 56faa5f60..d3d45e8f8 100644 --- a/modules/module-elisp.el +++ b/modules/module-elisp.el @@ -34,7 +34,7 @@ (font-lock-add-keywords nil `(("(\\(lambda\\)" (1 (doom/show-as ?λ))) - ("(\\(\\(doom\\)\\([-:/|][^) ]*\\)?\\)[) ]" (1 font-lock-builtin-face)) + ("(\\(\\(doom\\)\\([-:/|][^) ]*\\)?\\)[) \n]" (1 font-lock-builtin-face)) ;; Highlight doom macros (macros are fontified in emacs 25+) (,(concat "(\\(def-" diff --git a/modules/module-eshell.el b/modules/module-eshell.el index bc790d29d..849eea342 100644 --- a/modules/module-eshell.el +++ b/modules/module-eshell.el @@ -2,17 +2,15 @@ (use-package eshell :when IS-WINDOWS - :defer t :init - (evil-set-initial-state 'eshell-mode 'normal) + (evil-set-initial-state 'eshell-mode 'emacs) (setq eshell-directory-name (concat doom-temp-dir "/eshell") eshell-scroll-to-bottom-on-input 'all eshell-buffer-shorthand t - ;; em-glob eshell-glob-case-insensitive t eshell-error-if-no-glob t - + eshell-where-to-jump 'end ;; em-alias eshell-aliases-file (concat doom-temp-dir "/.eshell-aliases")) @@ -21,14 +19,12 @@ ;; plan 9 smart shell (require 'em-smart) - (add-to-list 'eshell-modules-list 'eshell-smart) + (push 'eshell-smart eshell-modules-list) (setq eshell-where-to-jump 'begin) (setq eshell-review-quick-commands nil) (setq eshell-smart-space-goes-to-end t) - ;; em-prompt (setq eshell-prompt-function 'doom/eshell-prompt) - (map! :map eshell-mode-map :n "i" 'doom/eshell-evil-prepend-maybe :n "I" 'doom/eshell-evil-prepend diff --git a/modules/module-haskell.el b/modules/module-haskell.el index 9868da13f..f01f34839 100644 --- a/modules/module-haskell.el +++ b/modules/module-haskell.el @@ -6,8 +6,7 @@ ("\\.cabal$" . haskell-cabal-mode)) :interpreter (("runghc" . haskell-mode) ("runhaskell" . haskell-mode)) - :init - (add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode)) + :init (add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode)) :config (def-docset! haskell-mode ("Haskell")) (def-popup! "*debug:haskell*" :size 20) @@ -16,8 +15,7 @@ (use-package inf-haskell :commands (inferior-haskell-mode inf-haskell-mode switch-to-haskell) - :config - (map! :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close)) + :config (map! :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close)) (provide 'module-haskell) ;;; module-haskell.el ends here diff --git a/modules/module-php.el b/modules/module-php.el index edd09a164..d58e0e52b 100644 --- a/modules/module-php.el +++ b/modules/module-php.el @@ -32,7 +32,6 @@ :after php-mode :config (defun php-extras-company-setup ()) ;; company will set up itself - ;; Generate php-extras documentation and completion asynchronously (unless (file-exists-p (concat php-extras-eldoc-functions-file ".el")) (async-start `(lambda () diff --git a/modules/module-processing.el b/modules/module-processing.el index f25e0107e..98e22cde5 100644 --- a/modules/module-processing.el +++ b/modules/module-processing.el @@ -4,9 +4,7 @@ :when IS-MAC :commands (processing-mode processing-find-sketch) :mode "\\.pde$" - :init - (add-hook 'processing-compilation-mode-hook 'doom|hide-mode-line) - + :init (add-hook 'processing-compilation-mode-hook 'doom|hide-mode-line) :config (def-builder! processing-mode processing-sketch-build) (def-docset! processing-mode ("Processing")) diff --git a/modules/module-rust.el b/modules/module-rust.el index 46244941c..2be621d06 100644 --- a/modules/module-rust.el +++ b/modules/module-rust.el @@ -8,7 +8,8 @@ (def-builder! toml-mode "cargo run" "Cargo.toml") (def-docset! rust-mode ("Rust"))) -(use-package flycheck-rust :after rust-mode) +(use-package flycheck-rust + :after rust-mode) (use-package racer :after rust-mode diff --git a/private/my-bindings.el b/private/my-bindings.el index ff6f0c8d2..9716bd5bb 100644 --- a/private/my-bindings.el +++ b/private/my-bindings.el @@ -1,340 +1,323 @@ ;;; my-bindings.el -(map! - "M-x" 'helm-M-x - "A-x" 'helm-M-x - "M-;" 'eval-expression - "A-;" 'eval-expression - "M-/" 'evil-commentary-line - "A-/" 'evil-commentary-line +(map! "" 'what-face + ;; Essential + "M-x" 'helm-M-x + "A-x" 'helm-M-x + "M-;" 'eval-expression + "A-;" 'eval-expression + ;; Tools + "M-/" 'evil-commentary-line + "A-/" 'evil-commentary-line + "M-b" 'doom:build + "A-`" 'os-switch-to-term + "C-`" 'doom/popup-toggle + "C-~" 'doom:repl + ;; Text-scaling + "M-0" (λ! (text-scale-set 0)) + "M-=" 'text-scale-increase + "M--" 'text-scale-decrease + ;; Simple window navigation/manipulation + "M-t" 'doom:tab-create + "M-T" 'doom/tab-display + "M-w" 'doom/close-window-or-tab + "M-W" 'delete-frame + "M-n" 'doom/new-buffer + "M-N" 'doom/new-frame + "C-j" 'evil-window-down + "C-k" 'evil-window-up + "C-h" 'evil-window-left + "C-l" 'evil-window-right + "A-j" 'doom/evil-window-resize-d + "A-k" 'doom/evil-window-resize-u + "A-h" 'doom/evil-window-resize-l + "A-l" 'doom/evil-window-resize-r + ;; Temporary escape into emacs mode + "C-" 'evil-emacs-state + :e "C-" 'evil-normal-state + ;; Switching tabs (workgroups) + :m "M-1" (λ! (doom:switch-to-tab 0)) + :m "M-2" (λ! (doom:switch-to-tab 1)) + :m "M-3" (λ! (doom:switch-to-tab 2)) + :m "M-4" (λ! (doom:switch-to-tab 3)) + :m "M-5" (λ! (doom:switch-to-tab 4)) + :m "M-6" (λ! (doom:switch-to-tab 5)) + :m "M-7" (λ! (doom:switch-to-tab 6)) + :m "M-8" (λ! (doom:switch-to-tab 7)) + :m "M-9" (λ! (doom:switch-to-tab 8)) + (:when IS-MAC + "" 'doom/backward-kill-to-bol-and-indent + "" 'backward-word + "" 'forward-word + "A-SPC" 'just-one-space + "M-a" 'mark-whole-buffer + "M-c" 'evil-yank + "M-o" 'helm-find-files + "M-q" 'evil-quit-all + "M-s" 'save-buffer + "M-v" 'clipboard-yank + "M-z" 'undo + "M-Z" 'redo + "C-M-f" 'doom:toggle-fullscreen + :m "M-j" 'doom/multi-next-line + :m "M-k" 'doom/multi-previous-line + :n "M-r" 'doom:eval-buffer + :v "M-r" 'doom:eval-region + :ni "" 'doom/dash-at-pt + ;; Textmate-esque indent shift left/right + :i "M-]" 'doom/smart-indent + :i "M-[" 'doom/dumb-dedent + ;; Restore osx text objects + :i "" 'evil-delete-backward-word + :i "" 'doom/delete-forward-word) - "M-0" (λ! (text-scale-set 0)) - "M-=" 'text-scale-increase - "M--" 'text-scale-decrease + ;;; and + :m ";" 'evil-ex + (:leader + :nv "," 'doom/helm-buffers-dwim + :nv "<" 'helm-buffers-list + :nv "." 'helm-find-files + :nv ">" 'helm-projectile-find-file-in-known-projects + :nv "/" 'helm-projectile-find-file + :nv ";" 'helm-semantic-or-imenu + :nv ":" 'helm-imenu-in-all-buffers + :nv "]" 'helm-etags-select + :nv "a" 'helm-projectile-find-other-file + :nv "m" 'helm-recentf + :nv "M" 'helm-projectile-recentf + :nv "P" 'helm-projectile-switch-project + :v "=" 'align-regexp + :nv "p" 'helm-show-kill-ring + :n "R" 'doom/reset-theme + :n "e" 'doom/flycheck-errors + :n "s" 'yas-visit-snippet-file + :n "S" 'doom/yas-find-file + :n "b" 'helm-bookmarks + :nv "l" 'doom/nlinum-toggle + :nv "Q" 'evil-save-and-quit + :nv "C-q" 'doom/kill-all-buffers-do-not-remember + ;; Quick access to config files + :nv "E" 'doom/helm-find-in-emacsd + :nv "\\" 'doom/helm-find-in-dotfiles + ;; Alternative to C-h (used as window shortcut) + :n "h" 'help-command + (:prefix "d" ; + :n "." 'doom/vcs-show-hunk + :n "/" 'vc-diff + :n "d" 'magit-status + :n "D" 'git-messenger:popup-message + :n "s" 'doom/vcs-stage-hunk + :v "s" 'magit-stage + :v "S" 'magit-stage + :n "r" 'doom/vcs-revert-hunk + :n "A" 'vc-annotate) + (:prefix "t" ; + :n "." 'doom/tmux-cd-to-here + :n "/" 'doom/tmux-cd-to-project + :v "r" 'doom:tmux) + (:prefix "o" ; + :n "o" 'os-open-in-default-program + :n "r" 'os-reveal + :n "p" 'os-reveal-project + :n "b" 'os-open-in-browser + :n "u" 'os-upload + :n "U" 'os-upload-folder + :n "t" 'os-switch-to-term + :n "T" 'os-switch-to-term-and-cd + (:when IS-MAC + :n "l" 'os-send-to-launchbar + :n "L" 'os-send-project-to-launchbar)) + (:prefix "x" ; + :n "." 'doom/org-find-file + :n "/" 'doom/org-find-file-in-notes + :n "e" 'doom/org-find-exported-file + :n "x" 'doom/org)) - ;; debug - "" 'what-face + (:localleader + :n "\\" 'doom/neotree + :n "]" 'imenu-list-minor-mode + :n "b" 'doom:build + :n "R" 'doom:repl + :v "R" 'doom:repl-eval + :v "r" 'doom:eval-region + (:prefix "r" ; + :n "e" 'emr-show-refactor-menu + :n "r" 'doom:eval-buffer)) - "M-b" 'doom:build - "M-t" 'doom:tab-create - "M-T" 'doom/tab-display - "A-`" 'os-switch-to-term - "C-`" 'doom/popup-toggle - "C-~" 'doom:repl + ;;; Evil-esque bindings + ;; Yank to EOL + :n "Y" "y$" + ;; Don't move cursor on indent + :n "=" 'doom/static-reindent + :v "=" 'evil-indent + ;; Folding + :n "zr" 'doom/evil-open-folds + :n "zm" 'doom/evil-close-folds + :n "zx" 'doom/kill-real-buffer + ;; Buffers + :n "ZX" 'bury-buffer + :n "]b" 'doom/next-real-buffer + :n "[b" 'doom/previous-real-buffer + ;; Diffs + :m "]d" 'doom/vcs-next-hunk + :m "[d" 'doom/vcs-prev-hunk + :m "]e" 'doom/flycheck-next-error + :m "[e" 'doom/flycheck-previous-error + ;; Switch tabs + :n "]w" 'doom:switch-to-tab-right + :n "[w" 'doom:switch-to-tab-left + :m "gt" 'doom:switch-to-tab-right + :m "gT" 'doom:switch-to-tab-left + ;; Increment/decrement number under cursor + :n "g=" 'evil-numbers/inc-at-pt + :n "g-" 'evil-numbers/dec-at-pt + ;; NOTE: Helm is too bulky for ffap (which I use for quick file navigation) + :n "gf" (λ! (helm-mode -1) (call-interactively 'find-file-at-point) (helm-mode 1)) + ;; Navigation + :nv "K" 'smart-up + :m "gD" 'doom/find-def + :n "gp" 'doom/reselect-paste + :n "gc" 'evil-commentary + :n "gx" 'evil-exchange + :n "gr" 'doom:eval-region + :n "gR" 'doom:eval-buffer + :v "gR" 'doom:eval-region-and-replace + :m "g]" 'smart-right + :m "g[" 'smart-left + :v "@" 'doom/evil-macro-on-all-lines + :n "g@" 'doom/evil-macro-on-all-lines + ;; Repeat in visual mode + :v "." 'evil-repeat + ;; vnoremap < >gv + :v ">" (λ! (evil-shift-right (region-beginning) (region-end)) + (evil-normal-state) + (evil-visual-restore)) + ;; undo/redo for regions (NOTE: Buggy!) + :nv "u" 'undo-tree-undo + :nv "C-r" 'undo-tree-redo + ;; paste from recent yank register (which isn't overwritten) + :v "C-p" "\"0p" - "M-w" 'doom/close-window-or-tab - "M-W" 'delete-frame - "M-n" 'doom/new-buffer - "M-N" 'doom/new-frame + (:map evil-window-map ; prefix "C-w" + ;; Navigation + "C-h" 'evil-window-left + "C-j" 'evil-window-down + "C-k" 'evil-window-up + "C-l" 'evil-window-right + "C-w" 'ace-window + ;; Jump to new splits + "s" 'doom/evil-window-split + "v" 'doom/evil-window-vsplit + ;; Swapping windows + "H" 'doom/evil-window-move-l + "J" 'doom/evil-window-move-d + "K" 'doom/evil-window-move-u + "L" 'doom/evil-window-move-r + "C-S-w" (λ! (ace-window 4)) + ;; Window undo/redo + "u" 'doom/undo-window-change + "C-u" 'doom/undo-window-change + "C-r" 'doom/redo-window-change + ;; Delete window + "C-C" (λ! (ace-window 16))) - ;; Simpler window navigation - "C-j" 'evil-window-down - "C-k" 'evil-window-up - "C-h" 'evil-window-left - "C-l" 'evil-window-right + ;;; Plugins + ;; evil-visual-star + :v "*" 'evil-visualstar/begin-search-forward + :v "#" 'evil-visualstar/begin-search-backward - "A-j" 'doom/evil-window-resize-d - "A-k" 'doom/evil-window-resize-u - "A-h" 'doom/evil-window-resize-l - "A-l" 'doom/evil-window-resize-r + ;; evil-multiedit + :v "R" 'evil-multiedit-match-all + :n "M-C-D" 'evil-multiedit-restore + :nv "M-d" 'evil-multiedit-match-and-next + :nv "M-D" 'evil-multiedit-match-and-prev + (:map evil-multiedit-state-map + :v "RET" 'evil-multiedit-toggle-or-restrict-region) - "C-" 'evil-emacs-state - :e "C-" 'evil-normal-state + ;; evil-surround + :v "S" 'evil-surround-region + :o "s" 'evil-surround-edit + :o "S" 'evil-Surround-edit - :m "M-1" (λ! (doom:switch-to-tab 0)) - :m "M-2" (λ! (doom:switch-to-tab 1)) - :m "M-3" (λ! (doom:switch-to-tab 2)) - :m "M-4" (λ! (doom:switch-to-tab 3)) - :m "M-5" (λ! (doom:switch-to-tab 4)) - :m "M-6" (λ! (doom:switch-to-tab 5)) - :m "M-7" (λ! (doom:switch-to-tab 6)) - :m "M-8" (λ! (doom:switch-to-tab 7)) - :m "M-9" (λ! (doom:switch-to-tab 8)) + ;; expand-region + :v "v" 'er/expand-region + :v "V" 'er/contract-region - (:when IS-MAC - "" 'backward-word - "" 'forward-word - "" 'doom/backward-kill-to-bol-and-indent - "A-SPC" 'just-one-space - "M-a" 'mark-whole-buffer - "M-c" 'evil-yank - "M-o" 'helm-find-files - "M-q" 'evil-quit-all - "M-s" 'save-buffer - "M-v" 'clipboard-yank - "M-z" 'undo - "M-Z" 'redo - "C-M-f" 'doom:toggle-fullscreen + ;; evil-matchit + :m "%" 'evilmi-jump-items - :m "M-j" 'doom/multi-next-line - :m "M-k" 'doom/multi-previous-line + ;; hide-show + :m [tab] (λ! (if (ignore-errors (hs-already-hidden-p)) + (hs-toggle-hiding) + (call-interactively 'evilmi-jump-items))) + ;; rotate-text + :n "!" 'rotate-text - :n "M-r" 'doom:eval-buffer - :v "M-r" 'doom:eval-region + ;; auto-yasnippet + :i "" 'aya-expand + :nv "" 'aya-create - :ni "" 'doom/dash-at-pt + ;; yasnippet + (:map yas-minor-mode-map + :i [(tab)] 'yas-expand + :v "" 'doom/yas-insert-snippet) - ;; Textmate-esque indent shift left/right - :i "M-]" 'doom/smart-indent - :i "M-[" 'doom/dumb-dedent + ;; company-mode and vim-like omni-complete + :i "C-SPC" 'doom/company-complete + (:prefix "C-x" + :i "C-l" 'doom/company-whole-lines + :i "C-k" 'doom/company-dict-or-keywords + :i "C-f" 'company-files + :i "C-]" 'company-tags + :i "s" 'company-ispell + :i "C-s" 'company-yasnippet + :i "C-o" 'company-capf + :i "C-n" 'company-dabbrev-code + :i "C-p" (λ! (let ((company-selection-wrap-around t)) + (call-interactively 'company-dabbrev-code) + (company-select-previous-or-abort)))) - ;; Restore osx text objects - :i "" 'evil-delete-backward-word - :i "" (λ! (evil-forward-word) (evil-delete-backward-word))) + (:after company + (:map company-active-map + "C-o" 'company-search-kill-others + "C-n" 'company-select-next + "C-p" 'company-select-previous + "C-h" 'company-quickhelp-manual-begin + "C-S-h" 'company-show-doc-buffer + "C-S-s" 'company-search-candidates + "C-s" 'company-filter-candidates + "C-SPC" 'company-complete-common-or-cycle + [tab] 'doom/company-complete-common-or-complete-full + "" 'company-select-previous + [escape] (λ! (company-abort) (evil-normal-state 1)) + "" 'helm-company) + (:map company-search-map + "C-n" 'company-search-repeat-forward + "C-p" 'company-search-repeat-backward + [escape] 'company-search-abort)) - :m ";" 'evil-ex - (:leader - :nv "," 'doom/helm-buffers-dwim - :nv "<" 'helm-buffers-list - :nv "." 'helm-find-files - :nv ">" 'helm-projectile-find-file-in-known-projects - :nv "/" 'helm-projectile-find-file - :nv ";" 'helm-semantic-or-imenu - :nv ":" 'helm-imenu-in-all-buffers - :nv "]" 'helm-etags-select - :nv "a" 'helm-projectile-find-other-file - :nv "m" 'helm-recentf - :nv "M" 'helm-projectile-recentf ; recent PROJECT files - :nv "P" 'helm-projectile-switch-project - :v "=" 'align-regexp + ;; help-mode + (:after help-mode + (:map help-map + "e" 'doom/popup-messages) + (:map help-mode-map + :n "]]" 'help-go-forward + :n "[[" 'help-go-back)) - :n "h" 'help-command - :nv "p" 'helm-show-kill-ring - :n "R" 'doom/reset-theme - :n "e" 'doom/flycheck-errors - :n "s" 'yas-visit-snippet-file - :n "S" 'doom/yas-find-file - :n "D" 'vc-annotate - (:prefix "d" - :n "." 'doom/vcs-show-hunk - :n "/" 'vc-diff - :n "s" 'doom/vcs-stage-hunk - :n "r" 'doom/vcs-revert-hunk) - - :n "b" 'helm-bookmarks - :nv "l" 'doom/nlinum-toggle - - :nv "qq" 'evil-save-and-quit - :nv "QQ" 'doom/kill-all-buffers-do-not-remember - - ;; Quick access to my dotfiles and emacs.d - :nv "E" 'doom/helm-find-in-emacsd - :nv "\\" 'doom/helm-find-in-dotfiles - - ;; Tmux - (:prefix "t" - :n "." 'doom/tmux-cd-to-here - :n "/" 'doom/tmux-cd-to-project - :v "r" 'doom:tmux) - - ;; Open with O/S - :n "O" 'os-reveal - (:prefix "o" - :n "o" 'os-open-in-default-program - :n "p" 'os-reveal-project - :n "b" 'os-open-in-browser - :n "u" 'os-upload - :n "U" 'os-upload-folder - :n "l" 'os-send-to-launchbar - :n "L" 'os-send-project-to-launchbar - :n "t" 'os-switch-to-term - :n "T" 'os-switch-to-term-and-cd) - - ;; Org notes - :n "X" 'doom/org - (:prefix "x" - :n "." 'doom/org-find-file - :n "/" 'doom/org-find-file-in-notes - :n "e" 'doom/org-find-exported-file)) - - (:localleader - :n "\\" 'doom/neotree - :n "]" 'imenu-list-minor-mode - :n "b" 'doom:build - :n "R" 'doom:repl - :v "R" 'doom:repl-eval - :v "r" 'doom:eval-region - (:prefix "r" - :n "e" 'emr-show-refactor-menu - :n "r" 'doom:eval-buffer)) - - :nv "K" 'smart-up - - ;; Don't move cursor on indent - :n "=" (λ! (save-excursion (call-interactively 'evil-indent))) - :v "=" 'evil-indent - - :n "zr" 'doom/evil-open-folds - :n "zm" 'doom/evil-close-folds - :n "zx" 'doom/kill-real-buffer - :n "ZX" 'bury-buffer - - ;; These are intentionally reversed - :n "]b" 'doom/next-real-buffer - :n "[b" 'doom/previous-real-buffer - - :m "]d" 'doom/vcs-next-hunk - :m "[d" 'doom/vcs-prev-hunk - :m "]e" 'doom/flycheck-next-error - :m "[e" 'doom/flycheck-previous-error - ;; Switch tabs - :n "]w" 'doom:switch-to-tab-right - :n "[w" 'doom:switch-to-tab-left - :m "gt" 'doom:switch-to-tab-right - :m "gT" 'doom:switch-to-tab-left - - ;; Increment/decrement number under cursor - :n "g=" 'evil-numbers/inc-at-pt - :n "g-" 'evil-numbers/dec-at-pt - - ;; NOTE: Helm is too bulky for ffap (which I use for quick file navigation) - :n "gf" (λ! (helm-mode -1) - (call-interactively 'find-file-at-point) - (helm-mode 1)) - - :m "gD" 'doom/find-def - :n "gp" 'doom/reselect-paste - :n "gc" 'evil-commentary - :n "gx" 'evil-exchange - :n "gr" 'doom:eval-region - :n "gR" 'doom:eval-buffer - :v "gR" 'doom:eval-region-and-replace - :m "g]" 'smart-right - :m "g[" 'smart-left - :v "@" 'doom/evil-macro-on-all-lines - :n "g@" 'doom/evil-macro-on-all-lines - - :v "." 'evil-repeat - - ;; vnoremap < >gv - :v ">" (λ! (evil-shift-right (region-beginning) (region-end)) - (evil-normal-state) - (evil-visual-restore)) - - ;; undo/redo for regions (NOTE: Buggy!) - :nv "u" 'undo-tree-undo - :nv "C-r" 'undo-tree-redo - - :v "*" 'evil-visualstar/begin-search-forward - :v "#" 'evil-visualstar/begin-search-backward - - :n "Y" "y$" - - ;; paste from recent yank register; which isn't overwritten by deletes or - ;; other operations. - :v "C-p" "\"0p" - - :v "S" 'evil-surround-region - :v "v" 'er/expand-region - :v "V" 'er/contract-region - - ;; aliases for % - :m "%" 'evilmi-jump-items - :m [tab] (λ! (if (ignore-errors (hs-already-hidden-p)) - (hs-toggle-hiding) - (call-interactively 'evilmi-jump-items))) - - ;; Textmate-esque newlines - :i "" 'backward-delete-char-untabify - :i "" 'doom/backward-kill-to-bol-and-indent - :i "" 'evil-ret-and-indent - - ;; Emacsien motions for insert mode - :i "C-b" 'backward-word - :i "C-f" 'forward-word - - ;; escape from insert mode (more responsive than using key-chord-define) - :irv "C-g" 'evil-normal-state - - :o "s" 'evil-surround-edit - :o "S" 'evil-Surround-edit - - :n "!" 'rotate-text - - (:map evil-window-map ; prefix "C-w" - "u" 'doom/undo-window-change - - ;; Jump to new splits - "s" 'doom/evil-window-split - "v" 'doom/evil-window-vsplit - - ;; Move window in one step - "H" (λ! (doom/evil-window-move 'left)) - "J" (λ! (doom/evil-window-move 'down)) - "K" (λ! (doom/evil-window-move 'up)) - "L" (λ! (doom/evil-window-move 'right)) - - "C-u" 'doom/undo-window-change - "C-r" 'doom/redo-window-change - "C-h" 'evil-window-left - "C-j" 'evil-window-down - "C-k" 'evil-window-up - "C-l" 'evil-window-right - - "C-w" 'ace-window - "C-S-w" (λ! (ace-window 4)) ; swap windows - "C-C" (λ! (ace-window 16))) ; delete windows - - ;; `evil-multiedit' - :v "R" 'evil-multiedit-match-all - :n "M-C-D" 'evil-multiedit-restore - :nv "M-d" 'evil-multiedit-match-and-next - :nv "M-D" 'evil-multiedit-match-and-prev - (:map evil-multiedit-state-map - :v "RET" 'evil-multiedit-toggle-or-restrict-region) - - ;; `yasnippet' - :i [(tab)] 'yas-expand - :v "" 'doom/yas-insert-snippet - - ;; `auto-yasnippet' - :i "" 'aya-expand - :nv "" 'aya-create - - ;; Vim omni-complete emulation - :i "C-SPC" 'doom/company-complete - (:prefix "C-x" - :i "C-l" 'doom/company-whole-lines - :i "C-k" 'doom/company-dict-or-keywords - :i "C-f" 'company-files - :i "C-]" 'company-tags - :i "s" 'company-ispell - :i "C-s" 'company-yasnippet - :i "C-o" 'company-capf - :i "C-n" 'company-dabbrev-code - :i "C-p" (λ! (let ((company-selection-wrap-around t)) - (call-interactively 'company-dabbrev-code) - (company-select-previous-or-abort)))) - - (:after company - (:map company-active-map - "C-o" 'company-search-kill-others - "C-n" 'company-select-next - "C-p" 'company-select-previous - "C-h" 'company-quickhelp-manual-begin - "C-S-h" 'company-show-doc-buffer - "C-S-s" 'company-search-candidates - "C-s" 'company-filter-candidates - "C-SPC" 'company-complete-common-or-cycle - [tab] 'doom/company-complete-common-or-complete-full - "" 'company-select-previous - [escape] (λ! (company-abort) (evil-normal-state 1)) - "" 'helm-company) - (:map company-search-map - "C-n" 'company-search-repeat-forward - "C-p" 'company-search-repeat-backward - [escape] 'company-search-abort)) - - (:after help-mode - (:map help-map - "e" 'doom/popup-messages) - (:map help-mode-map - :n "]]" 'help-go-forward - :n "[[" 'help-go-back))) + ;;; Insert mode hacks + ;; Textmate-esque newlines + :i "" 'backward-delete-char-untabify + :i "" 'doom/backward-kill-to-bol-and-indent + :i "" 'evil-ret-and-indent + ;; Emacsien motions for insert mode + :i "C-b" 'backward-word + :i "C-f" 'forward-word + ;; escape from insert mode (more responsive than using key-chord-define) + :irv "C-g" 'evil-normal-state) ;; Common unicode characters (map! :i "A-o" (λ! (insert "ø")) diff --git a/private/my-commands.el b/private/my-commands.el index 72168483d..74b7a9e78 100644 --- a/private/my-commands.el +++ b/private/my-commands.el @@ -6,13 +6,18 @@ ;;; Custom commands ;; Emacs utilities (ex! "echo" 'doom:echo) -(ex! "minor" 'helm-describe-modes) ; list minor modes +(ex! "minor" 'helm-describe-modes) ; list minor modes +(ex! "bc[omp]" 'doom:byte-compile) +(ex! "re[load]" 'doom-reload) +(ex! "re[load]au" 'doom-reload-autoloads) + ;; Quick mapping keys to commands, allows :nmap \m !make (ex! "imap" 'doom:imap) (ex! "mmap" 'doom:mmap) (ex! "nmap" 'doom:nmap) (ex! "omap" 'doom:omap) (ex! "vmap" 'doom:vmap) + ;; Editing (ex! "@" 'doom/evil-macro-on-all-lines) (ex! "al[ign]" 'doom:align) @@ -27,14 +32,20 @@ (ex! "snip[pets]" 'doom:yas-snippets) ; open snippet (ex! "tsnip[pets]" 'doom:yas-file-templates) ; open file template (ex! "wal[ign]" 'doom:whitespace-align) ; align by spaces +(ex! "date" 'doom:insert-date) + ;; External resources -(ex! "dash" 'doom:dash) ; look up in Dash.app +(ex! "dash" 'doom:dash) ; look up in `helm-dash' +(ex! "dashi" 'doom:dash-install) ; install docset +(ex! "db" 'doom:db) +(ex! "dbu[se]" 'doom:db-select) (ex! "http" 'httpd-start) ; start http server (ex! "re[gex]" 'doom:regex) ; open re-builder (ex! "repl" 'doom:repl) ; invoke or send to repl (ex! "t[mux]" 'doom:tmux) ; send to tmux (ex! "tcd" 'doom:tmux-cd) ; cd to default-directory in tmux (ex! "x" 'doom:scratch-or-org) + ;; GIT (ex! "ga[dd]" 'doom/vcs-stage-hunk) (ex! "gbr[owse]" 'doom:git-remote-browse) ; show file in github/gitlab @@ -48,21 +59,28 @@ (ex! "k[ill]u" 'doom/kill-unreal-buffers) ; kill unreal buffers (ex! "l[ast]" 'doom/popup-last-buffer) ; pop up last popup (ex! "m[sg]" 'doom/popup-messages) ; open *messages* in popup + ;; Project navigation (ex! "a" 'helm-projectile-find-other-file) (ex! "ag" 'doom:helm-ag-search) (ex! "ag[cw]d" 'doom:helm-ag-search-cwd) (ex! "cd" 'doom:cd) (ex! "se[arch]" 'doom:helm-swoop) ; in-file search + ;; Project tools (ex! "build" 'doom:build) +(ex! "debug" 'doom:debug) +(ex! "er[rors]" 'doom/flycheck-errors) (ex! "ma[ke]" 'doom:build) + ;; File operations (ex! "mv" 'doom:file-move) (ex! "rm" 'doom:file-delete) + ;; Presentation/demo (ex! "big" 'big-mode) (ex! "full[scr]" 'doom:toggle-fullscreen) + ;; Sessions/tabs (ex! "sl[oad]" 'doom:load-session) (ex! "ss[ave]" 'doom:save-session) @@ -74,14 +92,11 @@ (ex! "tabp[rev]" 'doom:switch-to-tab-left) (ex! "tabr[ename]" 'doom:tab-rename) (ex! "tabs" 'doom/tab-display) + ;; Org-mode (ex! "att[ach]" 'doom:org-attach) ; attach file to org file (ex! "link" 'doom:org-link) (ex! "org" 'doom:org-helm-search) ; search org notes -;; Plugins -(ex! "er[rors]" 'doom/flycheck-errors) -;; Debuggers -(ex! "debug" 'doom:debug) (provide 'my-commands) ;;; my-commands.el ends here diff --git a/private/themes/doom-light-theme.el b/private/themes/doom-light-theme.el deleted file mode 100644 index 2e687e1fb..000000000 --- a/private/themes/doom-light-theme.el +++ /dev/null @@ -1,338 +0,0 @@ -;; DOOM Light -;; By Henrik Lissner - -(deftheme doom-light "A light theme for hellish emacs, inspired by Base 16") - -(let* ((c '((class color))) - - (base00 "#2b303b") - (base01 "#343d46") - (base02 "#4f5b66") - (base03 "#65737e") - (base04 "#a7adba") - (base05 "#c0c5ce") - (base06 "#dfe1e8") - (base07 "#eff1f5") - (base08 "#bf616a") - (base09 "#d08770") - (base0A "#ebcb8b") - (base0B "#a3be8c") - (base0C "#96b5b4") - (base0D "#8fa1b3") - (base0E "#b48ead") - (base0F "#ab7967") - - (bg base07) - (fg base01) - (subtle "#aab6c7") - (vsubtle "#556172") - (vvsubtle "#354152") - (dim-highlight "#3f4b56") - - (black base01) - (grey base06) - (grey-1 base05) - (grey-2 base04) - (white base07) - (white-1 base06) - (yellow base0A) - (orange base09) - (red base08) - (magenta base0F) - (violet base0E) - (blue base0D) - (blue+2 "#727280") - (cyan base0C) - (green base0B) - (green-3 "#86B20E") - (dark-cyan "#8fa1b3") - (light-cyan "#CBECFF") - - (search-bg magenta) - (search-fg black) - (search-rest-bg orange) - (search-rest-fg black) - (highlight orange) - (vertical-bar grey-2) - (current-line base06) - (selection "#535556") - (comments grey-1) - (comments-docs comments) - (builtin red) - (constants green) - (delimiters "#c0c5ce") - (functions cyan) - (keywords blue) - (methods dark-cyan) - (operators violet) - (type cyan) - (strings green) - (variables orange) - - (error-highlight red) - - (linum-bg current-line) - (linum-fg grey-1) - (linum-hl-fg blue) - (linum-hl-bg current-line) - - (modeline-fg black) - (modeline-fg-2 black) - (modeline-fg-3 black) - (modeline-fg-inactive "#80858F") - (modeline-bg grey-1) - (modeline-bg-2 grey-1) - (modeline-bg-3 grey-1) - (modeline-bg-inactive grey) - - (vc-modified grey) - (vc-added green) - (vc-deleted orange)) - - (custom-theme-set-faces - 'doom-light - - ;; Text - `(default ((,c (:foreground ,fg :background ,bg)))) - `(fringe ((,c (:foreground ,grey :background ,bg)))) - `(cursor ((,c (:background ,black)))) - `(hl-line ((,c (:background ,current-line)))) - `(region ((,c (:background ,grey-1 :foreground ,white)))) - `(highlight ((,c (:foreground ,yellow :inverse-video t)))) - `(shadow ((,c (:foreground ,blue)))) - ;; `(secondary-selection ((,c (:background ,orange)))) - ;; `(lazy-highlight ((,c (:background ,orange)))) - ;; `(match ((,c (:background ,magenta)))) - `(minibuffer-prompt ((,c (:foreground ,blue)))) - - `(error ((,c (:foreground ,red :bold t)))) - `(warning ((,c (:foreground ,yellow :bold t)))) - `(success ((,c (:foreground ,green :bold t)))) - - `(spaceline-flycheck-error ((,c (:bold t :foreground ,red)))) - `(spaceline-flycheck-warning ((,c (:bold t :foreground ,yellow)))) - `(spaceline-flycheck-info ((,c (:bold t :foreground ,green)))) - - `(hs-face ((,c (:foreground ,black :background ,grey)))) - `(hs-fringe-face ((,c (:foreground ,orange)))) - - `(font-lock-builtin-face ((,c (:foreground ,builtin)))) - `(font-lock-comment-face ((,c (:foreground ,comments)))) - `(font-lock-comment-delimiter-face ((,c (:foreground ,comments)))) - `(font-lock-doc-face ((,c (:foreground ,comments-docs)))) - `(font-lock-doc-string-face ((,c (:foreground ,comments-docs)))) - `(font-lock-constant-face ((,c (:foreground ,constants)))) - `(font-lock-function-name-face ((,c (:foreground ,functions)))) - `(font-lock-keyword-face ((,c (:foreground ,keywords)))) - `(font-lock-string-face ((,c (:foreground ,strings)))) - `(font-lock-type-face ((,c (:foreground ,type)))) - `(font-lock-variable-name-face ((,c (:foreground ,variables)))) - `(font-lock-warning-face ((,c (:foreground ,red)))) - `(font-lock-negation-char-face ((,c (:foreground ,operators)))) - `(font-lock-preprocessor-char-face ((,c (:foreground ,operators)))) - `(font-lock-regexp-grouping-backslash ((,c (:foreground ,operators)))) - `(font-lock-regexp-grouping-construct ((,c (:foreground ,operators)))) - - `(bold ((,c (:weight bold :foreground ,black)))) - `(italic ((,c (:slant italic :foreground ,grey)))) - `(bold-italic ((,c (:weight bold :slant italic :foreground ,white)))) - - `(trailing-whitespace ((,c (:background "#884444")))) - `(whitespace-tab ((,c (:foreground ,grey-2)))) - `(whitespace-newline ((,c (:foreground ,grey-2)))) - `(whitespace-trailing ((,c (:background ,grey-2)))) - - `(vertical-border ((,c (:foreground ,vertical-bar :background ,vertical-bar)))) - - ;; `(linum ((,c (:foreground ,linum-fg :bold nil :height 0.9)))) - `(linum ((,c (:foreground ,linum-fg :bold nil :height 0.8)))) - `(doom-linum-highlight-face ((,c (:inherit linum :bold t :foreground ,linum-hl-fg)))) - `(show-paren-match ((,c (:foreground ,magenta :bold t :inverse-video t)))) - - ;; Modeline - `(mode-line ((,c (:foreground ,modeline-fg :background ,modeline-bg)))) - `(mode-line-inactive ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) - `(mode-line-is-modified ((,c (:foreground ,red :background nil :bold t)))) - `(mode-line-buffer-file ((,c (:foreground ,modeline-fg)))) - `(mode-line-count-face ((,c (:foreground ,black :background ,magenta :bold t)))) - `(powerline-active1 ((,c (:foreground ,modeline-fg-2 :background ,modeline-bg-2)))) - `(powerline-active2 ((,c (:foreground ,modeline-fg-3 :background ,modeline-bg-3)))) - `(powerline-inactive1 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) - `(powerline-inactive2 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) - - `(spaceline-flycheck-error ((,c (:underline nil :foreground ,black :background ,red)))) - `(spaceline-flycheck-warning ((,c (:underline nil :foreground ,black :background ,yellow)))) - `(spaceline-flycheck-info ((,c (:underline nil :foreground ,black :background ,green)))) - `(spaceline-highlight-face ((,c (:foreground ,black :background ,highlight)))) - - ;; Search - `(isearch ((,c (:foreground ,search-fg :background ,search-bg)))) - `(isearch-lazy-highlight-face ((,c (:foreground ,search-rest-fg :background ,search-rest-bg)))) - - `(doom-todo-face ((,c (:foreground ,yellow :bold t)))) - `(doom-fixme-face ((,c (:foreground ,red :bold t)))) - `(doom-note-face ((,c (:foreground ,cyan :bold t)))) - - `(evil-ex-substitute-replacement ((,c (:foreground ,magenta :background ,black :bold t)))) - `(evil-search-highlight-persist-highlight-face ((,c (:background ,search-rest-bg)))) - - - ;; plugin-specific - ;; ***************************************************************************************** - - `(reb-match-0 ((,c (:foreground ,orange :inverse-video t)))) - `(reb-match-1 ((,c (:foreground ,magenta :inverse-video t)))) - `(reb-match-2 ((,c (:foreground ,green :inverse-video t)))) - `(reb-match-3 ((,c (:foreground ,yellow :inverse-video t)))) - - ;; neotree - `(neo-root-dir-face ((,c (:foreground ,cyan)))) - `(neo-file-link-face ((,c (:foreground ,black)))) - `(neo-dir-link-face ((,c (:foreground ,blue)))) - `(neo-expand-btn-face ((,c (:foreground ,magenta)))) - - ;; company-mode - `(company-tooltip ((,c (:background ,black :foreground ,fg)))) - `(company-tooltip-common ((,c (:foreground ,orange)))) - `(company-tooltip-search ((,c (:foreground ,search-fg :background ,highlight)))) - `(company-tooltip-selection ((,c (:background ,selection)))) - `(company-tooltip-mouse ((,c (:background ,magenta :foreground ,bg)))) - `(company-scrollbar-bg ((,c (:background ,black)))) - `(company-scrollbar-fg ((,c (:background ,orange)))) - `(company-preview ((,c (:foreground ,orange)))) - `(company-preview-common ((,c (:foreground ,magenta :background ,grey-1)))) - `(company-preview-search ((,c (:inherit company-tooltip-search)))) - - `(popup ((,c (:inherit company-tooltip)))) - `(popup-tip-face ((,c (:inherit company-tooltip)))) - - ;; evil-snipe - `(evil-snipe-first-match-face ((,c (:foreground ,search-fg :background ,search-bg)))) - `(evil-snipe-matches-face ((,c (:foreground ,search-bg :underline t)))) - - ;; Volatile highlights - `(vhl/default-face ((,c (:background ,grey-2)))) - - ;; VCS - `(diff-hl-change ((,c (:foreground ,vc-modified)))) - `(diff-hl-delete ((,c (:foreground ,vc-deleted)))) - `(diff-hl-insert ((,c (:foreground ,vc-added)))) - `(git-gutter+-modified ((,c (:foreground ,vc-modified :background nil)))) - `(git-gutter+-added ((,c (:foreground ,vc-added :background nil)))) - `(git-gutter+-deleted ((,c (:foreground ,vc-deleted :background nil)))) - - ;; Rainbow delimiters - `(rainbow-delimiters-depth-1-face ((,c (:bold t :foreground ,magenta)))) - `(rainbow-delimiters-depth-2-face ((,c (:bold t :foreground ,red)))) - `(rainbow-delimiters-depth-3-face ((,c (:bold t :foreground ,cyan)))) - `(rainbow-delimiters-depth-4-face ((,c (:bold t :foreground ,green)))) - `(rainbow-delimiters-depth-5-face ((,c (:bold t :foreground ,yellow)))) - `(rainbow-delimiters-unmatched-face ((,c (:foreground ,orange :inverse-video t)))) - - `(flyspell-incorrect ((,c (:underline (:style wave :color ,error-highlight) :inherit unspecified)))) - - ;; Helm - `(helm-source-header ((,c (:background ,current-line :foreground ,grey-1)))) - `(helm-selection ((,c (:background ,current-line)))) - `(helm-swoop-target-line-face ((,c (:foreground ,highlight :inverse-video t)))) - `(helm-match ((,c (:foreground ,blue)))) - - `(helm-ff-file ((,c (:foreground ,black)))) - `(helm-ff-prefix ((,c (:foreground ,magenta)))) - `(helm-ff-dotted-directory ((,c (:foreground ,grey-1)))) - `(helm-ff-directory ((,c (:foreground ,orange :bold t)))) - `(helm-ff-executable ((,c (:foreground ,white :slant italic)))) - - - ;; Avy - `(avy-lead-face-0 ((,c (:background ,orange :foreground ,black)))) - `(avy-lead-face-1 ((,c (:background ,orange :foreground ,black)))) - `(avy-lead-face-2 ((,c (:background ,orange :foreground ,black)))) - `(avy-lead-face ((,c (:background ,orange :foreground ,black)))) - - ;; lang-specific - ;; ***************************************************************************************** - ;; js2-mode - `(js2-function-param ((,c (:foreground ,variables)))) - `(js2-jsdoc-tag ((,c (:foreground ,comments :bold t)))) - - ;; markdown-mode - `(markdown-header-face ((,c (:foreground ,orange :bold t)))) - `(markdown-header-delimiter-face ((,c (:foreground ,orange :bold t)))) - `(markdown-blockquote-face ((,c (:foreground ,blue+2)))) - `(markdown-markup-face ((,c (:foreground ,cyan)))) - `(markdown-inline-face ((,c (:foreground ,cyan)))) - `(markdown-list-face ((,c (:foreground ,magenta)))) - `(markdown-pre-face ((,c (:foreground ,cyan)))) - `(markdown-header-face-1 ((,c (:inherit markdown-header-face)))) - `(markdown-header-face-2 ((,c (:inherit markdown-header-face)))) - `(markdown-header-face-3 ((,c (:inherit markdown-header-face)))) - `(markdown-header-face-4 ((,c (:inherit markdown-header-face)))) - `(markdown-header-face-5 ((,c (:inherit markdown-header-face)))) - `(markdown-header-face-6 ((,c (:inherit markdown-header-face)))) - ;; `(markdown-header-rule-face (:inherit shadow)) - ;; `(markdown-italic-face (:inherit italic)) - ;; `(markdown-link-face (:inherit shadow)) - ;; `(markdown-link-title-face (:inherit link)) - ;; `(markdown-url-face (:inherit link)) - - ;; org-mode - `(variable-pitch ((,c (:font "DejaVu Sans" :height 1.0)))) - `(fixed-pitch ((,c (:font "Hack" :height 1.0)))) - `(org-tag ((,c (:foreground ,grey-1)))) - ;; `(org-ellipsis ((,c (:inherit hs-face)))) - - `(org-table ((,c (:foreground ,cyan)))) - `(org-quote ((,c (:slant italic :foreground ,grey :background ,current-line)))) - `(org-document-info ((,c (:foreground ,orange)))) - `(org-document-info-keyword ((,c (:foreground ,grey-1)))) - `(org-meta-line ((,c (:background ,current-line :foreground ,vsubtle)))) - `(org-block-begin-line ((,c (:background ,current-line :foreground ,vsubtle)))) - `(org-block-end-line ((,c (:inherit org-block-begin-line)))) - - `(org-document-title ((,c (:foreground ,cyan :height 1.2 :bold t)))) - `(org-level-1 ((,c (:background ,current-line :foreground "#222222" :bold t)))) - `(org-level-2 ((,c ( :foreground "#444444" :bold t)))) - `(org-level-3 ((,c ( :foreground "#888888" :bold t)))) - `(org-level-4 ((,c ( :foreground ,violet :bold t)))) - `(org-level-5 ((,c ( :foreground ,orange)))) - `(org-level-6 ((,c ( :foreground ,blue+2)))) - ;;`(org-level-7 ((,c ()))) - ;;`(org-level-8 ((,c ()))) - ;;`(org-checkbox ((,class (:box (:line-width 1 :style released-button))))) - - `(org-code ((,c (:foreground ,orange)))) - `(org-verbatim ((,c (:foreground ,green)))) - `(org-formula ((,c (:foreground ,cyan)))) - `(org-list-dt ((,c (:foreground ,cyan :bold t)))) - `(org-footnote ((,c (:foreground ,orange)))) - - `(org-link ((,c (:underline t :foreground ,green :bold inherit)))) - `(org-date ((,c (:foreground ,violet)))) - `(org-todo ((,c (:foreground ,orange :bold inherit)))) - `(org-done ((,c (:foreground ,green :bold inherit)))) - `(org-headline-done ((,c (:foreground ,grey-1 :strike-through t :bold nil)))) - `(org-special-keyword ((,c (:foreground ,magenta)))) - `(org-checkbox-statistics-todo ((,c (:inherit org-todo)))) - `(org-checkbox-statistics-done ((,c (:inherit org-done)))) - - ;; DOOM custom org faces - `(org-headline-todo ((,c (:foreground ,dark-cyan :bold nil)))) - `(org-block ((,c (:background ,current-line)))) - `(org-block-background ((,c (:background ,current-line)))) - `(org-todo-high ((,c (:foreground ,orange :bold inherit)))) - `(org-todo-vhigh ((,c (:foreground ,magenta :bold inherit)))) - `(org-list-bullet ((,c (:foreground ,orange :bold t)))) - `(org-whitespace ((,c (:inherit fixed-pitch)))) - `(org-todo-checkbox ((,c (:inherit variable-pitch)))) - - )) - - -;; ***************************************************************************************** - -(provide-theme 'doom-light) - -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/private/themes/doom-one-light-theme.el b/private/themes/doom-one-light-theme.el new file mode 100644 index 000000000..66527222d --- /dev/null +++ b/private/themes/doom-one-light-theme.el @@ -0,0 +1,408 @@ +;;; doom-one-light-theme.el + +(deftheme doom-one-light + "A dark theme for hellish emacs, inspired by Atom One Light") + +;; Color helper functions +;; Shamelessly *borrowed* from solarized +(defun doom-name-to-rgb (color &optional frame) + (mapcar (lambda (x) (/ x (float (car (color-values "#ffffff"))))) + (color-values color frame))) + +(defun doom-blend (color1 color2 alpha) + (apply (lambda (r g b) (format "#%02x%02x%02x" (* r 255) (* g 255) (* b 255))) + (--zip-with (+ (* alpha it) (* other (- 1 alpha))) + (doom-name-to-rgb color1) + (doom-name-to-rgb color2)))) + +(defun doom-darken (color alpha) + (doom-blend color "#000000" (- 1 alpha))) + +(defun doom-lighten (color alpha) + (doom-blend color "#FFFFFF" (- 1 alpha))) + + +(when (display-graphic-p) + (defface doom-default '((t (:inherit default))) + "Face for source code windows." + :group 'doom) + + (defface doom-fringe '((t (:inherit doom-default))) + "Face for source code window fringes." + :group 'doom) + + (defface doom-minibuffer-active '((t (:inherit mode-line))) + "Face for active minibuffer. See `doom-enable-bright-minibuffer'." + :group 'doom) + + (defface doom-linum '((t (:inherit linum))) + "Another linum face for darker windows (like popups)." + :group 'doom) + + (defface doom-nlinum-highlight '((t (:inherit linum))) + "A face for the nlinum overlay on the current line." + :group 'doom) + + ;; Brighten up code buffers; darken special and popup buffers + (put 'face-remapping-alist 'permanent-local t) + (make-variable-buffer-local 'face-remapping-alist) + + (defun doom|brighten-buffer (&rest _) + (setq-local face-remapping-alist + '((default doom-default) + (fringe doom-default) + (linum doom-linum)))) + (add-hook 'find-file-hook 'doom|brighten-buffer) + + ;; Brighter minibuffer when active + no fringe in minibuffer + (defun doom|brighten-minibuffer () + (with-selected-window (minibuffer-window) + (setq-local face-remapping-alist + '((default doom-minibuffer-active))))) + + (add-hook 'minibuffer-setup-hook 'doom|brighten-minibuffer)) + + +(let ((c '((class color) (min-colors 89))) + (bold t) + (italic t) + + (black "#373a42") + (white "#FFFFFF") + (grey "#373a47") + (grey-l "#d0d0d1") + (grey-d "#586470") + (grey-dd "#20272e") + (yellow "#E2C770") + (yellow-d "#CDB464") + (orange "#E69055") + (red "#ff665c") + (magenta "#DC79DC") + (violet "#9C91E4") + (violet-d "#7C71C4") + (cyan "#46D9FF") + (cyan-d "#8FA1B3") + (blue "#0087bc") + (blue-l "#007ff3") + (blue-d "#00437F") + (green "#7bc275") + (green-d "#86B20E")) + + (let* ((bg "#fafafa") + (bg-l "#dadadb") + (bg-d "#f2f2f2") + (fg "#282929") + + (highlight blue) + (vertical-bar "#d1d1d2") + (current-line bg-d) + (selection blue-d) + (builtin magenta) + (comments grey-l) + (doc-comments "#7F7F8A") + (constants green) + (delimiters violet) + (functions blue) + (keywords blue) + (methods cyan-d) + (operators magenta) + (type yellow) + (strings green) + (variables cyan) + ;; main search regions + (search-bg blue) + (search-fg black) + ;; other search regions + (search-rest-bg grey-d) + (search-rest-fg blue) + ;; line number column + (linum-bg bg-d) + (linum-fg grey-l) + (linum-hl-bg bg-d) + (linum-hl-fg grey-d) + ;; mode line + (modeline-fg grey-d) + (modeline-fg-l blue) + (modeline-bg bg-d) + (modeline-fg-inactive grey) + (modeline-bg-inactive grey-l) + ;; vcs + (vc-modified yellow-d) + (vc-added green) + (vc-deleted red)) + + (custom-theme-set-faces + 'doom-one-light + ;; Doom faces + `(doom-default ((,c (:inherit default :background ,bg)))) + `(doom-minibuffer-active ((,c (:background ,bg)))) + `(doom-linum ((,c (:inherit linum :background ,bg)))) + `(doom-nlinum-highlight ((,c (:inherit linum :foreground ,linum-hl-fg :background ,current-line)))) + `(doom-flycheck-error ((,c (:underline nil :foreground ,black :background ,red)))) + `(doom-flycheck-warning ((,c (:underline nil :foreground ,black :background ,yellow)))) + `(doom-flycheck-info ((,c (:underline nil :foreground ,black :background ,green)))) + ;; Base + `(bold ((,c (:weight ,(if bold 'bold 'normal))))) + `(italic ((,c (:slant ,(if italic 'italic 'normal))))) + `(bold-italic ((,c (:weight ,(if bold 'bold 'normal) :slant ,(if italic 'italic 'normal) :foreground ,white)))) + ;; Global + `(default ((,c (:background ,bg-d :foreground ,fg)))) + `(fringe ((,c (:inherit doom-default :foreground ,comments)))) + `(region ((,c (:background ,selection :foreground ,white)))) + `(highlight ((,c (:background ,blue :foreground ,black)))) + `(hl-line ((,c (:background ,current-line)))) + `(cursor ((,c (:background ,white)))) + `(shadow ((,c (:foreground ,violet)))) + `(minibuffer-prompt ((,c (:foreground ,blue)))) + `(tooltip ((,c (:background ,black :foreground ,fg)))) + `(error ((,c (:foreground ,red)))) + `(warning ((,c (:foreground ,yellow)))) + `(success ((,c (:foreground ,green)))) + ;;`(secondary-selection ((,c (:background ,orange)))) + ;;`(lazy-highlight ((,c (:background ,orange)))) + `(match ((,c (:foreground ,magenta :background ,black :bold ,bold)))) + `(trailing-whitespace ((,c (:background ,doc-comments)))) + `(vertical-border ((,c (:foreground ,vertical-bar :background ,vertical-bar)))) + `(show-paren-match ((,c (:foreground ,magenta :inverse-video t)))) + `(linum ((,c (:foreground ,linum-fg :background ,bg-d :bold nil)))) + `(font-lock-builtin-face ((,c (:foreground ,builtin)))) + `(font-lock-comment-face ((,c (:foreground ,comments)))) + `(font-lock-comment-delimiter-face ((,c (:foreground ,comments)))) + `(font-lock-doc-face ((,c (:foreground ,doc-comments)))) + `(font-lock-doc-string-face ((,c (:foreground ,doc-comments)))) + `(font-lock-constant-face ((,c (:foreground ,constants)))) + `(font-lock-function-name-face ((,c (:foreground ,functions)))) + `(font-lock-keyword-face ((,c (:foreground ,keywords)))) + `(font-lock-string-face ((,c (:foreground ,strings)))) + `(font-lock-type-face ((,c (:foreground ,type)))) + `(font-lock-variable-name-face ((,c (:foreground ,variables)))) + `(font-lock-warning-face ((,c (:inherit warning)))) + `(font-lock-negation-char-face ((,c (:foreground ,operators :bold ,bold)))) + `(font-lock-preprocessor-char-face ((,c (:foreground ,operators :bold ,bold)))) + `(font-lock-regexp-grouping-backslash ((,c (:foreground ,operators :bold ,bold)))) + `(font-lock-regexp-grouping-construct ((,c (:foreground ,operators :bold ,bold)))) + ;; Modeline + `(mode-line ((,c (:foreground ,modeline-fg :background ,modeline-bg)))) + `(mode-line-inactive ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) + `(spaceline-highlight-face ((,c (:foreground ,black :background ,yellow)))) + `(powerline-active1 ((,c (:foreground ,modeline-fg-l :background ,modeline-bg)))) + `(powerline-active2 ((,c (:foreground ,modeline-fg-l :background ,modeline-bg)))) + `(powerline-inactive1 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) + `(powerline-inactive2 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive)))) + ;; Custom modeline faces + `(mode-line-is-modified ((,c (:foreground ,red :bold ,bold)))) + `(mode-line-buffer-file ((,c (:foreground ,modeline-fg :bold ,bold)))) + `(mode-line-buffer-path ((,c (:foreground ,modeline-fg-l)))) + `(mode-line-count-face ((,c (:foreground ,black :background ,modeline-fg-l)))) + `(mode-line-vcs-info ((,c (:inherit success)))) + `(mode-line-vcs-warning ((,c (:inherit error)))) + ;; Search + `(isearch ((,c (:foreground ,search-fg :background ,search-bg)))) + `(isearch-lazy-highlight-face ((,c (:foreground ,search-rest-fg :background ,search-rest-bg)))) + + ;; + ;; Plugins + ;; + + ;; whitespace + `(whitespace-tab ((,c (:foreground ,grey-d)))) + `(whitespace-newline ((,c (:foreground ,grey-d)))) + `(whitespace-trailing ((,c (:background ,grey-d)))) + `(whitespace-line ((,c (:background ,current-line :foreground ,magenta)))) + ;; hide-show + `(hs-face ((,c (:foreground ,comments :background ,black)))) + `(hs-fringe-face ((,c (:foreground ,blue)))) + ;; flycheck + `(flycheck-error ((,c (:underline (:style wave :color ,red) :background ,bg-d)))) + `(flycheck-warning ((,c (:underline (:style wave :color ,yellow) :background ,bg-d)))) + `(flycheck-info ((,c (:underline (:style wave :color ,green) :background ,bg-d)))) + `(flyspell-incorrect ((,c (:underline (:style wave :color ,red) :inherit unspecified)))) + ;; indent-guide, highlight-{quoted,numbers,indentation}-mode + `(indent-guide-face ((,c (:foreground "#2F2F38")))) + `(highlight-indentation-face ((,c (:background "#222830")))) + `(highlight-indentation-current-column-face ((,c (:background "#222830")))) + `(highlight-indentation-guides-odd-face ((,c (:background ,bg)))) + `(highlight-indentation-guides-even-face ((,c (:background "#222830")))) + `(highlight-quoted-symbol ((,c (:foreground ,type)))) + `(highlight-quoted-quote ((,c (:foreground ,operators)))) + `(highlight-numbers-number ((,c (:foreground ,constants)))) + ;; re-builder + `(reb-match-0 ((,c (:foreground ,orange :inverse-video t)))) + `(reb-match-1 ((,c (:foreground ,magenta :inverse-video t)))) + `(reb-match-2 ((,c (:foreground ,green :inverse-video t)))) + `(reb-match-3 ((,c (:foreground ,yellow :inverse-video t)))) + ;; workgroups2 + `(wg-current-workgroup-face ((,c (:foreground ,black :background ,blue)))) + `(wg-other-workgroup-face ((,c (:foreground ,grey-l :background ,current-line)))) + `(wg-divider-face ((,c (:foreground ,grey-d)))) + `(wg-brace-face ((,c (:foreground ,blue)))) + ;; neotree + `(neo-root-dir-face ((,c (:foreground ,green)))) + `(neo-file-link-face ((,c (:foreground ,fg)))) + `(neo-dir-link-face ((,c (:foreground ,blue)))) + `(neo-expand-btn-face ((,c (:foreground ,blue)))) + ;; company-mode + `(company-tooltip ((,c (:inherit tooltip)))) + `(company-tooltip-common ((,c (:foreground ,blue)))) + `(company-tooltip-search ((,c (:foreground ,search-fg :background ,highlight)))) + `(company-tooltip-selection ((,c (:background ,selection)))) + `(company-tooltip-mouse ((,c (:background ,magenta :foreground ,bg)))) + `(company-tooltip-annotation ((,c (:foreground ,violet)))) + `(company-scrollbar-bg ((,c (:background ,black)))) + `(company-scrollbar-fg ((,c (:background ,blue)))) + `(company-preview ((,c (:foreground ,blue)))) + `(company-preview-common ((,c (:foreground ,magenta :background ,grey-d)))) + `(company-preview-search ((,c (:inherit company-tooltip-search)))) + ;; pos-tip + `(popup ((,c (:inherit tooltip)))) + `(popup-tip-face ((,c (:inherit tooltip)))) + ;; evil-mode + `(evil-ex-substitute-replacement ((,c (:inherit match)))) + `(evil-search-highlight-persist-highlight-face ((,c (:inherit isearch-lazy-highlight-face)))) + ;; evil-snipe + `(evil-snipe-first-match-face ((,c (:foreground ,search-fg :background ,search-bg)))) + `(evil-snipe-matches-face ((,c (:foreground ,search-bg :underline t)))) + ;; Volatile highlights + `(vhl/default-face ((,c (:background ,grey-d)))) + ;; VCS + `(diff-hl-change ((,c (:foreground ,vc-modified)))) + `(diff-hl-delete ((,c (:foreground ,vc-deleted)))) + `(diff-hl-insert ((,c (:foreground ,vc-added)))) + `(git-gutter:modified ((,c (:foreground ,vc-modified)))) + `(git-gutter:added ((,c (:foreground ,vc-added)))) + `(git-gutter:deleted ((,c (:foreground ,vc-deleted)))) + `(git-gutter+-modified ((,c (:foreground ,vc-modified :background nil)))) + `(git-gutter+-added ((,c (:foreground ,vc-added :background nil)))) + `(git-gutter+-deleted ((,c (:foreground ,vc-deleted :background nil)))) + ;; Rainbow delimiters + `(rainbow-delimiters-depth-1-face ((,c (:foreground ,blue)))) + `(rainbow-delimiters-depth-2-face ((,c (:foreground ,magenta)))) + `(rainbow-delimiters-depth-3-face ((,c (:foreground ,green)))) + `(rainbow-delimiters-depth-4-face ((,c (:foreground ,orange)))) + `(rainbow-delimiters-depth-5-face ((,c (:foreground ,violet)))) + `(rainbow-delimiters-unmatched-face ((,c (:foreground ,red :inverse-video t)))) + ;; Helm + `(helm-selection ((,c (:background ,selection :foreground ,fg)))) + `(helm-match ((,c (:foreground ,magenta :bold ,bold)))) + `(helm-source-header ((,c (:background ,current-line :foreground ,grey-l)))) + `(helm-swoop-target-line-face ((,c (:foreground ,highlight :inverse-video t)))) + `(helm-ff-file ((,c (:foreground ,fg)))) + `(helm-ff-prefix ((,c (:foreground ,magenta)))) + `(helm-ff-dotted-directory ((,c (:foreground ,grey-d)))) + `(helm-ff-directory ((,c (:foreground ,orange)))) + `(helm-ff-executable ((,c (:foreground ,white :slant italic)))) + ;; Avy + `(avy-lead-face-0 ((,c (:background ,search-bg :foreground ,search-fg)))) + `(avy-lead-face-1 ((,c (:background ,search-bg :foreground ,search-fg)))) + `(avy-lead-face-2 ((,c (:background ,search-bg :foreground ,search-fg)))) + `(avy-lead-face ((,c (:background ,search-bg :foreground ,search-fg)))) + ;; which-key + `(which-key-key-face ((,c (:foreground ,green)))) + `(which-key-group-description-face ((,c (:foreground ,violet)))) + `(which-key-command-description-face ((,c (:foreground ,blue)))) + `(which-key-local-map-description-face ((,c (:foreground ,magenta)))) + + ;; + ;; Language-specific + ;; + + ;; (css|scss)-mode + `(css-proprietary-property ((,c (:foreground ,keywords)))) + ;; js2-mode + `(js2-function-param ((,c (:foreground ,variables)))) + `(js2-function-call ((,c (:foreground ,functions)))) + `(js2-object-property ((,c (:foreground ,methods)))) + `(js2-jsdoc-tag ((,c (:foreground ,comments)))) + ;; web-mode + `(web-mode-doctype-face ((,c (:foreground ,comments)))) + `(web-mode-html-tag-face ((,c (:foreground ,methods)))) + `(web-mode-html-tag-bracket-face ((,c (:foreground ,methods)))) + `(web-mode-html-attr-name-face ((,c (:foreground ,type)))) + `(web-mode-html-entity-face ((,c (:foreground ,cyan :italic t)))) + `(web-mode-block-control-face ((,c (:foreground ,orange)))) + ;;`(web-mode-html-tag-bracket-face ((,c (:foreground ,operators)))) + ;; markdown-mode + `(markdown-header-face ((,c (:foreground ,blue :bold ,bold)))) + `(markdown-header-delimiter-face ((,c (:inherit markdown-header-face)))) + `(markdown-blockquote-face ((,c (:foreground ,violet)))) + `(markdown-markup-face ((,c (:foreground ,operators)))) + `(markdown-pre-face ((,c (:inherit markdown-markup-face)))) + `(markdown-inline-face ((,c (:foreground ,cyan)))) + `(markdown-list-face ((,c (:foreground ,magenta)))) + `(markdown-link-face ((,c (:foreground ,yellow :bold nil)))) + `(markdown-url-face ((,c (:foreground ,green :bold nil)))) + `(markdown-header-face-1 ((,c (:inherit markdown-header-face)))) + `(markdown-header-face-2 ((,c (:inherit markdown-header-face)))) + `(markdown-header-face-3 ((,c (:inherit markdown-header-face)))) + `(markdown-header-face-4 ((,c (:inherit markdown-header-face)))) + `(markdown-header-face-5 ((,c (:inherit markdown-header-face)))) + `(markdown-header-face-6 ((,c (:inherit markdown-header-face)))) + ;;`(markdown-header-rule-face (:inherit shadow)) + ;;`(markdown-italic-face (:inherit italic)) + ;;`(markdown-link-face (:inherit shadow)) + ;;`(markdown-link-title-face (:inherit link)) + ;;`(markdown-url-face (:inherit link)) + ;; org-mode + `(org-tag ((,c (:foreground ,yellow :bold nil)))) + ;;`(org-ellipsis ((,c (:inherit hs-face)))) + `(org-hide ((,c (:foreground ,bg)))) + `(org-table ((,c (:foreground ,cyan)))) + `(org-quote ((,c (:slant italic :foreground ,grey-l :background ,current-line)))) + `(org-document-info ((,c (:foreground ,orange)))) + `(org-document-info-keyword ((,c (:foreground ,grey-d)))) + `(org-meta-line ((,c (:foreground ,doc-comments)))) + `(org-block-begin-line ((,c (:background ,current-line :foreground ,doc-comments)))) + `(org-block-end-line ((,c (:inherit org-block-begin-line)))) + `(org-block-background ((,c (:background ,current-line)))) + `(org-archived ((,c (:foreground ,grey-l)))) + `(org-document-title ((,c (:foreground ,cyan)))) + `(org-level-1 ((,c (:background ,current-line :foreground ,magenta :bold ,bold)))) + `(org-level-2 ((,c ( :foreground ,cyan-d :bold ,bold)))) + `(org-level-3 ((,c ( :foreground ,violet :bold ,bold)))) + `(org-level-4 ((,c ( :foreground ,green :bold ,bold)))) + `(org-level-5 ((,c ( :foreground ,yellow)))) + `(org-level-6 ((,c ( :foreground ,blue)))) + `(org-code ((,c (:foreground ,orange)))) + `(org-verbatim ((,c (:foreground ,green)))) + `(org-formula ((,c (:foreground ,cyan)))) + `(org-list-dt ((,c (:foreground ,cyan)))) + `(org-footnote ((,c (:foreground ,orange)))) + `(org-link ((,c (:foreground ,cyan :bold inherit :underline t)))) + `(org-date ((,c (:foreground ,violet)))) + `(org-todo ((,c (:foreground ,yellow :bold inherit)))) + `(org-done ((,c (:foreground ,green :bold inherit)))) + `(org-headline-done ((,c (:foreground ,grey-l :bold nil :strike-through t)))) + `(org-special-keyword ((,c (:foreground ,magenta)))) + `(org-checkbox-statistics-todo ((,c (:inherit org-todo)))) + `(org-checkbox-statistics-done ((,c (:inherit org-done)))) + ) + + (custom-theme-set-variables + 'doom-one-light + `(vc-annotate-color-map + '((20 . ,green) + (40 . ,(doom-blend yellow green (/ 1.0 3))) + (60 . ,(doom-blend yellow green (/ 2.0 3))) + (80 . ,yellow) + (100 . ,(doom-blend orange yellow (/ 1.0 3))) + (120 . ,(doom-blend orange yellow (/ 2.0 3))) + (140 . ,orange) + (160 . ,(doom-blend magenta orange (/ 1.0 3))) + (180 . ,(doom-blend magenta orange (/ 2.0 3))) + (200 . ,magenta) + (220 . ,(doom-blend red magenta (/ 1.0 3))) + (240 . ,(doom-blend red magenta (/ 2.0 3))) + (260 . ,red) + (280 . ,(doom-blend grey red (/ 1.0 4))) + (300 . ,(doom-blend grey red (/ 2.0 4))) + (320 . ,(doom-blend grey red (/ 3.0 4))) + (340 . ,grey) + (360 . ,grey))) + `(vc-annotate-very-old-color nil) + `(vc-annotate-background ,black)))) + +(provide-theme 'doom-one-light) + +;; Local Variables: +;; no-byte-compile: t +;; End: