aboutsummaryrefslogtreecommitdiff
path: root/tw/home/frm.scm
blob: 90975f2011df4569ca5125133a3fbe2a30e0e857 (about) (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
;; This "home-environment" file can be passed to 'guix home reconfigure'
;; to reproduce the content of your profile.  This is "symbolic": it only
;; specifies package names.  To reproduce the exact same profile, you also
;; need to capture the channels being used, as returned by "guix describe".
;; See the "Replicating Guix" section in the manual.

(define-module (tw home frm)
  #:use-module (gnu home)
  #:use-module (gnu home services)
  #:use-module (gnu home services desktop)
  #:use-module (gnu home services guix)
  #:use-module (gnu home services pm)
  #:use-module (gnu home services ssh)
  #:use-module (gnu packages finance)
  #:use-module (gnu services)
  #:use-module (guix gexp)
  #:use-module (tw home)
  #:use-module (tw services desktop)
  #:use-module (tw services dev-env)
  #:use-module (tw services git)
  #:use-module (tw services gnupg)
  #:use-module (tw services restic))

(define-public %frm-home
  (home-environment
   (packages
    ;; These packages will show up in the home profile, under ~/.guix-home/profile.
    ;; Graphical applications
    (list electrum))

   ;; To search for available home services, run 'guix home search KEYWORD'.
   (services
    (list
     ;; Batsignal: battery level notifications.
     (service home-batsignal-service-type
       (home-batsignal-configuration
        (batteries '("BAT1"))))

     (service home-dbus-service-type)

     (service tw-home-service-type)

     (service home-wayland-desktop-service-type
       (home-wayland-desktop-configuration
        (num-cores 12)))

     (service home-full-dev-env-service-type)

     (service home-pim-service-type)

     ;; On my private machine, I want to use my private PGP key normally, and
     ;; my work key only for work repositories.
     (service home-git-service-type
       (home-git-configuration
        (default-email "git@twilken.net")
        (default-signing-key "53EC3C06856883DD92355BC22FC78504681F69B0")
        (identities
         (list (home-git-identity
                (name "alice")
                (root-directory "~/src/alice")
                (email "timo.wilken@cern.ch")
                (signing-key "C2249BBE5E8761C943A0CFA1B7B3914BF63ACD7C"))
               (home-git-identity
                (name "atlas")
                (root-directory "~/src/atlas")
                (email "timo.wilken@cern.ch")
                (signing-key "C2249BBE5E8761C943A0CFA1B7B3914BF63ACD7C"))))))

     (service home-openssh-service-type
       (tw-openssh-configuration))

     (service home-gnupg-service-type
       (home-gnupg-configuration
        (default-key "53EC3C06856883DD92355BC22FC78504681F69B0")
        (gui-pinentry? #t)))

     (service home-restic-backup-service-type
       (list (restic-scheduled-backup
              (schedule #~"0 */2 * * *")
              (paths '(;; important user data
                       "~/src"
                       "~/.local/share/zsh/history"
                       ;; secrets
                       "~/.local/share/ssh-keys"
                       "~/.local/share/gnupg"
                       "~/.config/cern-ca-bundle.crt"
                       "~/.config/grid-personal-cert.pem"
                       "~/.config/grid-personal-key.pem"
                       "~/.config/syncthing"))
              (repo (restic-vin.wg-repo "timo/framework"))
              (password (restic-pass-key "computers/vin/restic-repos/timo-framework")))

             (restic-scheduled-backup
              (schedule #~"30 */2 * * *")   ; try to avoid lock contention
              (paths '("~/documents" "~/sync" "~/pictures"))
              (repo (restic-vin.wg-repo "timo/sync"))
              (password (restic-pass-key "computers/vin/restic-repos/timo-sync")))))))))

%frm-home