(define-module (oni home services zsh) #:use-module (gnu services configuration) #:use-module (gnu packages shellutils) #:use-module (gnu home services) #:use-module (gnu home services shells) #:use-module (gnu home services utils) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (oni packages zsh) #:export (home-zsh-autosuggestions-service-type home-zsh-autosuggestions-configuration home-zsh-syntax-highlighting-service-type home-zsh-syntax-highlighting-configuration home-zsh-contextual-abbrevs-service-type home-zsh-contextual-abbrevs-configuration home-zsh-autopair-service-type home-zsh-autopair-configuration)) (define-configuration/no-serialization home-zsh-autosuggestions-configuration (package (package zsh-autosuggestions) "Package to use for setting zsh-autosuggestions")) (define (add-zsh-autosuggestions config) (home-zsh-extension (zshrc (list (mixed-text-file "zshrc" "source " (home-zsh-autosuggestions-configuration-package config) "/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"))))) (define (add-zsh-autosuggestions-packages config) (list (home-zsh-autosuggestions-configuration-package config))) (define home-zsh-autosuggestions-service-type (service-type (name 'home-zsh-autosuggestions) (extensions (list (service-extension home-zsh-service-type add-zsh-autosuggestions) (service-extension home-profile-service-type add-zsh-autosuggestions-packages))) (compose identity) (default-value (home-zsh-autosuggestions-configuration)) (description "Install and configure zsh-autosuggestions."))) (define-configuration/no-serialization home-zsh-syntax-highlighting-configuration (package (package zsh-syntax-highlighting) "Package to use for setting zsh-syntax-highlighting.")) (define (add-zsh-syntax-highlighting config) (home-zsh-extension (zshrc (list (mixed-text-file "zshrc" "source " (home-zsh-syntax-highlighting-configuration-package config) "/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"))))) (define (add-zsh-syntax-highlighting-packages config) (list (home-zsh-syntax-highlighting-configuration-package config))) (define home-zsh-syntax-highlighting-service-type (service-type (name 'home-zsh-syntax-highlighting) (extensions (list (service-extension home-zsh-service-type add-zsh-syntax-highlighting) (service-extension home-profile-service-type add-zsh-syntax-highlighting-packages))) (compose identity) (default-value (home-zsh-syntax-highlighting-configuration)) (description "Install and configure zsh-syntax-highlighting."))) (define-configuration/no-serialization home-zsh-contextual-abbrevs-configuration (package (package zsh-contextual-abbrevs) "Package to use for setting zsh-contexual-abbrevs.")) (define (add-zsh-contextual-abbrevs config) (home-zsh-extension (zshrc (list (mixed-text-file "zshrc" "source " (home-zsh-contextual-abbrevs-configuration-package config) "/share/zsh/plugins/zsh-contextual-abbrevs/contextual-abbrevs.zsh"))))) (define (add-zsh-contextual-abbrevs-packages config) (list (home-zsh-contextual-abbrevs-configuration-package config))) (define home-zsh-contextual-abbrevs-service-type (service-type (name 'home-zsh-contextual-abbrevs) (extensions (list (service-extension home-zsh-service-type add-zsh-contextual-abbrevs) (service-extension home-profile-service-type add-zsh-contextual-abbrevs-packages))) (compose identity) (default-value (home-zsh-contextual-abbrevs-configuration)) (description "Install and configure zsh-contextual-abbrevs."))) (define-configuration/no-serialization home-zsh-autopair-configuration (package (package zsh-autopair) "Package to use for setting zsh-autopair.")) (define (add-zsh-autopair config) (home-zsh-extension (zshrc (list (mixed-text-file "zshrc" "source " (home-zsh-autopair-configuration-package config) "/share/zsh/plugins/zsh-autopair/zsh-autopair.zsh"))))) (define (add-zsh-autopair-packages config) (list (home-zsh-autopair-configuration-package config))) (define home-zsh-autopair-service-type (service-type (name 'home-zsh-autopair) (extensions (list (service-extension home-zsh-service-type add-zsh-autopair) (service-extension home-profile-service-type add-zsh-autopair-packages))) (compose identity) (default-value (home-zsh-autopair-configuration)) (description "Install and configure zsh-autopair.")))