diff options
Diffstat (limited to 'tw/home/cern.scm')
-rw-r--r-- | tw/home/cern.scm | 88 |
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 |