## Changelog for doom-emacs: Commits: [hlissner/doom-emacs@8ba2f15c...8ba2b9ea](8ba2f15c71...8ba2b9eafa
) * [`9edcdd06`](9edcdd0633
) Mention supported envvars in 'doom help' * [`86cd497b`](86cd497bb5
) Don't print ignored/whitelisted envvars on doom env * [`89c464dd`](89c464ddf7
) Bump straight.el * [`30140021`](30140021de
) Export comp-deferred-compilation-black-list via autoloads * [`1d0f1575`](1d0f1575aa
) Remove `comp-eln-load-path` injection hack * [`2e07a855`](2e07a85590
) Native-compile everything on load-path * [`0062c03e`](0062c03ede
) tools/lsp: apply after changing gcmh-high-cons-threshold * [`11faeae9`](11faeae9a6
) Bump :tools lsp * [`1757dd17`](1757dd1700
) Bump :editor evil * [`2f1be297`](2f1be297f2
) Add doctor.el for :lang ledger * [`89f709f4`](89f709f4a4
) Fix ligature documentation typo * [`b52072ec`](b52072ec90
) Search compressed .el files in load history * [`404a856f`](404a856f37
) Bump :tools biblio * [`88f20cc5`](88f20cc54c
) Bump :lang ocaml * [`329c69e8`](329c69e88c
) Bump :lang latex * [`3a1fd7b2`](3a1fd7b282
) Respect magit-display-buffer-noselect * [`f6aa50e1`](f6aa50e1bc
) Load dap-mode after lsp-mode manually * [`cec81ac2`](cec81ac2cc
) Add ccls-specific configuration * [`7138cabd`](7138cabde0
) Bump auctex * [`79d49038`](79d4903817
) [:lang cc] Fix list in call for cpu count command * [`8290e133`](8290e13333
) Describe keybindings for clojure module * [`033cb480`](033cb48006
) Fix void-variable comp-eln-load-path * [`86ce933f`](86ce933fd8
) Bump :tools * [`8a45b467`](8a45b4671e
) Bump :core * [`ea575e3a`](ea575e3a8d
) Bump :lang org * [`3f24fc37`](3f24fc3737
) regexp-quote comp blacklist entries * [`c59ae5d1`](c59ae5d172
) Stop ws-butler from corrupting undo history hlissner/doom-emacs#4071 * [`db07304c`](db07304c71
) Don't enable explain-pause-mode at startup * [`22b6eaed`](22b6eaed03
) Rethink lsp defaults * [`ebc1e709`](ebc1e7092d
) tools/lsp: restore flycheck-checker fix hlissner/doom-emacs#3989 * [`c344d40d`](c344d40d15
) tools/lsp: refactor +lsp-optimization-mode * [`d9683d11`](d9683d1148
) Fix hlissner/doom-emacs#4074: map! with meta/hyper modifier prefixes * [`290deb87`](290deb87f3
) Bump :emacs * [`dc50c6ba`](dc50c6bae3
) Bump :completion ivy * [`b76cac9b`](b76cac9b9a
) lang/cc: fix ccls/eglot commands for vanilla users * [`bf62aff8`](bf62aff8c0
) lang/cc: fix +cc/ccls-show-* keybinds * [`de6907ac`](de6907aca0
) Bump :lang * [`21d02158`](21d0215807
) Bump :app * [`c4e25916`](c4e259162b
) Bump :checkers * [`f2ecfcec`](f2ecfcec92
) Bump :email * [`fea52059`](fea5205983
) [:lang (org +roam)] company-org-roam is depricated * [`fdbf68cf`](fdbf68cf3c
) Fix hlissner/doom-emacs#3389: wrong-type-argument on closing calendar * [`c80d546e`](c80d546e55
) Don't prompt to kill lsp server on cleanup * [`b6c562b0`](b6c562b015
) Fix hlissner/doom-emacs#4080: load evil-collection-xwidget normally * [`c37aa529`](c37aa52908
) Remove redundant evil-collection init code * [`aedb7742`](aedb7742d3
) Bump :term * [`8d2a4306`](8d2a430693
) Bump org-mode * [`57669b41`](57669b4163
) Bump company * [`0b480a6a`](0b480a6aad
) lang/cc: refactor ccls config * [`961f5514`](961f551465
) Fix hlissner/doom-emacs#3859: defhydra+ ignored * [`cc877c13`](cc877c13a7
) Fix hlissner/doom-emacs#3999: don't install lsp-java for +eglot * [`93937ab1`](93937ab14d
) Fix hlissner/doom-emacs#3964: add ~/opt/miniconda3 to list of default paths * [`6b06e0b5`](6b06e0b52f
) lang/org: ensure org-auto-align-tags is respected * [`d105a040`](d105a0400c
) Add ess-smart-comma support to evil-mc * [`23c36a2f`](23c36a2feb
) Fix wrong-type-arg error on 'doom compile' * [`a776664e`](a776664ebc
) Don't load lsp-java/dap-java if +eglot * [`2491c8ed`](2491c8ed2c
) tools/lsp: add j/k/C-j/C-k keys for lsp-ui-peek * [`8297af01`](8297af01a8
) tools/lsp: tweak lsp-ui-doc defaults * [`963f96b4`](963f96b42f
) Bump company * [`d85c7b85`](d85c7b857b
) lang/cc: fix sem-highlight disabler * [`1c7fd9c2`](1c7fd9c220
) Fix hlissner/doom-emacs#4093: runaway gc-cons-threshold in lsp-mode * [`5373f872`](5373f87234
) [bepo] tools/lsp: add t/s/C-t/C-s for lsp-ui-peek * [`876d08fc`](876d08fc3b
) Add nix bin path to tramp-remote-path * [`923e8c88`](923e8c88ee
) Extend g s {w,W,e,E,ge,gE} scope to visible buffer * [`002f5116`](002f5116a6
) Fix hlissner/doom-emacs#3948: unsetting ligatures w/ set-ligature! * [`2f91183e`](2f91183e48
) Fix hlissner/doom-emacs#3997: downcase checkboxes in markdown * [`15d97614`](15d976142c
) Fix hlissner/doom-emacs#4000: company-box breaks if frames are deleted * [`f102063f`](f102063f93
) Fix hlissner/doom-emacs#3908: separate company-ispell from notmuch-company * [`8ba2b9ea`](8ba2b9eafa
) Fix void-function xref--show-defs error
nix-doom-emacs
Nix expression to install and configure doom-emacs.
The expression builds a doom-emacs
distribution with dependencies
pre-installed based on an existing ~/.doom.d
directory.
It is not a fully fledged exprerience as some dependenices are not installed and
some may not be fully compatible as the version available in NixOS or
emacs-overlay may not be
compatible with the doom-emacs
requirements.
Getting started
Using home-manager:
{ pkgs, ... }:
let
doom-emacs = pkgs.callPackage (builtins.fetchTarball {
url = https://github.com/vlaci/nix-doom-emacs/archive/master.tar.gz;
}) {
doomPrivateDir = ./doom.d; # Directory containing your config.el init.el
# and packages.el files
};
in {
home.packages = [ doom-emacs ];
home.file.".emacs.d/init.el".text = ''
(load "default.el")
'';
}
Under the hood
This expression leverages nix-straight.el under the hood for installing depdendencies. The restrictions of that package apply here too.
Usage
instead of running emacs.d/bin/doom, once you have update your config files (packages.el, init.el, config.el), rebuild doom-emacs with nix. If you are using home-manager, simply run home-manager switch
Troubleshooting
On macOS on a fresh install, you might run into the error Too many files open
. running ulimit -S -n 2048
will only work for the duration of your shell and will fix the error
Installing emacs packages
In the initial packages.el instructions for how to install packages can be found.
However some packages might require a particular software dependency to be installed.
Trying to install those would give you an error of the type:
Searching for program: No such file or directory, git
(Missing git dependency)
Here is how you would go installing magit-delta for example (which requires git).
under the line:
doomPrivateDir = ./doom.d;
in your configuration, you would add the following:
emacsPackagesOverlay = self: super: {
magit-delta = super.magit-delta.overrideAttrs (esuper: {
buildInputs = esuper.buildInputs ++ [ pkgs.git ];
});
};
to make the git dependency available.
trying to rebuild doom-emacs with home-manager switch
should work correctly now.