Emacs Literate Package Additions
Table of Contents
- 1. About this file
- 2. Bugfixes
- 3. OS Specific Packages
- 4. Aesthetic Packages
- 5. LATER Magit Additions
- 6. DONE Key Chords and Keybindings
- 7. Evil Colemak
- 8. Firestarter
- 9. Org Additions
- 10. Dockerfile Mode
- 11. Reference Management
- 12. Syntax Highlighting
- 12.1. Sphinx and RsT
- 12.2. CPP Additions
- 12.3. Quarto Mode
- 12.4. Meson Mode
- 12.5.
xonsh
Mode - 12.6. Tup Mode
- 12.7. SaltStack Mode
- 12.8. PKGBUILD Mode
- 12.9. LAMMPS Mode
- 12.10. Pug Mode
- 12.11. Nix Mode
- 12.12. VIM mode
- 12.13. JVM Languages
- 12.14. Systemd Mode
- 12.15. Dart Mode
- 12.16. Wolfram Mode
- 12.17. Polymode
- 12.18. Snakemake
- 13. Matrix Clients
- 14. Flycheck Additions
- 15. Completion helpers
- 16. Snippets
- 17. Math support
1. About this file
This is an Emacs literate package file and is meant to compliment my
configuration, as well as the init.el. It contains the basic structure along
with some data about each package and why it’s needed. This is to be used in
tandem with the define-package!
function in config.org
.
Since it’s primarily aimed at doom-emacs
let’s add their comments.
;; -*- no-byte-compile: t; -*- ;;; ~/.config/doom/packages.el
1.1. About that TOC..
So as mentioned here there is trouble when org-export
tries to create files
while keeping the org-toc
tag.
It’s not really a problem since org-export
actually generates a TOC for the
files anyway.
1.2. The properties
Basically, the properties set imply that the file is to be tangled for every
block and moreover the output directory is the doom-private-dir
. It’s
practically self explanatory but still.
The filename is determined by the SRC
block languages.
2. Bugfixes
These are hopefully just temporary.
;; https://github.com/doomemacs/doomemacs/issues/7078#issuecomment-1430884107 (package! transient :pin "c2bdf7e12c530eb85476d3aef317eb2941ab9440") (package! with-editor :pin "391e76a256aeec6b9e4cbd733088f30c677d965b") ;; (package! compat :pin "6f73eac")
3. OS Specific Packages
3.1. MacOS
Paths are a nightmare on darwin
systems which necessitates a separate package for setting things up.
(cond (IS-MAC (package! exec-path-from-shell) ))
4. Aesthetic Packages
4.1. Dired Icons
Since treemacs already uses all-the-icons
it is silly to not use them in
dired, from the all-the-icons wiki.
(package! all-the-icons-dired)
4.2. Wakatime
Not exactly aesthetic, but yeah, for stats.
(package! wakatime-mode)
5. LATER Magit Additions
These basically allow for TODOs in magit along with enhanced github integration.
These have been added upstream in develop
.
(package! magit-org-todos) (package! magithub)
(package! magit-todos)
Actually magit-todos has been added upstream which collates all todo
items.
There might still be workflows where magit-org-todos is useful since that
displays a global todo.org
file.
5.1. DONE Magit Delta
(package! magit-delta)
6. DONE Key Chords and Keybindings
It turns out that the switch to general.el is both inevitable (doom version 2.1) and very rational. However, I really can’t wait. So.. This is a stop gap solution.
(package! general)
- Remove when it’s merged upstream
7. Evil Colemak
I guess I just gave up, from here. Read about why here. The visual line mode setup leverages this package.
(package! evil-colemak-basics :recipe (:branch "main")) (package! evil-better-visual-line)
8. Firestarter
For running shell commands on-save.
(package! firestarter)
9. Org Additions
The new ones need to be covered in the config.org
file with the appropriate
keybindings. The notes are described here.
9.1. Mermaid
Technically not only an org addition, mermaid is kinda like a souped up ditaa
. Naturally there’s an org mode addition.
(package! mermaid-mode) (package! ob-mermaid)
9.2. Org Download
Now I load it here since I don’t use +attach
.
(package! org-download :recipe (:host github :repo "abo-abo/org-download"))
9.3. LATER Org Drill
The actual repo has not been updated in 3 years, so I must use this fork.
(package! org-drill :recipe (:host github :repo "hakanserce/org-drill"))
9.4. Org Protocol Updates
This needs to be installed specially, from this repo.
(package! org-protocol-capture-html :recipe (:host github :repo "alphapapa/org-protocol-capture-html"))
9.5. TODO Org Noter
This is sort of more of a pdf-tools
extension and it needs it’s own biblatex
setup and stuff as well so this might move into a tree of it’s own.
(package! org-noter)
This actually breaks the pdf-tools
bindings.
9.6. Org Ref
This is probably not the best thing in my current setup.. Now part of the init.el
setup.
(package! org-ref)
9.7. Org Gantt
Not on MELPA yet. From here.
(package! org-gantt :recipe (:host github :repo "swillner/org-gantt" :files ("*.el")))
9.8. Org Mind Map
Not on MELPA yet. From here.
(package! org-mind-map :recipe (:host github :repo "theodorewiles/org-mind-map"))
9.9. Org Rifle
Technically a helm addition. Perfect for monolithic org
files. More details
here.
(package! helm-org-rifle)
9.10. Org Async
We will use this.
(package! org-babel-eval-in-repl)
9.11. Anki Mode
This is put here since it only works with org-mode
stuff.
(package! anki-editor :recipe (:host github :repo "orgtre/anki-editor"))
9.12. Org Re-Reveal Extensions
9.13. Org Roam Bibtex
This should be a part of the main +roam
setup, but until then.
(package! org-roam-bibtex)
9.14. Org GCal
This extension seems to be a maintained fork.
(package! org-gcal)
9.15. Citeproc Org
Mainly used with ox-hugo
(package! citeproc-org :pin "0fb4c96f48b3055a59a397af24d3f1a82cf77b66")
10. Dockerfile Mode
For syntax highlighting and inline builds. From spotify weirdly.
## -*- docker-image-name: "your-image-name-here" -*-
can be used to specify
the image name.
(package! dockerfile-mode)
11. Reference Management
12. Syntax Highlighting
These are additionally required to work with the sort of files I use often.
The configuration and settings are as usual in config.org
12.1. Sphinx and RsT
Though reStructured Text is supported natively, there are some quality of life exporters and packages which should be more useful.
(package! ox-rst :recipe (:host github :repo "msnoigrs/ox-rst")) (package! sphinx-mode :recipe (:host github :repo "Fuco1/sphinx-mode" :files ("*.el")))
12.2. CPP Additions
Though the standard doom-emacs
module configuration is a sane set of defaults, there are some glaring omissions, most egregious of is the lack of doxygen
highlighting.
(package! highlight-doxygen)
12.3. Quarto Mode
(package! quarto-mode)
12.4. Meson Mode
Recently gotten into meson
as a nice cmake
alternative for smaller projects (maybe larger ones too).
(package! meson-mode)
12.5. xonsh
Mode
A minor upgrade, but annoying without highlighting.
(package! xonsh-mode)
12.6. Tup Mode
Because honestly there isn’t anything better than tup. Who doesn’t need a build system which scales with the eye of Mordor?
(package! tup-mode :recipe (:host github :repo "ejmr/tup-mode"))
12.6.1. LATER Caveats
The repo is unmaintained so I ought to fork it and take a look into maintaining it.
12.7. SaltStack Mode
I have recently decided that saltstack ought to be used for working on multiple systems.
(package! salt-mode :recipe (:host github :repo "glynnforrest/salt-mode"))
12.8. PKGBUILD Mode
No point using emacs
if I can’t get highlighting for all my needs. This needs
some extra configuration. Must figure out if this is well mantained. The
developer is very responsive to pull requests and the like.
(package! pkgbuild-mode :recipe (:host github :repo "juergenhoetzel/pkgbuild-mode"))
12.9. LAMMPS Mode
This could do with some updates. Will look into this soon. Also it takesunbearably long this way. Must figure out how to stop it from downloading the
whole repo.
Mantained by me now.
(package! lammps-mode :recipe (:host github :repo "HaoZeke/lammps-mode"))
12.10. Pug Mode
I just like pugs.
(package! pug-mode)
12.11. Nix Mode
For building more cross-os stuff. This is the official package, but will look into binding and using nix-emacs as well.
(package! nix-mode)
12.12. VIM mode
I like vim-script
… well no I don’t but I still use it.
(package! vimrc-mode)
12.13. JVM Languages
Currently the languages I care about (apart from Java) are:
; Kotlin > Java (package! kotlin-mode) ; Groovy -> Testing (package! groovy-mode)
12.14. Systemd Mode
Since I use a lot of user systemd units, it makes sense to have pretty highlighting.
(package! systemd)
12.15. Dart Mode
Might eventually want to also get the companion dart server sometime, but for
now this syntax-highlighter will do. Might actually want to see if prettier
has anything for it.
(package! dart-mode)
12.16. Wolfram Mode
Actually wolfram-mode
seems to be able to do more than just syntax highlighting, but at the moment I just need font-locking.
(package! wolfram-mode)
12.17. Polymode
For working with .Rmd
files and better orgmode
R support.
(package! poly-R) (package! poly-org)
12.18. Snakemake
Font locking for .smk
files as they are evidently called (from here).
(package! snakemake-mode)
13. Matrix Clients
Apparently Riot.im is now Element.io; and I could do with an emacs
client…
(package! pretty-hydra) (package! matrix-client :recipe (:host github :repo "alphapapa/matrix-client.el"))
14. Flycheck Additions
14.1. MELPA Helper
This is for linting files before submitting to MELPA.
(package! package-lint) (package! flycheck-package)
15. Completion helpers
15.1. Github Copilot
;; (package! copilot ;; :recipe (:host github :repo "zerolfx/copilot.el" :files ("*.el" "dist")))
16. Snippets
These are from hlissner.
16.1. Doom
(package! emacs-snippets :recipe (:host github :repo "hlissner/emacs-snippets" :files ("*")))
16.2. Standard
These are from the official snippets repo.
(package! yasnippet-snippets :recipe (:host github :repo "AndreaCrotti/yasnippet-snippets" :files ("*")))
17. Math support
I like cdlatex.
(package! cdlatex)
However, better support for symbols can be found in math-symbol-lists
as discussed here.
(package! math-symbol-lists)
Also, CalcTeX makes life a lot easier, and is faster than calling SymPy or Mathematica.
(package! calctex :recipe (:host github :repo "johnbcoughlin/calctex" :files ("*.el" "calctex/*.el" "calctex-contrib/*.el" "org-calctex/*.el" "vendor")) :pin "784cf911bc96aac0f47d529e8cee96ebd7cc31c9")