blob: 837098d59beb61d139a88fe7f2ed616e4e91be02 (
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
|
;; 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.
;; See also, for some tips:
;; https://github.com/alezost/shepherd-config/blob/master/init.scm
(define-module (tw home cern)
#:use-module (gnu home)
#:use-module (gnu home services desktop)
#:use-module (gnu home services guix)
#:use-module (gnu home services shepherd)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (guix channels)
#:use-module (guix gexp)
#:use-module (tw home))
(define-public %cern-home
(home-environment
(packages
;; These packages will show up in the home profile, under ~/.guix-home/profile.
(append %interactive-packages %pim-packages %common-packages))
;; To search for available home services, run 'guix home search KEYWORD'.
(services
(cons*
;; This can't be a `service' as that would remove the 'guix channel.
(simple-service 'nonfree-channels home-channels-service-type
(list
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
;; Enable signature verification:
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))))
;; Redshift: make the screen turn redder at night.
(service home-redshift-service-type
(home-redshift-configuration
;; See info '(guix)Desktop Home Services'.
(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-temperature 6500) ; default 6500
;; (nighttime-temperature 4500) ; default 4500
(daytime-brightness 1.0)
(nighttime-brightness 0.7)
(extra-content "fade=0"))) ; with fade=1, restarting redshift causes flickering for a few secs
(simple-service 'cern-desktop-gui-services home-shepherd-service-type
(list
(polybar-service "DP-2")
(polybar-service "DP-1-8")
(shepherd-service
(documentation "Set up X displays on login.")
(provision '(xorg-setup))
(one-shot? #t)
(start #~(lambda _
(system* #$(file-append numlockx "/bin/numlockx") "on")
;; Turn off the monitors if there is no input for 10 minutes.
(system* #$(file-append xset "/bin/xset") "dpms" "600" "600" "600")
(system* #$(file-append xrandr "/bin/xrandr")
"--output" "DP-2" "--primary" "--auto")
(system* #$(file-append xrandr "/bin/xrandr")
;; This can do 4K but HiDPI is a pain.
"--output" "DP-1-8" "--mode" "1920x1080" "--rate" "60.00"
"--left-of" "DP-2")
;; Set the desktop background picture. Hopefully doing this just after
;; xrandr works and sets it for both screens.
(system* #$(file-append hsetroot "/bin/hsetroot") "-cover"
(string-append (getenv "XDG_CONFIG_HOME")
"/X11/ridge-view.jpg")))))))
(openssh-service #f)
(append %interactive-services %pim-services %common-services)))))
%cern-home
|