summaryrefslogtreecommitdiff
path: root/tw/home/cern.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tw/home/cern.scm')
-rw-r--r--tw/home/cern.scm88
1 files changed, 88 insertions, 0 deletions
diff --git a/tw/home/cern.scm b/tw/home/cern.scm
new file mode 100644
index 00000000..837098d5
--- /dev/null
+++ b/tw/home/cern.scm
@@ -0,0 +1,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