aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2026-03-04 23:50:09 -0800
committerGravatar Tom Willemse2026-03-04 23:50:09 -0800
commit28aa34bf8d8965ab3f88b01bf75ce0a7ad56672e (patch)
treebe668cdf30954e86cd7a613ab9e764c507a92893
parent4548d52fdaa0ab9a10d04d8fdf970bafb44e176d (diff)
downloadnew-dotfiles-28aa34bf8d8965ab3f88b01bf75ce0a7ad56672e.tar.gz
new-dotfiles-28aa34bf8d8965ab3f88b01bf75ce0a7ad56672e.zip
Add ‘home-zsh-direnv-service-type’
-rw-r--r--oni/home/config/common.scm3
-rw-r--r--oni/home/services/zsh.scm36
2 files changed, 37 insertions, 2 deletions
diff --git a/oni/home/config/common.scm b/oni/home/config/common.scm
index 87b268f..8e11b33 100644
--- a/oni/home/config/common.scm
+++ b/oni/home/config/common.scm
@@ -346,4 +346,5 @@ LocalForward 19999 localhost:19999"))
,(local-file "../../../zsh/.zsh/functions/x-yank"))
(".zsh/functions/_abcde"
,(local-file "../../../zsh/.zsh/functions/_abcde"))))
- (service home-zsh-completions-service-type)))
+ (service home-zsh-completions-service-type)
+ (service home-zsh-direnv-service-type)))
diff --git a/oni/home/services/zsh.scm b/oni/home/services/zsh.scm
index e8b6a14..6e4ee07 100644
--- a/oni/home/services/zsh.scm
+++ b/oni/home/services/zsh.scm
@@ -22,7 +22,9 @@
home-zsh-atuin-service-type
home-zsh-atuin-configuration
home-zsh-completions-service-type
- home-zsh-completions-configuration))
+ home-zsh-completions-configuration
+ home-zsh-direnv-service-type
+ home-zsh-direnv-configuration))
(define-maybe string)
@@ -276,3 +278,35 @@ statistics. For example, consider kubectl get rather than just kubectl.")
(compose identity)
(default-value (home-zsh-completions-configuration))
(description "Install and configure zsh-completions.")))
+
+(define-configuration home-zsh-direnv-configuration
+ (package
+ (package direnv)
+ "Package to use for setting direnv."))
+
+(define (add-zsh-direnv-packages config)
+ (list (home-zsh-direnv-configuration-package config)))
+
+(define (add-zsh-direnv config)
+ (home-zsh-extension
+ (zshrc
+ (list
+ (mixed-text-file
+ "zshrc"
+ "eval \"$("
+ (home-zsh-direnv-configuration-package config)
+ "/bin/direnv hook zsh)\"")))))
+
+(define home-zsh-direnv-service-type
+ (service-type
+ (name 'home-zsh-direnv)
+ (extensions
+ (list (service-extension
+ home-profile-service-type
+ add-zsh-direnv-packages)
+ (service-extension
+ home-zsh-service-type
+ add-zsh-direnv)))
+ (compose identity)
+ (default-value (home-zsh-direnv-configuration))
+ (description "Install and configure direnv.")))