├── .dir-locals.el
├── .doomrc
└── README.md
/.dir-locals.el:
--------------------------------------------------------------------------------
1 | ((nil (git-commit-major-mode . git-commit-elisp-text-mode)
2 | (fill-column . 80))
3 | (org-mode (mode . doom-docs-org)))
4 |
--------------------------------------------------------------------------------
/.doomrc:
--------------------------------------------------------------------------------
1 | ;;; .doomrc --- doom runtime config -*- mode: emacs-lisp; lexical-binding: t; -*-
2 | ;;; Commentary:
3 | ;;; Code:
4 | (require 'doom) ; be silent, byte-compiler
5 |
6 | (after! doom-cli-ci
7 | ;;; Commit linter types
8 | (add-to-list 'doom-ci-commit-types 'module)
9 | (add-to-list 'doom-ci-commit-scopeless-types 'module)
10 | ;;; Commit linter scopes
11 | (add-to-list 'doom-ci-commit-scopes #'ci-check-module-scope))
12 |
13 | (after! doom-cli-make
14 | ;;; Codeowners
15 | (dolist (path (doom-module-load-path (dir!)))
16 | ;; I will be the default owner for everything in the repo unless a later
17 | ;; match takes precedence.
18 | (add-to-list 'doom-make-codeowners "# The default owner(s) unless another takes precedence")
19 | (add-to-list 'doom-make-codeowners '("*" . "@doomemacs/maintainers"))
20 | ;; Module maintainers (see https://git.doomemacs.org/teams)
21 | (save-match-data
22 | (add-to-list 'doom-make-codeowners "# Module maintainers")
23 | (when (string-match "/modules/\\([^/]+\\)/\\([^/]+\\)/$" path)
24 | (push (cons (substring (match-string 0 path) 1)
25 | (format "@doomemacs/%s-%s"
26 | (match-string 1 path)
27 | (match-string 2 path)))
28 | doom-make-codeowners)))))
29 |
30 |
31 | ;;; Helpers
32 | (defun ci-check-module-scope (scope _plist)
33 | "Only allow :CATEGORY or MODULE scopes if they actually exist."
34 | (doom-glob (dir!) "modules" (if (string-prefix-p ":" scope)
35 | (format "%s" (substring scope 1))
36 | (format "*/%s" scope))))
37 |
38 | (provide 'cli)
39 | ;;; cli.el ends here
40 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > :warning: **Be aware that this repository is a work-in-progress.** Until Doom
2 | > Emacs v3.0 is released, some links may be broken and documentation may reflect
3 | > unreleased features and behavior.
4 |
5 |
6 |
7 | # Doom Emacs Community Modules
8 |
9 |   
10 |
11 | [Install](#install) • [Update](#update) • [Documentation] • [Changelog] • [Community]
12 |
13 |
14 |
15 | # Introduction
16 |
17 | This is a library of [Doom Emacs](https://doomemacs.org) modules submitted and
18 | maintained by its community. Unlike [Doom's official module
19 | library](https://git.doomemacs.org/modules), the criteria for these modules is
20 | more relaxed and subject to fewer quality checks by Doom's author, but in
21 | exchange cover a larger spectrum of features and use-cases.
22 |
23 | Each module has their own documentation, accessible in Doom via `M-x
24 | doom/help-modules` or online at https://docs.doomemacs.org/-/contrib-modules:
25 |
26 | # Install
27 |
28 | ## Before Doom v3.0
29 |
30 | 1. Clone this repository locally:
31 | ```sh
32 | $ mkdir -p ~/.doom.d/repos/contrib-modules
33 | $ git clone https://github.com/doomemacs/contrib-modules ~/.doom.d/repos/contrib-modules
34 | ```
35 |
36 | 2. Add the path to its `modules/` directory to `doom-modules-load-path` in `$DOOMDIR/init.el`:
37 | ```emacs-lisp
38 | ;;; in $DOOMDIR/init.el
39 | (add-to-list 'doom-modules-load-path (expand-file-name "repos/contrib-modules/" doom-user-dir))
40 | ```
41 |
42 | 3. Activate modules contained in this library like normal. For example, to
43 | enable this library's `:editor meow` module:
44 | ```emacs-lisp
45 | (doom! ...
46 |
47 | :editor
48 | meow
49 |
50 | ...)
51 | ```
52 |
53 | 4. Run `$ doom sync` to ensure your changes take effect.
54 |
55 | ## After Doom v3.0
56 |
57 | 1. Register it as a module library from within your `doom!` block, like so:
58 | ```emacs-lisp
59 | ;;; in $DOOMDIR/init.el
60 | (doom! (modules :repo "doomemacs/contrib-modules")
61 | ...)
62 | ```
63 |
64 | 2. Activate modules contained in this library like normal. For example, to
65 | enable this library's `:editor meow` module:
66 | ```emacs-lisp
67 | (doom! (modules :repo "doomemacs/contrib-modules")
68 |
69 | :editor
70 | meow
71 |
72 | ...)
73 | ```
74 |
75 | If two libraries have the same module, the order of your `modules`
76 | declaration dictates precedence (from highest to lowest). The first matching
77 | module will be used.
78 |
79 | 3. Run `$ doom sync` to ensure your changes take effect.
80 |
81 |
82 | # Update
83 |
84 | - Run `$ doom upgrade` to update Doom and your module libraries.
85 | - Run `$ doom upgrade --modules` to only update your module libraries.
86 | - Run `$ doom upgrade --modules doomemacs/contrib-modules` to update only one.
87 |
88 | Module libraries can be pinned with `:pin "REF"`, where REF is a commit or a
89 | version string (e.g. a partial version string: `v22.11` or full one:
90 | `v22.11.02`).
91 |
92 |
93 | # `TODO `Contribute
94 |
95 |
96 | [Changelog]: https://docs.doomemacs.org/contrib-modules/changelog
97 | [Community]: https://docs.doomemacs.org/-/community
98 | [discord]: https://doomemacs.org/discord
99 | [discourse]: https://discourse.doomemacs.org
100 | [documentation]: https://docs.doomemacs.org/contrib-modules
101 |
--------------------------------------------------------------------------------