├── 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 |
--------------------------------------------------------------------------------