Refactor noninteractive init; set doom-emacs-dir internally
This commit is contained in:
parent
c24c868945
commit
d85a2a6af0
2 changed files with 16 additions and 27 deletions
2
Makefile
2
Makefile
|
@ -1,5 +1,5 @@
|
||||||
# Ensure emacs always runs from this makefile's PWD
|
# Ensure emacs always runs from this makefile's PWD
|
||||||
EMACS = emacs -q --eval "(setq user-emacs-directory default-directory load-prefer-newer t)"
|
EMACS = emacs -q --eval "(setq noninteractive 'doom)"
|
||||||
DOOM = $(EMACS) --batch -l init.el
|
DOOM = $(EMACS) --batch -l init.el
|
||||||
DOOMI = $(subst --batch,,$(DOOM))
|
DOOMI = $(subst --batch,,$(DOOM))
|
||||||
|
|
||||||
|
|
39
core/core.el
39
core/core.el
|
@ -1,23 +1,5 @@
|
||||||
;;; core.el --- the heart of the beast -*- lexical-binding: t; -*-
|
;;; core.el --- the heart of the beast -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;;; Naming conventions:
|
|
||||||
;;
|
|
||||||
;; doom-... public variables or non-interactive functions
|
|
||||||
;; doom--... private anything (non-interactive), not safe for direct use
|
|
||||||
;; doom/... an interactive function; safe for M-x or keybinding
|
|
||||||
;; doom//... an interactive function for managing/maintaining Doom itself
|
|
||||||
;; doom:... an evil operator, motion or command
|
|
||||||
;; doom|... hook function
|
|
||||||
;; doom*... advising functions
|
|
||||||
;; doom@... a hydra command
|
|
||||||
;; ...! a macro or function that configures DOOM
|
|
||||||
;; =... an interactive command that starts an app module
|
|
||||||
;; %... functions used for in-snippet logic
|
|
||||||
;; +... Any of the above but part of a module, e.g. `+emacs-lisp|init-hook'
|
|
||||||
;;
|
|
||||||
;; Autoloaded functions are in core/autoload/*.el and modules/*/*/autoload.el or
|
|
||||||
;; modules/*/*/autoload/*.el.
|
|
||||||
|
|
||||||
(defvar doom-version "2.0.9"
|
(defvar doom-version "2.0.9"
|
||||||
"Current version of DOOM emacs.")
|
"Current version of DOOM emacs.")
|
||||||
|
|
||||||
|
@ -25,7 +7,11 @@
|
||||||
"If non-nil, all doom functions will be verbose. Set DEBUG=1 in the command
|
"If non-nil, all doom functions will be verbose. Set DEBUG=1 in the command
|
||||||
line or use --debug-init to enable this.")
|
line or use --debug-init to enable this.")
|
||||||
|
|
||||||
(defvar doom-emacs-dir (eval-when-compile (file-truename user-emacs-directory))
|
;;
|
||||||
|
(defvar doom-emacs-dir
|
||||||
|
(if (eq noninteractive 'doom)
|
||||||
|
default-directory
|
||||||
|
(eval-when-compile (file-truename user-emacs-directory)))
|
||||||
"The path to this emacs.d directory.")
|
"The path to this emacs.d directory.")
|
||||||
|
|
||||||
(defvar doom-core-dir (concat doom-emacs-dir "core/")
|
(defvar doom-core-dir (concat doom-emacs-dir "core/")
|
||||||
|
@ -54,16 +40,19 @@ Use this for files that change often, like cache files.")
|
||||||
"Where package.el and quelpa plugins (and their caches) are stored.")
|
"Where package.el and quelpa plugins (and their caches) are stored.")
|
||||||
|
|
||||||
(defvar doom-private-dir
|
(defvar doom-private-dir
|
||||||
(if (file-directory-p "~/.doom.d")
|
(eval-when-compile
|
||||||
"~/.doom.d/"
|
(or (let ((xdg-path (concat (or (getenv "XDG_CONFIG_HOME")
|
||||||
(concat (or (getenv "XDG_CONFIG_HOME")
|
|
||||||
"~/.config")
|
"~/.config")
|
||||||
"/doom/"))
|
"/doom/")))
|
||||||
"TODO")
|
(if (file-directory-p xdg-path) xdg-path))
|
||||||
|
"~/.doom.d/"))
|
||||||
|
"Where your private customizations are placed. Must end in a slash. Respects
|
||||||
|
XDG directory conventions if ~/.config/doom exists.")
|
||||||
|
|
||||||
(defconst EMACS26+ (not (version< emacs-version "26")))
|
(defconst EMACS26+ (not (version< emacs-version "26")))
|
||||||
(defconst EMACS27+ (not (version< emacs-version "27")))
|
(defconst EMACS27+ (not (version< emacs-version "27")))
|
||||||
|
|
||||||
|
(setq user-emacs-directory doom-emacs-dir)
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;; UTF-8 as the default coding system
|
;; UTF-8 as the default coding system
|
||||||
|
@ -82,7 +71,7 @@ Use this for files that change often, like cache files.")
|
||||||
debug-on-error (and (not noninteractive) doom-debug-mode)
|
debug-on-error (and (not noninteractive) doom-debug-mode)
|
||||||
ffap-machine-p-known 'reject ; don't ping things that look like domain names
|
ffap-machine-p-known 'reject ; don't ping things that look like domain names
|
||||||
idle-update-delay 2 ; update ui less often
|
idle-update-delay 2 ; update ui less often
|
||||||
load-prefer-newer (or noninteractive doom-debug-mode)
|
load-prefer-newer (or (eq noninteractive 'doom) doom-debug-mode)
|
||||||
;; keep the point out of the minibuffer
|
;; keep the point out of the minibuffer
|
||||||
minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt)
|
minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt)
|
||||||
;; History & backup settings (save nothing, that's what git is for)
|
;; History & backup settings (save nothing, that's what git is for)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue