### Changes for org On branch: main Commits:fe1f4f2ccf...98cae03b7d
- [7b9d8e7b](7b9d8e7bed
) org-fold-core-style: Document that it must be set before loading Org - [b196a05f](b196a05f5a
) Clean up spacing to pass Emacs's pre-commit check - [6a30ef27](6a30ef2781
) org.el: Move definition to silence warning - [2bd9db83](2bd9db8345
) Silence byte-compiler under 'make single' - [9ce4727d](9ce4727d8e
) org-element: Fix Emacs 29 warning about quoting style - [180966c6](180966c645
) org-manual: Do not use #+findex inside Footnote - [0641ece5](0641ece57b
) org-manual: Inline single-sentence footnotes - [9db57aee](9db57aee3e
) Do not use visual `current-indentation' when we need real values - [506d5b12](506d5b12dd
) org-comment-line-break-function: Avoid built-in Emacs comment machinery - [de5bdb09](de5bdb090d
) Backport commit 19de241a7 from Emacs - [e7572fa8](e7572fa86c
) Backport commit 616dcf27e from Emacs - [c7e1bbfd](c7e1bbfd1c
) Backport commit 664094222 from Emacs - [f99a8ea4](f99a8ea434
) Backport commit 104e90d93 from Emacs - [1a2d2fd5](1a2d2fd5e4
) Backport commit c1145c31a from Emacs - [772c4477](772c44779c
) Backport commit dd0727e1e from Emacs - [659646f1](659646f135
) Backport commit e0ca8f791 from Emacs - [1a3dd6ec](1a3dd6ec85
) Backport commit 5f57b41aa from Emacs - [5d5a7832](5d5a7832ec
) Backport commit 18b680cfd from Emacs - [723af4af](723af4afae
) Backport commit 8ef37913d from Emacs - [56ba22b9](56ba22b9df
) Backport commit 3abb3681b from Emacs - [37bb3547](37bb3547c7
) Backport commit fa1a7ac61 from Emacs - [c06dc10f](c06dc10f39
) Backport commit 2fba71cf1 from Emacs - [e74ea551](e74ea551bf
) Backport commit cc8b6101f from Emacs - [5a81ec00](5a81ec0018
) Backport commit 253374f81 from Emacs - [303c8935](303c89350e
) Backport commit 5b3d4e7bf from Emacs - [07c5d066](07c5d066aa
) Backport commit 3236dedc2 from Emacs - [4f8ea506](4f8ea50604
) Backport commit d21412df0 from Emacs - [4ae72c61](4ae72c6174
) Backport commit 0f7ceb480 from Emacs - [8ac9203d](8ac9203d5c
) Backport commit 979308b4c from Emacs - [0da6c49f](0da6c49f75
) Backport commit 4f37a3b29 from Emacs - [c77692e8](c77692e8fb
) Backport commit f94e93a6e from Emacs - [675ec677](675ec6771f
) Backport commit 9230953f2 from Emacs - [69ba7a20](69ba7a20be
) Backport commit 2a8d08360 from Emacs - [07ca33e6](07ca33e603
) Backport commit 2a05479c2 from Emacs - [1adbaca7](1adbaca75a
) Backport commit 563bf2fae from Emacs - [e614a763](e614a763ca
) Backport commit 70341cab3 from Emacs - [e7059f7d](e7059f7dbe
) Backport commit 22a5f0223 from Emacs - [19c3969e](19c3969e75
) Backport commit 2682ea1b3 from Emacs - [e9df837d](e9df837d8a
) Backport commit 0a6e2b3bf from Emacs - [1bbd8631](1bbd86310a
) Backport commit 4c1bc8315 from Emacs - [883f87c3](883f87c3e7
) Backport commit 4d64c39fa from Emacs - [2ac8c44f](2ac8c44f04
) Backport commit b335e1a04 from Emacs - [25e638f7](25e638f726
) Backport commit 1137219c9 from Emacs - [e58217ff](e58217ff1f
) Backport commit 57259773b from Emacs - [add8552b](add8552b1d
) Backport commit 48aacbf29 from Emacs - [9c2bc287](9c2bc2877f
) Backport commit 06d716147 from Emacs - [c2c8e66e](c2c8e66e5d
) Backport commit b7e867b84 from Emacs - [9b62bcc9](9b62bcc9c6
) Backport commit 8dacd8cd9 from Emacs - [631d4eb6](631d4eb6af
) org-macs: Move org-current-text-indentation to silence byte-compiler - [abc34b45](abc34b458f
) org-mouse: Make recently ported change compatible with Emacs < 29 - [6dd736ab](6dd736ab35
) ol-eshell: Make recently ported change compatible with Emacs < 29 - [0e0fe76a](0e0fe76ae4
) ox-icalendar: Fix time zone construct from recently ported commit - [98e168b4](98e168b489
) compat: Add compatibility wrapper for string-clean-whitespace - [75d63533](75d63533d3
) compat: Move string-equal-ignore-case to correct section - [07b6a0e0](07b6a0e044
) compat: Use org- wrapper for string-equal-ignore-case compatibility - [95a4c59b](95a4c59bfe
) compat: Add compatibility wrapper for format-prompt - [1f8cc855](1f8cc85542
) org-agenda: Replace 29.1 version keywords with package-version - [e305755b](e305755b1a
) org-element: Parse malformed clock lines as paragraphs - [ceb99b86](ceb99b8600
) org-table-fix-formulas: Ensure shifting columns after removing invalid - [2c8bd0cc](2c8bd0cc9b
) org-fill-element: Respect region selection when filling src-block - [5adde9f3](5adde9f3fe
) * doc/org-manual.org (Handling Links): Remove incorrect footnote - [22470832](224708323e
) org-clock: Do not assume that clock is always inside capture buffer - [f0b7dfb3](f0b7dfb3a0
) org-table: Repair table before inserting rows/columns - [580f2861](580f286140
) doc/org-manual.org: Fix typo - [edf5afc1](edf5afc1d8
) Fix filter preset problem for sticky agenda - [101280aa](101280aa66
) Add crossreference to org-stuck-projects docstring - [e28e3aaa](e28e3aaabb
) Improve documentation of org-agenda-skip-* - [0b67b9f6](0b67b9f64f
) Improve documentation of org-kill-line - [9ef44922](9ef449224b
) org-manual: Fix the location of "date tree" index entry - [eece396d](eece396db8
) org-manual: Add example illustrating date tree - [9b690462](9b690462a3
) Allow returning empty list from post-processing block - [48ac65be](48ac65bea0
) ob-sed-test: Make the tests pass on BSD systems, such as macOS - [a2204920](a220492064
) ob-sed: Fix typo - [279bee08](279bee087d
) org-element-clock-line-re: Fix Emacs 26 compatibility after e305755b1 - [5a167f6e](5a167f6ef2
) org-element-cache-reset: Never use cache persistence in non-file buffers - [aa90e5b5](aa90e5b59c
) org-export-with-buffer-copy: Avoid all the hooks, not just `org-mode-hook' - [4cb1b8eb](4cb1b8ebd0
) org-export-ignored-local-variables: Do not copy cache - [0551eba4](0551eba40c
) org-export-get-ordinal: Cache results - [b45911d4](b45911d41e
) org-export-copy-buffer: Prevent saving to disk - [09fd5f88](09fd5f886a
) org-html-format-latex: Avoid unnecessary string allocation - [514e3a9c](514e3a9cd2
) org-export: Suppress cache persistence in buffer copies during export - [dcdf98a5](dcdf98a564
) org-export-copy-buffer: Update declarations - [0be36ac1](0be36ac13e
) org-html-format-latex: Prevent save prompt for temporary buffer - [7f3a6cf6](7f3a6cf6e7
) org-capture: Add template hook properties - [2f4de609](2f4de60980
) ob-emacs-lisp: Don't print arguments of post-process arguments to stdout - [fc8e375b](fc8e375b9b
) Begin messages about executing code blocks with a capital letter - [1a62cd94](1a62cd94cf
) org-pcomplete: Fix completion inside bracketed link - [3de74bbe](3de74bbeff
) fixup! org-export-copy-buffer: Prevent saving to disk - [17708ab3](17708ab3fa
) org-export-copy-buffer: Document the caveats - [86b6d843](86b6d843f6
) org-html-format-latex: Prevent side effects of copying `buffer-file-name' - [eeae6ed4](eeae6ed4bf
) org-agenda-lisp: Add FIXME about let-binding `inhibit-redisplay' - [b68c1666](b68c1666c2
) org-ts-regexp0: Fix matching timestamps with no day name - [1966a7a8](1966a7a8a8
) org-manual: Document :eval yes header argument value - [fcd38174](fcd3817450
) org-toggle-heading: Use buffer-local keyword settings when possible - [ae028d0a](ae028d0a25
) org-toggle-heading: Document checkbox conversion to TODO keywords - [233ad886](233ad88651
) org-export: Do not use `always' not available in Emacs <28 - [04d9d4b3](04d9d4b3db
) compat: Load subr-x for Emacs < 28 compatibility - [de553d1d](de553d1dc7
) lisp/org-clock.el: Fix bug in prompt for resolving clocks - [41a409f7](41a409f79d
) org-src-font-lock-fontify-block: Do not fold links inside src blocks - [ba8fbd0c](ba8fbd0cda
) testing/lisp/test-ob-java.el: Add missing `provide' - [f4149681](f4149681ee
) org-babel: Fix usage of `org-babel-temporary-directory' - [31de027c](31de027c12
) test-ob-java: Use `temporary-file-directory' - [96af4a86](96af4a8634
) * mk/default.mk (BTEST_OB_LANGUAGES): Test ob-java by default - [e7feeb22](e7feeb2225
) org-export: Propertize keybindings in Org Export dispatch UI - [192742c9](192742c9c5
) org-export-with-buffer-copy: Allow safe reusable buffer copy - [8901fd22](8901fd2261
) Add a regression test for `org-export-with-buffer-copy' - [616fc204](616fc20445
) Backport commit f3769bc32 from Emacs - [4d07df71](4d07df718b
) ob-clojure.el: Add a :backend header arg to clojure code blocks - [3f60acff](3f60acff77
) ox-latex: Protect [...] after \\ to be interpreted as LaTeX argument - [dd221239](dd2212395b
) org-ctrl-c-ctrl-c: Update timestamp at point inside clock lines - [88c85d62](88c85d620b
) org-map-entries: Do not demand file buffer when SCOPE is nil - [eb15341b](eb15341b3c
) org-cycle-set-visibility-according-to-property: Do not change ancestor visibility - [c57b0303](c57b030323
) org-agenda: Make sure file restriction can be removed - [416c839c](416c839c59
) lisp/org-agenda.el: Remove unused `org-agenda-last-dispatch-buffer' - [4c064183](4c0641837c
) org-babel-script-escape: Turn empty lists into nil - [601ce688](601ce688d5
) lisp/ob-clojure.el: Fix :backend override not work with `org-babel-clojure-backend' - [0e4874f1](0e4874f17c
) org-up-element: Fix jumping up from inlinetask - [3790bf8e](3790bf8ea1
) org-clock-sum: Do not err when have malformed clock lines - [97672efd](97672efdb0
) testing/lisp/test-ob-eshell.el: Fix tests - [08a1a916](08a1a91623
) testing/lisp: Add missing `featurep' checks for required packages - [3e864877](3e86487755
) testing/lisp: Add missing `provide' - [d331f52c](d331f52cac
) org-crypt-key-for-heading: Handle CRYPTKEY nil value - [2d6032db](2d6032db96
) org-manual: Clarify nil value of ~org-crypt-key~ - [892df429](892df429f4
) ox-latex: Use \empty instead of \relax after \\ - [dd3c1e12](dd3c1e1284
) mk/server.mk: Include cards - [5fa66c7f](5fa66c7ffc
) org-latex-verse-block: Fix regression from 3f60acff7 - [3fc782e9](3fc782e9b8
) org-manual: Fix typos - [31f25109](31f2510995
) org-clock.el: resolve running clock after being idle only once - [58a46fab](58a46fab0d
) doc/org-manual.org: Mention that Network Theory Ltd. is closed - [15b3aa43](15b3aa43a8
) org-store-link: Fix for sticky agenda buffers - [87c294c7](87c294c7b6
) org-agenda-new-marker: Do not create maker in killed agenda buffers - [d972cfac](d972cfac89
) org-create-formula-image: Do not err when `noninteractive' - [43546a5c](43546a5cbe
) Backport commit a95062e03 from Emacs - [b7aad5b0](b7aad5b095
) Backport commit 318722541 from Emacs - [cb1359a3](cb1359a3ce
) agenda: Clean up spacing to pass Emacs's pre-commit check - [c0d629b5](c0d629b5bd
) org-read-date-get-relative: Assure case-insensitive weekday matching - [4b9aef20](4b9aef20d8
) org-fold-hide-entry: Fix on empty heading with a child. - [bbec9aaf](bbec9aafee
) org-babel-lob-get-info: Add no-eval argument - [e58bd039](e58bd039e3
) org-babel-get-src-block-info: Rename light argument - [4e5c7373](4e5c737311
) ox-odt: Allow id: links to files - [3d1f4e0a](3d1f4e0af0
) org-cite-insert: Allow citations at the beginning of empty heading - [a7a579d0](a7a579d06a
) ox-latex: Allow markup objects inside %D spec - [7f8e616f](7f8e616f3b
) org-num-mode: Clear remaining num overlays before activation - [7d1e3dc3](7d1e3dc38e
) org-element-special-block-interpreter: Fix when no content - [98cae03b](98cae03b7d
) lisp/org-element: Add a parameters-line property to special blocks
nix-doom-emacs
Status | |
---|---|
Build on master |
|
Dependency updater | |
Matrix Chat |
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 experience as some dependencies 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/nix-community/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 ];
}
./doom.d
should contain the following three files: config.el
, init.el
and
packages.el
. If you don't already have an existing doom-emacs
configuration,
you can use the contents of test/doom.d
as a template.
Using flake.nix
:
{
inputs = {
home-manager.url = "github:nix-community/home-manager";
nix-doom-emacs.url = "github:nix-community/nix-doom-emacs";
};
outputs = {
self,
nixpkgs,
lib,
home-manager,
nix-doom-emacs,
...
}: {
nixosConfigurations.exampleHost = lib.nixosSystem {
system = "x86_64-linux";
modules = [
home-manager.nixosModules.home-manager
({
home-manager.users.exampleUser = lib.mkMerge [
nix-doom-emacs.hmModule
{ ... }: {
programs.doom-emacs = {
enable = true;
doomPrivateDir = ./doom.d;
};
}
];
})
];
};
};
}
Under the hood
This expression leverages nix-straight.el under the hood for installing dependencies. 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.
Using the daemon
To use the daemon, simply enable the emacs service (with NixOS
, home-manager
or nix-darwin
) and use the doom emacs package. doom-emacs
will need to be
referenced at the top of your config file.
{
services.emacs = {
enable = true;
package = doom-emacs; # Not needed if you're using the Home-Manager module instead
};
}
to connect to the daemon you can now run emacsclient -c