about summary refs log tree commit diff
path: root/modules/workstation
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-08-13 18:59:31 +0000
committerAlyssa Ross <hi@alyssa.is>2020-08-15 18:21:23 +0000
commit8914aa6ec251920cc6367938bc02e3e4dfd42aa8 (patch)
tree2588eeb0a3f6c79d035ffdbc6b26b15cbbf79edf /modules/workstation
parent43709781a62cee2c29d31e8f2a697015106d68b8 (diff)
downloadnixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar.gz
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar.bz2
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar.lz
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar.xz
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.tar.zst
nixlib-8914aa6ec251920cc6367938bc02e3e4dfd42aa8.zip
modules/emacs: set user-emacs-directory early
This will prevent a warning on startup that $XDG_CONFIG_HOME/.emacs.d
isn't writable.
Diffstat (limited to 'modules/workstation')
-rw-r--r--modules/workstation/emacs/default.el4
-rw-r--r--modules/workstation/emacs/default.nix10
-rw-r--r--modules/workstation/emacs/early-init.el4
3 files changed, 14 insertions, 4 deletions
diff --git a/modules/workstation/emacs/default.el b/modules/workstation/emacs/default.el
index 95bfc762a975..187f894764e2 100644
--- a/modules/workstation/emacs/default.el
+++ b/modules/workstation/emacs/default.el
@@ -11,10 +11,6 @@
 ;;; Major modes ;;;
 (add-to-list 'auto-mode-alist (cons "\\.adoc\\'" 'adoc-mode))
 
-;;; Filesystem locations ;;;
-(setq user-emacs-directory
-      (concat (file-name-as-directory (getenv "XDG_DATA_HOME")) "emacs"))
-
 ;;; ispell ;;;
 ;; System locale is Esperanto, but I write in English much more, and
 ;; spelling in Esperanto is easy anyway. ;)
diff --git a/modules/workstation/emacs/default.nix b/modules/workstation/emacs/default.nix
index b1c99b9b9baf..aa32464da3da 100644
--- a/modules/workstation/emacs/default.nix
+++ b/modules/workstation/emacs/default.nix
@@ -21,4 +21,14 @@
   ];
 
   home.qyliss.dirs."state/emacs" = {};
+
+  users.users.qyliss.xdg.config.paths."emacs" = with pkgs;
+    runCommandNoCC ".emacs.d" {
+      nativeBuildInputs = [ emacs-pgtk ];
+    } ''
+      cp ${./early-init.el} early-init.el
+      emacs -L . --batch -f batch-byte-compile *.el
+      install -d $out
+      install *.el *.elc $out
+    '';
 }
diff --git a/modules/workstation/emacs/early-init.el b/modules/workstation/emacs/early-init.el
new file mode 100644
index 000000000000..8cac0647dd4e
--- /dev/null
+++ b/modules/workstation/emacs/early-init.el
@@ -0,0 +1,4 @@
+;; This defaults to XDG_CONFIG_HOME, which is bad because lots of
+;; state gets written to it.
+(setq user-emacs-directory
+      (concat (file-name-as-directory (getenv "XDG_DATA_HOME")) "emacs"))