dotfiles/oni/home/services/zsh.scm

140 lines
4.7 KiB
Scheme
Raw Normal View History

2022-04-12 08:15:51 +02:00
(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)
2023-08-23 19:57:10 +02:00
#:use-module (oni packages zsh)
2022-04-12 08:15:51 +02:00
#:export (home-zsh-autosuggestions-service-type
home-zsh-autosuggestions-configuration
home-zsh-syntax-highlighting-service-type
2023-08-23 19:57:10 +02:00
home-zsh-syntax-highlighting-configuration
home-zsh-contextual-abbrevs-service-type
2023-08-30 07:24:25 +02:00
home-zsh-contextual-abbrevs-configuration
home-zsh-autopair-service-type
home-zsh-autopair-configuration))
2022-04-12 08:15:51 +02:00
(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)))
2022-04-12 08:15:51 +02:00
(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)))
2022-04-12 08:15:51 +02:00
(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)))
2022-04-12 08:15:51 +02:00
(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)))
2022-04-12 08:15:51 +02:00
(compose identity)
(default-value (home-zsh-syntax-highlighting-configuration))
(description "Install and configure zsh-syntax-highlighting.")))
2023-08-23 19:57:10 +02:00
(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.")))
2023-08-30 07:24:25 +02:00
(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.")))