├── packages.el ├── themes ├── sketch-black-theme.el └── sketch-white-theme.el ├── config.el └── init.el /packages.el: -------------------------------------------------------------------------------- 1 | ;; -*- no-byte-compile: t; -*- 2 | ;;; $DOOMDIR/packages.el 3 | 4 | ;; To install a package with Doom you must declare them here and run 'doom sync' 5 | ;; on the command line, then restart Emacs for the changes to take effect -- or 6 | ;; use 'M-x doom/reload'. 7 | 8 | 9 | ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: 10 | ;(package! some-package) 11 | 12 | ;; To install a package directly from a remote git repo, you must specify a 13 | ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: 14 | ;; https://github.com/raxod502/straight.el#the-recipe-format 15 | ;(package! another-package 16 | ; :recipe (:host github :repo "username/repo")) 17 | 18 | ;; If the package you are trying to install does not contain a PACKAGENAME.el 19 | ;; file, or is located in a subdirectory of the repo, you'll need to specify 20 | ;; `:files' in the `:recipe': 21 | ;(package! this-package 22 | ; :recipe (:host github :repo "username/repo" 23 | ; :files ("some-file.el" "src/lisp/*.el"))) 24 | 25 | ;; If you'd like to disable a package included with Doom, you can do so here 26 | ;; with the `:disable' property: 27 | ;(package! builtin-package :disable t) 28 | 29 | ;; You can override the recipe of a built in package without having to specify 30 | ;; all the properties for `:recipe'. These will inherit the rest of its recipe 31 | ;; from Doom or MELPA/ELPA/Emacsmirror: 32 | ;(package! builtin-package :recipe (:nonrecursive t)) 33 | ;(package! builtin-package-2 :recipe (:repo "myfork/package")) 34 | 35 | ;; Specify a `:branch' to install a package from a particular branch or tag. 36 | ;; This is required for some packages whose default branch isn't 'master' (which 37 | ;; our package manager can't deal with; see raxod502/straight.el#279) 38 | ;(package! builtin-package :recipe (:branch "develop")) 39 | 40 | ;; Use `:pin' to specify a particular commit to install. 41 | ;(package! builtin-package :pin "1a2b3c4d5e") 42 | 43 | 44 | ;; Doom's packages are pinned to a specific commit and updated from release to 45 | ;; release. The `unpin!' macro allows you to unpin single packages... 46 | ;(unpin! pinned-package) 47 | ;; ...or multiple packages 48 | ;(unpin! pinned-package another-pinned-package) 49 | ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) 50 | ;(unpin! t) 51 | 52 | (package! expand-region) 53 | (package! paren-face) 54 | -------------------------------------------------------------------------------- /themes/sketch-black-theme.el: -------------------------------------------------------------------------------- 1 | ;;; sketch-black-theme.el --- Theme Sketch 2 | 3 | ;; Copyright (C) 2020 Daw-Ran Liou 4 | 5 | ;; Author: Daw-Ran Liou 6 | ;; Version: 0.1 7 | ;; Package-Requires: ((emacs "24")) 8 | ;; Created with ThemeCreator, https://github.com/mswift42/themecreator. 9 | 10 | 11 | ;; This program is free software: you can redistribute it and/or modify 12 | ;; it under the terms of the GNU General Public License as published by 13 | ;; the Free Software Foundation, either version 3 of the License, or 14 | ;; (at your option) any later version. 15 | 16 | ;; This program is distributed in the hope that it will be useful, 17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | ;; GNU General Public License for more details. 20 | 21 | ;; You should have received a copy of the GNU General Public License 22 | ;; along with this program. If not, see . 23 | 24 | ;; This file is not part of Emacs. 25 | 26 | ;;; Commentary: 27 | 28 | ;;; Code: 29 | 30 | (deftheme sketch-black) 31 | (let ((class '((class color) (min-colors 89))) 32 | (bg "#000000") 33 | (fg "#ffffff") 34 | (weak "#aaaaaa") 35 | (weaker "#666666") 36 | (weakest "#222222") 37 | (highlight "#fda50f") 38 | (str "#a7bca4") 39 | (success "#00ff00") 40 | (warning "#ff0000") 41 | ) 42 | (custom-theme-set-faces 43 | 'sketch-black 44 | 45 | ;; default 46 | `(default ((,class (:background ,bg :foreground ,fg)))) 47 | `(fringe ((,class (:background ,bg)))) 48 | `(highlight ((,class (:foreground ,fg :background ,highlight)))) 49 | `(region ((,class (:foreground ,fg :background ,highlight)))) 50 | `(show-paren-match ((,class (:background ,bg :foreground ,success :bold t)))) 51 | `(show-paren-mismatch ((,class (:background ,bg :foreground ,warning :bold t)))) 52 | `(minibuffer-prompt ((,class (:bold t :foreground ,fg)))) 53 | `(isearch ((,class (:bold t :foreground ,fg :background ,weak :bold t)))) 54 | `(lazy-highlight ((,class (:foreground ,fg :background ,weaker)))) 55 | `(link ((,class (:underline t)))) 56 | `(parenthesis ((,class (:background ,bg :foreground ,weak)))) 57 | `(trailing-whitespace ((,class :foreground nil :background ,warning))) 58 | `(cursor ((,class (:background ,fg :foreground ,bg)))) 59 | `(vertical-border ((,class (:foreground ,weaker)))) 60 | `(default-italic ((,class (:italic t)))) 61 | 62 | ;; mode line 63 | `(mode-line ((,class (:foreground ,fg :background ,weakest :height 0.9)))) 64 | `(mode-line-inactive ((,class (:foreground ,weaker :background ,bg :height 0.9)))) 65 | 66 | ;; font lock 67 | `(font-lock-builtin-face ((,class (:foreground ,fg)))) 68 | `(font-lock-comment-face ((,class (:inherit font-lock-string-face)))) 69 | `(font-lock-negation-char-face ((,class (:foreground ,fg)))) 70 | `(font-lock-reference-face ((,class (:foreground ,fg)))) 71 | `(font-lock-constant-face ((,class (:foreground ,fg)))) 72 | `(font-lock-doc-face ((,class (:inherit font-lock-comment-face)))) 73 | `(font-lock-function-name-face ((,class (:foreground ,fg)))) 74 | `(font-lock-keyword-face ((,class (:foreground ,fg)))) 75 | `(font-lock-string-face ((,class (:foreground ,weak)))) 76 | `(font-lock-type-face ((,class (:foreground ,fg)))) 77 | `(font-lock-variable-name-face ((,class (:foreground ,fg)))) 78 | `(font-lock-warning-face ((,class (:foreground ,fg :underline (:color ,warning :style wave))))) 79 | `(hl-fill-column-face ((,class (:background ,weakest)))) 80 | `(fill-column-indicator ((,class (:foreground ,weakest)))) 81 | 82 | ;; hl line 83 | `(hl-line ((,class (:background ,weakest)))) 84 | 85 | ;; company 86 | `(company-tooltip ((,class (:foreground ,fg :background ,weakest)))) 87 | `(company-tooltip-selection ((,class (:background ,weaker :foreground ,fg)))) 88 | `(company-tooltop-annotation ((,class (:foreground ,fg)))) 89 | `(company-tooltip-common ((,class (:foreground ,fg :bold t)))) 90 | `(company-tooltip-common-selection ((,class (:foreground ,fg :bold t)))) 91 | `(company-scrollbar-bg ((,class (:background ,weaker)))) 92 | `(company-scrollbar-fg ((,class (:background ,weak)))) 93 | 94 | ;; git gutter 95 | `(git-gutter:modified ((,class (:background ,highlight :foreground ,highlight)))) 96 | `(git-gutter:added ((,class (:background ,success :foreground ,success)))) 97 | `(git-gutter:deleted ((,class (:background ,warning :foreground ,warning)))) 98 | 99 | )) 100 | 101 | ;;;###autoload 102 | (when load-file-name 103 | (add-to-list 'custom-theme-load-path 104 | (file-name-as-directory (file-name-directory load-file-name)))) 105 | 106 | (provide-theme 'sketch-black) 107 | 108 | ;; Local Variables: 109 | ;; no-byte-compile: t 110 | ;; End: 111 | 112 | ;;; sketch-black-theme.el ends here 113 | -------------------------------------------------------------------------------- /themes/sketch-white-theme.el: -------------------------------------------------------------------------------- 1 | ;;; sketch-white-theme.el --- Theme Sketch 2 | 3 | ;; Copyright (C) 2020 Daw-Ran Liou 4 | 5 | ;; Author: Daw-Ran Liou 6 | ;; Version: 0.1 7 | ;; Package-Requires: ((emacs "24")) 8 | ;; Created with ThemeCreator, https://github.com/mswift42/themecreator. 9 | 10 | 11 | ;; This program is free software: you can redistribute it and/or modify 12 | ;; it under the terms of the GNU General Public License as published by 13 | ;; the Free Software Foundation, either version 3 of the License, or 14 | ;; (at your option) any later version. 15 | 16 | ;; This program is distributed in the hope that it will be useful, 17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | ;; GNU General Public License for more details. 20 | 21 | ;; You should have received a copy of the GNU General Public License 22 | ;; along with this program. If not, see . 23 | 24 | ;; This file is not part of Emacs. 25 | 26 | ;;; Commentary: 27 | 28 | ;;; Code: 29 | 30 | (deftheme sketch-white) 31 | (let ((class '((class color) (min-colors 89))) 32 | (fg "#111111") 33 | (bg "#ffffff") 34 | (weak "#888888") 35 | (weaker "#dddddd") 36 | (weakest "#efefef") 37 | (highlight "#fda50f") 38 | ;; (str "#0271b5") ; blue 39 | (str "#3c5e2b") ; green 40 | (success "#00ff00") 41 | (warning "#ff0000") 42 | ) 43 | (custom-theme-set-faces 44 | 'sketch-white 45 | 46 | ;; default 47 | `(default ((,class (:background ,bg :foreground ,fg)))) 48 | `(fringe ((,class (:background ,bg)))) 49 | `(highlight ((,class (:foreground ,fg :background ,highlight)))) 50 | `(region ((,class (:foreground ,fg :background ,highlight)))) 51 | `(show-paren-match ((,class (:background ,bg :foreground ,success :bold t)))) 52 | `(show-paren-mismatch ((,class (:background ,bg :foreground ,warning :bold t)))) 53 | `(minibuffer-prompt ((,class (:bold t :foreground ,fg)))) 54 | `(isearch ((,class (:bold t :foreground ,fg :background ,weak :bold t)))) 55 | `(lazy-highlight ((,class (:foreground ,fg :background ,weaker)))) 56 | `(link ((,class (:underline t)))) 57 | `(parenthesis ((,class (:background ,bg :foreground ,weak)))) 58 | `(trailing-whitespace ((,class :foreground nil :background ,warning))) 59 | `(cursor ((,class (:background ,fg :foreground ,bg)))) 60 | `(vertical-border ((,class (:foreground ,weaker)))) 61 | `(default-italic ((,class (:italic t)))) 62 | 63 | ;; mode line 64 | `(mode-line ((,class (:foreground ,fg :background ,weakest :height 0.9)))) 65 | `(mode-line-inactive ((,class (:foreground ,weaker :background ,bg :height 0.9)))) 66 | 67 | ;; font lock 68 | `(font-lock-builtin-face ((,class (:foreground ,fg)))) 69 | `(font-lock-comment-face ((,class (:inherit font-lock-string-face)))) 70 | `(font-lock-negation-char-face ((,class (:foreground ,fg)))) 71 | `(font-lock-reference-face ((,class (:foreground ,fg)))) 72 | `(font-lock-constant-face ((,class (:foreground ,fg)))) 73 | `(font-lock-doc-face ((,class (:inherit font-lock-comment-face)))) 74 | `(font-lock-function-name-face ((,class (:foreground ,fg)))) 75 | `(font-lock-keyword-face ((,class (:foreground ,fg)))) 76 | `(font-lock-string-face ((,class (:foreground ,weak)))) 77 | `(font-lock-type-face ((,class (:foreground ,fg)))) 78 | `(font-lock-variable-name-face ((,class (:foreground ,fg)))) 79 | `(font-lock-warning-face ((,class (:foreground ,fg :underline (:color ,warning :style wave))))) 80 | `(hl-fill-column-face ((,class (:background ,weakest)))) 81 | `(fill-column-indicator ((,class (:foreground ,weakest)))) 82 | 83 | ;; hl line 84 | `(hl-line ((,class (:background ,weakest)))) 85 | 86 | ;; company 87 | `(company-tooltip ((,class (:foreground ,fg :background ,weakest)))) 88 | `(company-tooltip-selection ((,class (:background ,weaker :foreground ,fg)))) 89 | `(company-tooltop-annotation ((,class (:foreground ,fg)))) 90 | `(company-tooltip-common ((,class (:foreground ,fg :bold t)))) 91 | `(company-tooltip-common-selection ((,class (:foreground ,fg :bold t)))) 92 | `(company-scrollbar-bg ((,class (:background ,weaker)))) 93 | `(company-scrollbar-fg ((,class (:background ,weak)))) 94 | 95 | ;; git gutter 96 | `(git-gutter:modified ((,class (:background ,highlight :foreground ,highlight)))) 97 | `(git-gutter:added ((,class (:background ,success :foreground ,success)))) 98 | `(git-gutter:deleted ((,class (:background ,warning :foreground ,warning)))) 99 | 100 | )) 101 | 102 | ;;;###autoload 103 | (when load-file-name 104 | (add-to-list 'custom-theme-load-path 105 | (file-name-as-directory (file-name-directory load-file-name)))) 106 | 107 | (provide-theme 'sketch-white) 108 | 109 | ;; Local Variables: 110 | ;; no-byte-compile: t 111 | ;; End: 112 | 113 | ;;; sketch-white-theme.el ends here 114 | -------------------------------------------------------------------------------- /config.el: -------------------------------------------------------------------------------- 1 | ;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- 2 | 3 | ;; Place your private configuration here! Remember, you do not need to run 'doom 4 | ;; sync' after modifying this file! 5 | 6 | 7 | ;; Some functionality uses this to identify you, e.g. GPG configuration, email 8 | ;; clients, file templates and snippets. 9 | ;; (setq user-full-name "John Doe" 10 | ;; user-mail-address "john@doe.com") 11 | 12 | ;; Doom exposes five (optional) variables for controlling fonts in Doom. Here 13 | ;; are the three important ones: 14 | ;; 15 | ;; + `doom-font' 16 | ;; + `doom-variable-pitch-font' 17 | ;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for 18 | ;; presentations or streaming. 19 | ;; 20 | ;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd 21 | ;; font string. You generally only need these two: 22 | ;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light) 23 | ;; doom-variable-pitch-font (font-spec :family "sans" :size 13)) 24 | 25 | ;; There are two ways to load a theme. Both assume the theme is installed and 26 | ;; available. You can either set `doom-theme' or manually load a theme with the 27 | ;; `load-theme' function. This is the default: 28 | ;; (setq doom-theme 'sketch-white) 29 | (setq doom-theme 'sketch-black) 30 | (setq doom-font (font-spec :family "Monolisa" :size 12)) 31 | 32 | 33 | ;; Turn off title bar 34 | ;; Or use `defaults write org.gnu.Emacs HideDocumentIcon YES' in the termnial 35 | ;; https://emacs.stackexchange.com/questions/33680/how-to-remove-the-icon-in-the-titlebar 36 | (add-to-list 'default-frame-alist '(ns-appearance . dark)) 37 | (setq ns-use-proxy-icon nil) 38 | (setq frame-title-format nil) 39 | 40 | (add-hook 'window-setup-hook #'toggle-frame-maximized) 41 | 42 | ;; mode line 43 | ;; 44 | (setq doom-modeline-buffer-file-name-style 'auto) 45 | 46 | ;; If you use `org' and don't want your org files in the default location below, 47 | ;; change `org-directory'. It must be set before org loads! 48 | (setq org-directory "~/org/") 49 | 50 | ;; This determines the style of line numbers in effect. If set to `nil', line 51 | ;; numbers are disabled. For relative line numbers, set this to `relative'. 52 | (setq display-line-numbers-type nil) 53 | 54 | 55 | ;; Here are some additional functions/macros that could help you configure Doom: 56 | ;; 57 | ;; - `load!' for loading external *.el files relative to this one 58 | ;; - `use-package' for configuring packages 59 | ;; - `after!' for running code after a package has loaded 60 | ;; - `add-load-path!' for adding directories to the `load-path', relative to 61 | ;; this file. Emacs searches the `load-path' when you load packages with 62 | ;; `require' or `use-package'. 63 | ;; - `map!' for binding new keys 64 | ;; 65 | ;; To get information about any of these functions/macros, move the cursor over 66 | ;; the highlighted symbol at press 'K' (non-evil users must press 'C-c g k'). 67 | ;; This will open documentation for it, including demos of how they are used. 68 | ;; 69 | ;; You can also try 'gd' (or 'C-c g d') to jump to their definition and see how 70 | ;; they are implemented. 71 | 72 | (setq doom-localleader-key "," 73 | doom-localleader-alt-key "M-,") 74 | 75 | (setq company-idle-delay nil) 76 | 77 | (after! evil 78 | (setq evil-move-beyond-eol t 79 | evil-move-cursor-back nil)) 80 | 81 | (define-key evil-normal-state-map "\C-e" 'evil-end-of-line) 82 | (define-key evil-insert-state-map "\C-e" 'end-of-line) 83 | (define-key evil-visual-state-map "\C-e" 'evil-end-of-line) 84 | (define-key evil-motion-state-map "\C-e" 'evil-end-of-line) 85 | (define-key evil-insert-state-map "\C-f" 'evil-forward-char) 86 | (define-key evil-insert-state-map "\C-b" 'evil-backward-char) 87 | (define-key evil-insert-state-map "\C-d" 'evil-delete-char) 88 | (define-key evil-insert-state-map "\C-w" 'evil-delete) 89 | (define-key evil-normal-state-map "\C-y" 'yank) 90 | (define-key evil-insert-state-map "\C-y" 'yank) 91 | (define-key evil-visual-state-map "\C-y" 'yank) 92 | (define-key evil-normal-state-map "\C-k" 'kill-line) 93 | (define-key evil-insert-state-map "\C-k" 'kill-line) 94 | (define-key evil-visual-state-map "\C-k" 'kill-line) 95 | 96 | ;;; Webby web web 97 | ;;; 98 | (setq-default 99 | css-indent-offset 2 100 | js-indent-level 2 101 | js2-basic-offset 2 102 | js2-bounce-indent-p nil 103 | js2-highlight-level 3 104 | web-mode-code-indent-offset 2 105 | web-mode-css-indent-offset 2 106 | web-mode-markup-indent-offset 2 107 | web-mode-script-padding 2 108 | web-mode-style-padding 2 109 | ) 110 | 111 | (use-package lispy 112 | :config 113 | (lispy-set-key-theme '(lispy c-digits))) 114 | 115 | (use-package lispyville 116 | :config 117 | (lispyville-set-key-theme '((operators normal) 118 | c-w 119 | (prettify insert) 120 | (atom-movement normal visual) 121 | additional 122 | additional-insert 123 | additional-movement 124 | slurp/barf-lispy))) 125 | 126 | (add-hook! clojure-mode 127 | (setq clojure-indent-style 'align-arguments 128 | clojure-align-forms-automatically t) 129 | (map! (:localleader 130 | (:map (clojure-mode-map clojurescript-mode-map) 131 | "," #'cider)))) 132 | 133 | (remove-hook 'clojure-mode-hook #'rainbow-delimiters-mode) 134 | 135 | 136 | (map! (:localleader 137 | (:map (clojure-mode-map clojurescript-mode-map) 138 | (:prefix ("e" . "eval") 139 | "p" #'cider-pprint-eval-last-sexp)))) 140 | 141 | (map! :leader 142 | :desc "Last buffer" "TAB" #'mode-line-other-buffer) 143 | 144 | (global-set-key (kbd "s-'") 'er/expand-region) 145 | (global-set-key (kbd "s-\"") 'er/contract-region) 146 | ;; swiper-isearch as default 147 | (global-set-key (kbd "C-s") 'swiper-isearch) 148 | (global-set-key (kbd "s-f") 'swiper-isearch) 149 | (global-set-key (kbd "s-F") '+ivy/project-search) 150 | (global-set-key (kbd "s-P") 'counsel-M-x) 151 | (global-set-key (kbd "s-b") 'ivy-switch-buffer) 152 | (global-set-key (kbd "s-;") 'avy-goto-char-timer) 153 | 154 | (after! counsel-projectile 155 | (counsel-projectile-modify-action 156 | 'counsel-projectile-switch-project-action 157 | '((default counsel-projectile-switch-project-action-vc)))) 158 | 159 | (setq git-commit-summary-max-length 68) 160 | 161 | (use-package! org-journal 162 | :config 163 | (setq 164 | org-journal-date-prefix "* " 165 | org-journal-file-format "%F.org" 166 | org-journal-file-type 'weekly)) 167 | 168 | (map! :leader 169 | :desc "Open Current Journal" "njo" #'org-journal-open-current-journal-file) 170 | 171 | (use-package! deft 172 | :config 173 | (setq deft-directory "~/org/" 174 | deft-recursive t)) 175 | 176 | (map! :nv ";" #'evil-ex) 177 | -------------------------------------------------------------------------------- /init.el: -------------------------------------------------------------------------------- 1 | ;;; init.el -*- lexical-binding: t; -*- 2 | 3 | ;; This file controls what Doom modules are enabled and what order they load 4 | ;; in. Remember to run 'doom sync' after modifying it! 5 | 6 | ;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's 7 | ;; documentation. There you'll find information about all of Doom's 8 | ;; modules and what flags they support. 9 | 10 | ;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or 11 | ;; 'C-c g k' for non-vim users) to view its documentation. This works on 12 | ;; flags as well (those symbols that start with a plus). 13 | ;; 14 | ;; Alternatively, press 'gd' (or 'C-c g d') on a module to browse its 15 | ;; directory (for easy access to its source code). 16 | 17 | (doom! :input 18 | ;;chinese 19 | ;;japanese 20 | 21 | :completion 22 | company ; the ultimate code completion backend 23 | ;;helm ; the *other* search engine for love and life 24 | ;;ido ; the other *other* search engine... 25 | ivy ; a search engine for love and life 26 | 27 | :ui 28 | deft ; notational velocity for Emacs 29 | doom ; what makes DOOM look the way it does 30 | doom-dashboard ; a nifty splash screen for Emacs 31 | doom-quit ; DOOM quit-message prompts when you quit Emacs 32 | fill-column ; a `fill-column' indicator 33 | ;;hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW 34 | ;;hydra 35 | ;;indent-guides ; highlighted indent columns 36 | ;;minimap ; show a map of the code on the side 37 | modeline ; snazzy, Atom-inspired modeline, plus API 38 | ;;nav-flash ; blink cursor line after big motions 39 | ;;neotree ; a project drawer, like NERDTree for vim 40 | ophints ; highlight the region an operation acts on 41 | (popup +defaults) ; tame sudden yet inevitable temporary windows 42 | ;;pretty-code ; ligatures or substitute text with pretty symbols 43 | ;;tabs ; an tab bar for Emacs 44 | ;;treemacs ; a project drawer, like neotree but cooler 45 | ;;unicode ; extended unicode support for various languages 46 | vc-gutter ; vcs diff in the fringe 47 | vi-tilde-fringe ; fringe tildes to mark beyond EOB 48 | ;;window-select ; visually switch windows 49 | ;;workspaces ; tab emulation, persistence & separate workspaces 50 | ;;zen ; distraction-free coding or writing 51 | 52 | :editor 53 | (evil +everywhere); come to the dark side, we have cookies 54 | file-templates ; auto-snippets for empty files 55 | fold ; (nigh) universal code folding 56 | ;;(format +onsave) ; automated prettiness 57 | ;;god ; run Emacs commands without modifier keys 58 | lispy ; vim for lisp, for people who don't like vim 59 | multiple-cursors ; editing in many places at once 60 | ;;objed ; text object editing for the innocent 61 | ;;parinfer ; turn lisp into python, sort of 62 | ;;rotate-text ; cycle region at point between text candidates 63 | snippets ; my elves. They type so I don't have to 64 | word-wrap ; soft wrapping with language-aware indent 65 | 66 | :emacs 67 | (dired ; making dired pretty [functional] 68 | +ranger) 69 | electric ; smarter, keyword-based electric-indent 70 | ;;ibuffer ; interactive buffer management 71 | undo ; persistent, smarter undo for your inevitable mistakes 72 | vc ; version-control and Emacs, sitting in a tree 73 | 74 | :term 75 | eshell ; the elisp shell that works everywhere 76 | ;;shell ; simple shell REPL for Emacs 77 | ;;term ; basic terminal emulator for Emacs 78 | ;;vterm ; the best terminal emulation in Emacs 79 | 80 | :checkers 81 | syntax ; tasing you for every semicolon you forget 82 | ;;spell ; tasing you for misspelling mispelling 83 | ;;grammar ; tasing grammar mistake every you make 84 | 85 | :tools 86 | ;;ansible 87 | ;;debugger ; FIXME stepping through code, to help you add bugs 88 | ;;direnv 89 | ;;docker 90 | ;;editorconfig ; let someone else argue about tabs vs spaces 91 | ;;ein ; tame Jupyter notebooks with emacs 92 | (eval +overlay) ; run code, run (also, repls) 93 | ;;gist ; interacting with github gists 94 | lookup ; navigate your code and its documentation 95 | ;;lsp 96 | macos ; MacOS-specific commands 97 | magit ; a git porcelain for Emacs 98 | ;;make ; run make tasks from Emacs 99 | ;;pass ; password manager for nerds 100 | ;;pdf ; pdf enhancements 101 | ;;prodigy ; FIXME managing external services & code builders 102 | ;;rgb ; creating color strings 103 | ;;taskrunner ; taskrunner for all your projects 104 | ;;terraform ; infrastructure as code 105 | ;;tmux ; an API for interacting with tmux 106 | ;;upload ; map local to remote projects via ssh/ftp 107 | 108 | :lang 109 | ;;agda ; types of types of types of types... 110 | ;;cc ; C/C++/Obj-C madness 111 | clojure ; java with a lisp 112 | ;;common-lisp ; if you've seen one lisp, you've seen them all 113 | ;;coq ; proofs-as-programs 114 | ;;crystal ; ruby at the speed of c 115 | ;;csharp ; unity, .NET, and mono shenanigans 116 | ;;data ; config/data formats 117 | ;;(dart +flutter) ; paint ui and not much else 118 | ;;elixir ; erlang done right 119 | ;;elm ; care for a cup of TEA? 120 | emacs-lisp ; drown in parentheses 121 | ;;erlang ; an elegant language for a more civilized age 122 | ;;ess ; emacs speaks statistics 123 | ;;faust ; dsp, but you get to keep your soul 124 | ;;fsharp ; ML stands for Microsoft's Language 125 | ;;fstar ; (dependent) types and (monadic) effects and Z3 126 | ;;(go +lsp) ; the hipster dialect 127 | ;;(haskell +dante) ; a language that's lazier than I am 128 | ;;hy ; readability of scheme w/ speed of python 129 | ;;idris ; 130 | json ; At least it ain't XML 131 | (java +meghanada) ; the poster child for carpal tunnel syndrome 132 | javascript ; all(hope(abandon(ye(who(enter(here)))))) 133 | ;;julia ; a better, faster MATLAB 134 | ;;kotlin ; a better, slicker Java(Script) 135 | ;;latex ; writing papers in Emacs has never been so fun 136 | ;;lean 137 | ;;factor 138 | ledger ; an accounting system in Emacs 139 | ;;lua ; one-based indices? one-based indices 140 | markdown ; writing docs for people to ignore 141 | ;;nim ; python + lisp at the speed of c 142 | ;;nix ; I hereby declare "nix geht mehr!" 143 | ;;ocaml ; an objective camel 144 | (org ; organize your plain life in plain text 145 | +present 146 | +dragndrop 147 | +journal 148 | +hugo 149 | +roam) 150 | ;;perl ; write code no one else can comprehend 151 | ;;php ; perl's insecure younger brother 152 | ;;plantuml ; diagrams for confusing people more 153 | ;;purescript ; javascript, but functional 154 | ;;python ; beautiful is better than ugly 155 | ;;qt ; the 'cutest' gui framework ever 156 | ;;racket ; a DSL for DSLs 157 | ;;rest ; Emacs as a REST client 158 | ;;rst ; ReST in peace 159 | ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} 160 | ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() 161 | ;;scala ; java, but good 162 | ;;scheme ; a fully conniving family of lisps 163 | sh ; she sells {ba,z,fi}sh shells on the C xor 164 | ;;sml 165 | ;;solidity ; do you need a blockchain? No. 166 | ;;swift ; who asked for emoji variables? 167 | ;;terra ; Earth and Moon in alignment for performance. 168 | web ; the tubes 169 | yaml ; JSON, but readable 170 | 171 | :email 172 | ;;(mu4e +gmail) 173 | ;;notmuch 174 | ;;(wanderlust +gmail) 175 | 176 | :app 177 | ;;calendar 178 | ;;irc ; how neckbeards socialize 179 | ;;(rss +org) ; emacs as an RSS reader 180 | ;;twitter ; twitter client https://twitter.com/vnought 181 | 182 | :config 183 | ;;literate 184 | (default +bindings +smartparens)) 185 | --------------------------------------------------------------------------------