summaryrefslogtreecommitdiffstats
path: root/src/jd/features
diff options
context:
space:
mode:
authorjdlugosz963 <jdlugosz963@gmail.com>2025-09-14 20:54:39 +0200
committerjdlugosz963 <jdlugosz963@gmail.com>2025-09-14 20:54:39 +0200
commit745b985effc740962f02101b871491068c624e9e (patch)
tree8e4b925fbfa917d33972077c425c5d15a0ddc074 /src/jd/features
parentbc591dcedf45b80f70661f33c42c68dbd581e901 (diff)
downloaddotfiles-745b985effc740962f02101b871491068c624e9e.tar.gz
dotfiles-745b985effc740962f02101b871491068c624e9e.zip
Tune a little my new rde configHEADmaster
Diffstat (limited to 'src/jd/features')
-rw-r--r--src/jd/features/mail.scm34
-rw-r--r--src/jd/features/math.scm68
-rw-r--r--src/jd/features/nextcloud.scm50
3 files changed, 151 insertions, 1 deletions
diff --git a/src/jd/features/mail.scm b/src/jd/features/mail.scm
index f5c3536..bf137e9 100644
--- a/src/jd/features/mail.scm
+++ b/src/jd/features/mail.scm
@@ -27,7 +27,7 @@
27 #:use-module (guix diagnostics) 27 #:use-module (guix diagnostics)
28 #:use-module (guix i18n) 28 #:use-module (guix i18n)
29 29
30 #:export (feature-l2md* feature-mail-mcron)) 30 #:export (feature-l2md* feature-mail-mcron feature-octave))
31 31
32(define* (feature-l2md* 32(define* (feature-l2md*
33 #:key 33 #:key
@@ -113,3 +113,35 @@ features that have been enabled."
113 (feature 113 (feature
114 (name 'mail-mcron) 114 (name 'mail-mcron)
115 (home-services-getter get-home-services))) 115 (home-services-getter get-home-services)))
116
117(define* (feature-octave
118 #:key (octave (@ (gnu packages maths) octave-cli)))
119 (define f-name 'octave)
120 (define (get-home-services config)
121 (list
122 (rde-elisp-configuration-service
123 f-name
124 config
125 `((with-eval-after-load 'org
126 (require 'ob-octave)
127 (add-to-list 'org-structure-template-alist
128 '("octave" . "src octave"))
129 (org-babel-do-load-languages
130 'org-babel-load-languages
131 '((octave . t)))
132 (setq org-babel-default-header-args:octave
133 '((:results . "output")
134 (:session . "octave")
135 (:exports . "both")
136 (:eval . "no-export"))))))
137 (simple-service
138 'octave-packages
139 home-profile-service-type
140 (append (or (and (get-value 'python config)
141 (list (@ (gnu packages python-xyz) python-sympy)))
142 '())
143 (list octave)))))
144 (feature
145 (name f-name)
146 (values `((,f-name . #t)))
147 (home-services-getter get-home-services)))
diff --git a/src/jd/features/math.scm b/src/jd/features/math.scm
new file mode 100644
index 0000000..7609370
--- /dev/null
+++ b/src/jd/features/math.scm
@@ -0,0 +1,68 @@
1(define-module (jd features math)
2 #:use-module (rde features)
3 #:use-module (gnu services)
4 #:use-module (rde features emacs)
5 #:use-module (gnu home services)
6
7
8 #:use-module (rde packages)
9 #:use-module (rde exceptions)
10
11 #:use-module (rde predicates)
12
13 #:use-module (rde features mail)
14 #:use-module ((rde features mail providers) #:prefix mail-providers:)
15 #:use-module (gnu packages mail)
16 #:use-module (gnu packages emacs-xyz)
17 #:use-module (rde packages emacs-xyz)
18 #:use-module (rde packages mail)
19 #:use-module (rde serializers elisp)
20 #:use-module (rde home services mail)
21
22 #:use-module (gnu services configuration)
23
24 #:use-module (gnu home-services mail)
25 #:use-module (gnu home services mcron)
26 #:use-module (gnu home-services version-control)
27 #:use-module (gnu home services xdg)
28
29 #:use-module (ice-9 match)
30 #:use-module (srfi srfi-1)
31 #:use-module (guix gexp)
32 #:use-module (guix deprecation)
33 #:use-module (guix diagnostics)
34 #:use-module (guix i18n)
35
36 #:export (feature-octave))
37
38(define* (feature-octave
39 #:key (octave (@ (gnu packages maths) octave-cli)))
40 (define f-name 'octave)
41 (define (get-home-services config)
42 (list
43 (rde-elisp-configuration-service
44 f-name
45 config
46 `((with-eval-after-load 'org
47 (require 'ob-octave)
48 (add-to-list 'org-structure-template-alist
49 '("octave" . "src octave"))
50 (org-babel-do-load-languages
51 'org-babel-load-languages
52 '((octave . t)))
53 (setq org-babel-default-header-args:octave
54 '((:results . "output")
55 (:session . "octave")
56 (:exports . "both")
57 (:eval . "no-export"))))))
58 (simple-service
59 'octave-packages
60 home-profile-service-type
61 (append (or (and (get-value 'python config)
62 (list (@ (gnu packages python-xyz) python-sympy)))
63 '())
64 (list octave)))))
65 (feature
66 (name f-name)
67 (values `((,f-name . #t)))
68 (home-services-getter get-home-services)))
diff --git a/src/jd/features/nextcloud.scm b/src/jd/features/nextcloud.scm
new file mode 100644
index 0000000..ff3c9fb
--- /dev/null
+++ b/src/jd/features/nextcloud.scm
@@ -0,0 +1,50 @@
1(define-module (jd features nextcloud)
2 #:use-module (rde features)
3 #:use-module (rde predicates)
4
5 #:use-module (gnu packages)
6 #:use-module (gnu packages polkit)
7 #:use-module (gnu services)
8 #:use-module (gnu services configuration)
9 #:use-module (gnu home services)
10 #:use-module (gnu home services shepherd)
11 #:use-module (guix gexp)
12 #:export (feature-nextcloud))
13
14(define* (feature-nextcloud
15 #:key
16 (nextcloud-client (@ (gnu packages sync) nextcloud-client))
17 (gnome-keyring (@ (gnu packages gnome) gnome-keyring))
18 (polkit? #t))
19 (define f-name 'nextcloud)
20
21 (define (get-home-services config)
22 (list
23 (simple-service
24 'add-nextcloud-home-package
25 home-profile-service-type
26 (append
27 (if polkit? (list gnome-keyring) '())
28 (list nextcloud-client)))
29
30 (simple-service
31 'nextcloud-shepherd-service
32 home-shepherd-service-type
33 (list
34 (shepherd-service
35 (provision `(nextcloud))
36 (auto-start? #t)
37 (stop #~(make-kill-destructor))
38 (start #~(make-forkexec-constructor
39 (list #$(program-file
40 "nextcloud"
41 #~(begin
42 (setenv "QT_QPA_PLATFORM" "wayland-egl;xcb")
43 (apply system*
44 (list
45 #$(file-append (@ (gnu packages sync) nextcloud-client) "/bin/nextcloud")))))))))))))
46
47 (feature
48 (name f-name)
49 (values `((,f-name . #t)))
50 (home-services-getter get-home-services)))