aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/config/rincewind.scm
blob: 773490079ff3673760833dadd81e0edac80bbe7e (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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
(define-module (oni home config rincewind)
  #:use-module ((gnu home services guix)
                #:select (home-channels-service-type))
  #:use-module ((gnu home)
                #:select (home-environment))
  #:use-module ((gnu packages certs)
                #:select (nss-certs))
  #:use-module ((gnu packages emacs)
                #:select (emacs-next))
  #:use-module ((gnu packages emacs-xyz)
                #:select (emacs-org-roam
                          emacs-vterm
                          emacs-guix
                          emacs-org-contacts))
  #:use-module ((gnu packages file-systems)
                #:select (tmsu))
  #:use-module ((gnu packages forth)
                #:select (gforth))
  #:use-module ((gnu packages gnome)
                #:select (hicolor-icon-theme))
  #:use-module ((gnu packages linux)
                #:select (fakeroot))
  #:use-module ((gnu packages mail)
                #:select (notmuch
                          emacs-notmuch))
  #:use-module ((gnu packages music)
                #:select (easytag))
  #:use-module ((gnu packages video)
                #:select (mpv
                          mpv-mpris))
  #:use-module ((gnu packages)
                #:select (specification->package+output))
  #:use-module ((gnu services)
                #:select (service
                          simple-service))
  #:use-module ((guix channels)
                #:select (channel
                          make-channel-introduction
                          openpgp-fingerprint))
  #:use-module ((guix packages)
                #:select (package-name))
  #:use-module ((guix transformations)
                #:select (options->transformation))
  #:use-module ((nongnu packages emacs)
                #:select (emacs-org-roam-ui))
  #:use-module ((oni home config common)
                #:select (home-redshift-service
                          ;; home-xbindkeys-service
                          home-zsh-service
                          home-guile-service
                          home-xmodmap-service
                          home-openssh-service
                          home-kitty-service))
  #:use-module ((oni home services dunst)
                #:select (home-dunst-default-service))
  #:use-module ((oni home services emacs)
                #:select (home-emacs-service-type
                          home-emacs-configuration))
  #:use-module ((oni home services environment)
                #:select (home-environment-service))
  #:use-module ((oni home services flameshot)
                #:select (home-flameshot-service-type))
  #:use-module ((oni home services kdeconnect)
                #:select (home-kdeconnect-service-type))
  #:use-module ((oni home services mpd)
                #:select (home-mpd-service-type
                          home-mpd-configuration
                          <home-mpd-audio-output>
                          home-mpc-update-service-type
                          home-mpd-notify-service-type))
  #:use-module ((oni home services picom)
                #:select (home-picom-service-type
                          home-picom-configuration))
  #:use-module ((oni home services polybar)
                #:select (home-polybar-service-type
                          home-polybar-configuration))
  #:use-module ((oni home services rofi)
                #:select (home-rofi-default-service))
  #:use-module ((oni home services stumpwm)
                #:select (home-stumpwm-service-type
                          home-stumpwm-configuration))
  #:use-module ((oni home services syncthing)
                #:select (home-syncthing-service-type))
  #:use-module ((oni home services utilities)
                #:select (home-inkplate-display-service-type))
  #:use-module ((oni home services zsh)
                #:select (home-zsh-syntax-highlighting-service-type
                          home-zsh-autosuggestions-service-type))
  #:use-module ((oni packages count-emails)
                #:select (count-emails))
  #:use-module ((oni packages emacs)
                #:select (emacs-inkplate))
  #:use-module ((oni packages emacs-config)
                #:select (emacs-oni-org-roam
                          emacs-oni-vterm
                          emacs-oni-elfeed
                          emacs-oni-elisp
                          emacs-oni-eshell
                          emacs-oni-core
                          emacs-oni-compilation
                          emacs-oni-common-lisp
                          emacs-oni-gui
                          emacs-oni-magit
                          emacs-oni-notmuch))
  #:use-module ((oni packages hlwm-run-or-raise)
                #:select (hlwm-run-or-raise))
  #:use-module ((oni packages inbox-size)
                #:select (inbox-size))
  #:use-module ((oni packages mpd-random-albums)
                #:select (mpd-random-albums))
  #:use-module ((oni packages notmuch-collect-tasks)
                #:select (notmuch-collect-tasks))
  #:use-module ((oni packages notmuch-tag-mailinglists)
                #:select (notmuch-tag-mailinglists))
  #:use-module ((oni packages pick-random-wallpaper)
                #:select (pick-random-wallpaper))
  #:use-module ((oni packages shutdown-rofi)
                #:select (shutdown-rofi))
  #:use-module ((oni packages stumpwm)
                #:select (stumpwm+swank))
  #:use-module ((oni packages emacs-outli)
                #:select (emacs-outli))
  #:use-module ((oop goops)
                #:select (make)))

(define (with-master-branch package)
  "Apply a transformation to PACKAGE so that it uses the master branch."
  ((options->transformation
    `((with-branch . ,(string-append (package-name package) "=master"))))
   package))

(define rincewind-picom-service
  (service home-picom-service-type
           (home-picom-configuration
            (backend "glx")
            (glx-no-stencil #t)
            (detect-transient #t)
            (shadow #t)
            (shadow-radius 5)
            (shadow-opacity 85)
            (shadow-offset-x 15)
            (shadow-offset-y 15)
            (shadow-exclude
             '("name = 'mowedline'"
               "class_g = 'trayer'"
               "bounding_shaped"
               "class_g = 'i3lock'"))
            (wintypes
             '((dnd (shadow . #f))
               (dock (shadow . #f))))
            (corner-radius 15)
            (inactive-opacity 75)
            (active-opacity 95)
            (frame-opacity 100)
            (inactive-opacity-override #t)
            (opacity-rule
             '("100:name *?= '(Meeting) | Microsoft Teams'"
               "100:name *?= 'freerdp'"))
            (blur-background #t)
            (blur-background-frame #t)
            (blur
             '((method . "dual_kawase")
               (strength . 6.9)))
            (blur-background-fixed #t)
            (blur-background-exclude
             '("name *= 'rofi'"
               "class_g = 'i3lock'"))
            (focus-exclude
             '("name *= 'rofi'"
               "class_g = 'i3lock'"))
            (fading #t)
            (fade-exclude
             `("class_g = 'i3lock'"))
            (fade-in-step 3)
            (fade-out-step 3))))

(home-environment
 (packages (list mpv mpv-mpris easytag
                 (specification->package+output "glibc-locales")
                 (specification->package+output "font-fantasque-sans")
                 (specification->package+output "font-comic-neue")
                 hlwm-run-or-raise
                 pick-random-wallpaper
                 notmuch-collect-tasks
                 notmuch-tag-mailinglists
                 (inbox-size emacs-next)
                 count-emails
                 shutdown-rofi
                 emacs-org-roam
                 emacs-org-roam-ui
                 emacs-vterm
                 emacs-org-contacts
                 fakeroot               ; Needed for build arch packages
                 tmsu
                 mpd-random-albums
                 notmuch
                 emacs-notmuch
                 emacs-inkplate
                 emacs-outli
                 emacs-guix
                 emacs-oni-org-roam
                 emacs-oni-vterm
                 emacs-oni-elisp
                 emacs-oni-core
                 emacs-oni-elfeed
                 emacs-oni-eshell
                 emacs-oni-compilation
                 emacs-oni-common-lisp
                 emacs-oni-gui
                 emacs-oni-magit
                 emacs-oni-notmuch
                 gforth
                 ;; Might be needed for certain icons?
                 hicolor-icon-theme
                 ;; Might be needed for cetrificates
                 nss-certs))

 (services
  (list
   home-environment-service
   home-rofi-default-service
   home-dunst-default-service
   home-redshift-service
   ;; home-xbindkeys-service
   home-zsh-service
   home-guile-service
   home-xmodmap-service
   home-openssh-service
   home-kitty-service
   rincewind-picom-service

   ;; This has to be the first extension because it needs to be added to the
   ;; configuration last.
   (service home-zsh-syntax-highlighting-service-type)
   (service home-zsh-autosuggestions-service-type)

   (simple-service 'my-channel-service
                   home-channels-service-type
                   (list
                    (channel
                     (name 'oni)
                     (url "https://code.ryuslash.org/ryuslash/guix-packages.git")
                     (introduction
                      (make-channel-introduction
                       "646573578b7adfbff415645fed201269076cebf6"
                       (openpgp-fingerprint
                        "061C C5C4 D936 C9A8 AECC  1A17 7D5C 407B 4350 25C1"))))
                    (channel
                     (name 'guix-gaming-games)
                     (url "https://gitlab.com/guix-gaming-channels/games.git")
                     (introduction
                      (make-channel-introduction
                       "c23d64f1b8cc086659f8781b27ab6c7314c5cca5"
                       (openpgp-fingerprint
                        "50F3 3E2E 5B0C 3D90 0424  ABE8 9BDC F497 A4BB CC7F"))))))

   ;; (service home-polybar-service-type
   ;;          (home-polybar-configuration
   ;;           (bar "rincewind")))

   ;; (service home-kdeconnect-service-type)
   (service home-syncthing-service-type)

   (service home-emacs-service-type
            (home-emacs-configuration
             (package emacs-next)))

   (service home-flameshot-service-type)

   (service home-mpd-service-type
            (home-mpd-configuration
             (music-directory "~/music")
             (playlist-directory "~/music/playlists")
             (log-file "~/.local/share/mpd/mpd.log")
             (pid-file "~/.local/share/mpd/mpd.pid")
             (db-file "~/.local/share/mpd/mpd.db")
             (state-file "~/.local/share/mpd/mpdstate")
             (audio-outputs
              (list (make <home-mpd-audio-output> #:type "pulse" #:name "MPD Pulse")
                    (make <home-mpd-audio-output>
                      #:type "fifo"
                      #:name "Visualizer"
                      #:path "/tmp/mpd.fifo"
                      #:format "44100:16:2")))))
   (service home-mpc-update-service-type)
   (service home-mpd-notify-service-type)

   (service home-stumpwm-service-type
            (home-stumpwm-configuration
             (package stumpwm+swank)))

   (service home-inkplate-display-service-type))))