From 28aa34bf8d8965ab3f88b01bf75ce0a7ad56672e Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 4 Mar 2026 23:50:09 -0800 Subject: Add ‘home-zsh-direnv-service-type’ --- oni/home/config/common.scm | 3 ++- oni/home/services/zsh.scm | 36 +++++++++++++++++++++++++++++++++++- 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."))) -- cgit v1.3-2-g0d8e