summaryrefslogtreecommitdiffstats
path: root/src/jd/features/math.scm
blob: 7609370d2c7c67548407601af5142787939d2697 (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
(define-module (jd features math)
  #:use-module (rde features)
  #:use-module (gnu services)
  #:use-module (rde features emacs)
  #:use-module (gnu home services)


  #:use-module (rde packages)
  #:use-module (rde exceptions)

  #:use-module (rde predicates)

  #:use-module (rde features mail)
  #:use-module ((rde features mail providers) #:prefix mail-providers:)
  #:use-module (gnu packages mail)
  #:use-module (gnu packages emacs-xyz)
  #:use-module (rde packages emacs-xyz)
  #:use-module (rde packages mail)
  #:use-module (rde serializers elisp)
  #:use-module (rde home services mail)

  #:use-module (gnu services configuration)

  #:use-module (gnu home-services mail)
  #:use-module (gnu home services mcron)
  #:use-module (gnu home-services version-control)
  #:use-module (gnu home services xdg)

  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)
  #:use-module (guix gexp)
  #:use-module (guix deprecation)
  #:use-module (guix diagnostics)
  #:use-module (guix i18n)

  #:export (feature-octave))

(define* (feature-octave
          #:key (octave (@ (gnu packages maths) octave-cli)))
  (define f-name 'octave)
  (define (get-home-services config)
    (list
     (rde-elisp-configuration-service
      f-name
      config
      `((with-eval-after-load 'org
          (require 'ob-octave)
          (add-to-list 'org-structure-template-alist
                       '("octave" . "src octave"))
          (org-babel-do-load-languages
           'org-babel-load-languages
           '((octave . t)))
          (setq org-babel-default-header-args:octave
                '((:results . "output")
                  (:session . "octave")
                  (:exports . "both")
                  (:eval . "no-export"))))))
     (simple-service
      'octave-packages
      home-profile-service-type
      (append (or (and (get-value 'python config)
                       (list (@ (gnu packages python-xyz) python-sympy)))
                  '())
              (list octave)))))
  (feature
   (name f-name)
   (values `((,f-name . #t)))
   (home-services-getter get-home-services)))