aboutsummaryrefslogtreecommitdiff
path: root/tw/home/btl.scm
blob: 3c370eefc70abab24690a494dcdc092ca31f883c (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
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
;; 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 btl)
  #: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 %btl-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
     ;; Redshift: make the screen turn redder at night.
     (service home-redshift-service-type
       (home-redshift-configuration
        (location-provider 'manual)
        ;; Approximate location
        (latitude 46.0)
        (longitude 6.0)
        ;; (location-provider 'geoclue2)  ; TODO: currently waits forever for a location -- not sure why geoclue doesn't work
        (daytime-brightness 1.0)
        (nighttime-brightness 0.7)
        (extra-content "fade=0")))  ; with fade=1, restarting redshift causes flickering for a few secs

     (service home-dbus-service-type)

     (service tw-home-service-type)

     (service home-desktop-service-type
       (home-desktop-configuration
        (monitors
         (list (home-monitor-configuration
                (name "DisplayPort-2")
                (xrandr-options '("--mode" "2560x1440" "--rate" "143.86")))))))

     (service home-gaming-service-type)

     (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"
                       ;; games
                       "~/savegames"
                       "~/.config/unity3d"
                       "~/.local/share/0ad"
                       "~/.local/share/simutrans"
                       "~/.local/share/warzone2100"
                       "~/.local/share/widelands"
                       "~/.local/share/ksp-overlay/upper"
                       "~/.pioneer"))
              (repo (restic-vin.wg-repo "timo/battleship"))
              (password (restic-pass-key "computers/vin/restic-repos/timo-battleship")))

             (restic-scheduled-backup
              (schedule #~"20 */2 * * *")   ; try to avoid lock contention
              (paths '("~/documents"
                       "~/sync"
                       "~/audiobooks"
                       "~/music"
                       "~/pictures"
                       "~/videos/youtube/.yt-dlp"
                       "~/videos/youtube/.config"))
              (repo (restic-vin.wg-repo "timo/sync"))
              (password (restic-pass-key "computers/vin/restic-repos/timo-sync")))))))))

%btl-home