feat(emacs): Add withLocalConfig
override function
This function makes it possible to pass in a folder with additional local configuration from somewhere downstream.
This commit is contained in:
parent
0e5da6c34c
commit
99909ddd04
2 changed files with 17 additions and 8 deletions
|
@ -170,10 +170,11 @@
|
||||||
(telephone-line-setup)
|
(telephone-line-setup)
|
||||||
(ace-window-display-mode)
|
(ace-window-display-mode)
|
||||||
|
|
||||||
;; If a local configuration file exists, it should be loaded. No
|
;; If a local configuration library exists, it should be loaded.
|
||||||
;; other configuration comes from `user-emacs-directory'.
|
;;
|
||||||
(let ((local-file (expand-file-name (f-join user-emacs-directory "local.el"))))
|
;; This can be provided by calling my Emacs derivation with
|
||||||
(when (f-exists? local-file)
|
;; `withLocalConfig'.
|
||||||
(load local-file)))
|
(if-let (local-file (locate-library "local"))
|
||||||
|
(load local-file))
|
||||||
|
|
||||||
(provide 'init)
|
(provide 'init)
|
||||||
|
|
|
@ -84,12 +84,20 @@ let
|
||||||
# Custom packages
|
# Custom packages
|
||||||
[ carp-mode localPackages.dottime localPackages.term-switcher ]
|
[ carp-mode localPackages.dottime localPackages.term-switcher ]
|
||||||
)));
|
)));
|
||||||
in lib.fix(self: f: third_party.writeShellScriptBin "tazjins-emacs" ''
|
in lib.fix(self: l: f: third_party.writeShellScriptBin "tazjins-emacs" ''
|
||||||
exec ${tazjinsEmacs f}/bin/emacs \
|
exec ${tazjinsEmacs f}/bin/emacs \
|
||||||
--debug-init \
|
--debug-init \
|
||||||
--no-site-file \
|
--no-site-file \
|
||||||
--no-site-lisp \
|
--no-site-lisp \
|
||||||
--no-init-file \
|
--no-init-file \
|
||||||
--directory ${./config} \
|
--directory ${./config} ${if l != null then "--directory ${l}" else ""} \
|
||||||
--eval "(require 'init)" $@
|
--eval "(require 'init)" $@
|
||||||
'' // { overrideEmacs = f': self f'; }) identity
|
'' // {
|
||||||
|
# Call overrideEmacs with a function (pkgs -> pkgs) to modify the
|
||||||
|
# packages that should be included in this Emacs distribution.
|
||||||
|
overrideEmacs = f': self l f';
|
||||||
|
|
||||||
|
# Call withLocalConfig with the path to a *folder* containing a
|
||||||
|
# `local.el` which provides local system configuration.
|
||||||
|
withLocalConfig = confDir: self confDir f;
|
||||||
|
}) null identity
|
||||||
|
|
Loading…
Reference in a new issue