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
|