dotfiles/oni/home/services/zsh.scm

62 lines
2.1 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)
#:export (home-zsh-autosuggestions-service-type
home-zsh-autosuggestions-configuration
home-zsh-syntax-highlighting-service-type
home-zsh-syntax-highlighting-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 home-zsh-autosuggestions-service-type
(service-type
(name 'home-zsh-autosuggestions)
(extensions
(list (service-extension
home-zsh-service-type
add-zsh-autosuggestions)))
(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 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)))
(compose identity)
(default-value (home-zsh-syntax-highlighting-configuration))
(description "Install and configure zsh-syntax-highlighting.")))