aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2025-02-27 00:12:59 -0800
committerGravatar Tom Willemse2025-02-27 00:12:59 -0800
commit41e304973dd1ee1b0899aff5584f0b3faabeb9dd (patch)
tree9e65cdbace55ebf5cc2b755529cedbeaf3a3935e
parent3843e5694c8cd8c05ecc64c6b8af15efa55ebc5f (diff)
downloadnew-dotfiles-41e304973dd1ee1b0899aff5584f0b3faabeb9dd.tar.gz
new-dotfiles-41e304973dd1ee1b0899aff5584f0b3faabeb9dd.zip
rincewind: Add envrc to automatically load environment
-rw-r--r--oni/home/config/rincewind.scm3
-rw-r--r--oni/home/services/emacs.scm33
2 files changed, 34 insertions, 2 deletions
diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm
index e845a26..b2bb846 100644
--- a/oni/home/config/rincewind.scm
+++ b/oni/home/config/rincewind.scm
@@ -87,6 +87,7 @@
home-emacs-configuration
home-emacs-helpful-configuration
home-emacs-yasnippet-capf-configuration
+ home-emacs-envrc-configuration
home-emacs-dashboard-service-type
home-emacs-dashboard-configuration
home-emacs-eros-service-type
@@ -419,6 +420,8 @@
(local-file "../services/emacs/oni-helpful.el")))))
(yasnippet-capf
(home-emacs-yasnippet-capf-configuration))
+ (envrc
+ (home-emacs-envrc-configuration))
(configurations
(list
(local-file "../services/emacs/init.el")
diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm
index ec1d49e..e0af1f9 100644
--- a/oni/home/services/emacs.scm
+++ b/oni/home/services/emacs.scm
@@ -19,7 +19,8 @@
emacs-vterm
emacs-org-modern
emacs-org-caldav
- emacs-org-journal))
+ emacs-org-journal
+ emacs-envrc))
#:use-module ((gnu home services)
#:select (service-type
service-extension
@@ -53,6 +54,7 @@
home-emacs-configuration
home-emacs-helpful-configuration
home-emacs-yasnippet-capf-configuration
+ home-emacs-envrc-configuration
home-emacs-dashboard-service-type
home-emacs-dashboard-configuration
@@ -126,6 +128,16 @@
(define-maybe home-emacs-yasnippet-capf-configuration)
+(define-configuration/no-serialization home-emacs-envrc-configuration
+ (package
+ (package emacs-envrc)
+ "Package to use for setting up emacs envrc.")
+ (configurations
+ (text-config '())
+ "Configuration for emacs-envrc."))
+
+(define-maybe home-emacs-envrc-configuration)
+
(define-configuration/no-serialization home-emacs-configuration
(package
(package emacs)
@@ -139,6 +151,9 @@
(yasnippet-capf
maybe-home-emacs-yasnippet-capf-configuration
"Configuration for yasnippet-capf.")
+ (envrc
+ maybe-home-emacs-envrc-configuration
+ "Configuration for envrc.")
(configurations
(text-config '())
"A list of other configuration files to autoload"))
@@ -155,7 +170,12 @@
(home-emacs-configuration-yasnippet-capf config))
(home-emacs-yasnippet-capf-configuration-package
(maybe-value
- (home-emacs-configuration-yasnippet-capf config)))))))
+ (home-emacs-configuration-yasnippet-capf config))))
+ (when (maybe-value-set?
+ (home-emacs-configuration-envrc config))
+ (home-emacs-envrc-configuration-package
+ (maybe-value
+ (home-emacs-configuration-envrc config)))))))
(define (home-emacs-extensions original-config extension-configs)
(home-emacs-configuration
@@ -199,6 +219,15 @@
(maybe-value
(home-emacs-configuration-yasnippet-capf config)))))
"")
+ (if (maybe-value-set?
+ (home-emacs-configuration-envrc config))
+ (serialize-text-config
+ config (append
+ (list (mixed-text-file "envrc-config"
+ "(envrc-global-mode)\n"))
+ (home-emacs-envrc-configuration-configurations
+ (maybe-value
+ (home-emacs-configuration-envrc config))))))
(format #f "(setq custom-file (expand-file-name ~s user-emacs-directory))~%"
(home-emacs-configuration-custom-file config))
"(load custom-file :noerror)\n"