dotfiles/oni/home/services/zsh.scm

139 lines
4.7 KiB
Scheme

(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 (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-configuration/no-serialization home-zsh-autopair-configuration
(package
(package zsh-autopair)
"Package to use for setting zsh-autopair."))
(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.")))