aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services/zsh.scm
blob: 65005f7f4e5b38dda84581511345a7e50452fffb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
(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.")))