diff options
Diffstat (limited to 'oni/home/services/zsh.scm')
| -rw-r--r-- | oni/home/services/zsh.scm | 36 |
1 files changed, 35 insertions, 1 deletions
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."))) |
