aboutsummaryrefslogtreecommitdiff
path: root/tw/home/cern.scm
blob: 957353d90bdf0b90cff5f53e3208576e92cd6feb (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
;; 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 cern)
  #: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)
  #:use-module (gnu packages calendar)
  #:use-module (gnu packages dav)
  #:use-module (gnu packages mail)
  #:use-module (gnu packages web-browsers)
  #:use-module (gnu services)
  #:use-module (guix gexp)
  #:use-module (tw home)
  #:use-module (tw gexp)
  #:use-module ((tw packages mail) #:select (mutt_oauth2.py))
  #:use-module (tw services desktop)
  #:use-module (tw services git)
  #:use-module (tw services gnupg))

(define-public %cern-home
  (home-environment
   (packages
    ;; These packages will show up in the home profile, under ~/.guix-home/profile.
    (list vdirsyncer khal khard aerc lynx mutt_oauth2.py))   ; lynx for HTML mail

   ;; To search for available home services, run 'guix home search KEYWORD'.
   (services
    (list
     (service tw-home-service-type
       (tw-home-configuration
        (pim? #f)))

     ;; Configure PIM services "manually" because we don't want all of them
     ;; (such as the newsreader) and we need to use different aerc accounts.
     (simple-service 'pim-config home-xdg-configuration-files-service-type
       `(("aerc/accounts.conf" ,(local-file "files/aerc/accounts.work.conf"))
         ("aerc/aerc.conf" ,(local-file "files/aerc/aerc.conf"))
         ("aerc/binds.conf" ,(local-file "files/aerc/binds.conf"))
         ("aerc/filters" ,(local-file "files/aerc/filters" #:recursive? #t))
         ("aerc/stylesets" ,(local-file "files/aerc/stylesets" #:recursive? #t))))

     (simple-service 'remote-desktop-config home-files-service-type
       `((".local/share/vinagre/vinagre-bookmarks.xml" ,(local-file "files/vinagre-bookmarks.xml"))))

     ;; 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 home-desktop-layout-service-type
       (home-desktop-layout-configuration
        (desktop-background "~/.config/X11/ridge-view.jpg")
        (monitors
         (list (home-monitor-configuration
                (name "DP-2")
                (xrandr-options '("--primary" "--auto")))
               (home-monitor-configuration
                (name "DP-1-8")
                ;; This can do 4K but HiDPI is a pain.
                (xrandr-options '("--mode" "1920x1080" "--rate" "60.00"
                                  "--left-of" "DP-2")))))))

     ;; On my work machine, Git must always use my work PGP key.
     (service home-git-service-type
       (home-git-configuration
        (default-email "timo.wilken@cern.ch")
        (default-signing-key "C2249BBE5E8761C943A0CFA1B7B3914BF63ACD7C")))

     (service home-openssh-service-type
       (tw-openssh-configuration #:proxy-to-cern? #f))

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

%cern-home