diff options
author | Timo Wilken | 2023-04-21 14:23:10 +0200 |
---|---|---|
committer | Timo Wilken | 2023-04-21 14:31:01 +0200 |
commit | 043d2da63b10bddafa9aa7c4855dd01dac76c216 (patch) | |
tree | 0a94ce4341999e700e96798578596fc6f6f6aa0f /tw/home/cern.scm | |
parent | 37569e2c619942c36b0910a5833abb4f765c1464 (diff) | |
parent | 234c026bc56207a5e2376cfd7b7fe41d9edd67a3 (diff) |
Merge diverged work and home branches
This took some work, particularly when re-merging the diverged OpenSSH configs
and duplicate home services between lap.scm/home.scm and cern.scm.
Diffstat (limited to 'tw/home/cern.scm')
-rw-r--r-- | tw/home/cern.scm | 201 |
1 files changed, 5 insertions, 196 deletions
diff --git a/tw/home/cern.scm b/tw/home/cern.scm index 2957fd8b..dc3042c1 100644 --- a/tw/home/cern.scm +++ b/tw/home/cern.scm @@ -25,7 +25,6 @@ #:use-module ((nongnu packages messaging) #:select (zoom)) #:use-module (tw home) - #:use-module (tw home emacs) #:use-module (tw packages alice) #:use-module (tw packages ci) #:use-module (tw packages catppuccin) @@ -33,11 +32,7 @@ #:use-module (tw gexp) #:use-module (tw theme)) -(use-package-modules android calendar compton dav dunst fonts freedesktop games - gimp gnome gnome-xyz gnuzilla graphviz image-viewers - inkscape kde libreoffice linux mail messaging networking - pdf pulseaudio python-xyz syndication tcl terminals tex - version-control video web-browsers wm xdisorg xorg) +(use-package-modules calendar dav mail web-browsers xdisorg xorg) (define pim-packages (list vdirsyncer khal khard aerc lynx)) ; lynx for HTML mail @@ -67,81 +62,15 @@ (".local/bin/mutt_oauth2.py" ,(local-file "files/neomutt/contrib/oauth2/mutt_oauth2.py" #:recursive? #t)))))) -(define polybar-wrapper - (program-file - "polybar-wrapper" - #~(begin - ;; This wrapper program checks that the monitor we want to start - ;; polybar on is actually connected. - (use-modules (ice-9 popen) - (ice-9 rdelim)) - (let* ((connected-str (string-append (getenv "POLYBAR_MONITOR") " connected")) - (xrandr (open-pipe* OPEN_READ #$(file-append xrandr "/bin/xrandr") "-q")) - (monitor-connected? - (let loop ((line (read-line xrandr))) - (cond - ((eof-object? line) #f) ; we didn't find our monitor connected - ((string-prefix? connected-str line) #t) ; the monitor we want is connected - (else (loop (read-line xrandr))))))) ; keep looking - (close-pipe xrandr) - (when monitor-connected? - (execl #$(file-append polybar "/bin/polybar"))))))) - -(define (polybar-service monitor) - (shepherd-service - (documentation (string-append "Polybar desktop bar for monitor " monitor ".")) - (provision (list (symbol-append 'polybar- (string->symbol monitor)))) - (requirement '(xorg-setup)) - (start #~(make-forkexec-constructor - (list #$polybar-wrapper) - #:environment-variables - (cons #$(string-append "POLYBAR_MONITOR=" monitor) - (default-environment-variables)))) - (stop #~(make-kill-destructor)))) - (define-public %cern-home (home-environment (packages ;; These packages will show up in the home profile, under ~/.guix-home/profile. - (cons* - ;; CLI tools - bsd-games texlive powertop (list git "send-email") - - ;; Work - s3cmd python-alibuild python-alidistlint - hashicorp-levant-bin hashicorp-nomad-bin - hashicorp-consul-bin hashicorp-vault-bin hashicorp-packer-bin - vinagre gnome-screenshot - - ;; i3 and Xorg. i3 itself must be installed system-wide for gdm to pick it up. - ;; acpilight is a drop-in xbacklight replacement, as xbacklight doesn't work on my system. - acpilight arandr dunst gimp hsetroot inkscape icecat kitty libreoffice imv mpv - polybar pulsemixer rofi rofi-calc tk xdg-utils xdot xclip xcwd xdotool - xdpyinfo xev xfd xfontsel xinput xkill xprop xrandr xrdb xsel xset xwininfo - zoom zathura zathura-ps zathura-pdf-poppler - dconf dconf-editor ; required for config by blueman, cozy, ... - ;; gnome-keyring ; installed system-wide; see system-configuration.scm - ;; geoclue ; for redshift -- installed system-wide - ;; Fonts - font-hermit font-inconsolata font-fira-code font-fira-sans font-libertinus - ;; Fallback fonts - font-google-noto font-google-noto-emoji font-openmoji ; for polybar - ;; Theming - papirus-icon-theme catppuccin-gtk-theme catppuccin-mocha-dark-cursors - - (append common-packages emacs-packages pim-packages))) + (append %common-packages %interactive-packages pim-packages)) ;; To search for available home services, run 'guix home search KEYWORD'. (services (cons* - ;; Configuration files for terminal-only programs in $XDG_CONFIG_HOME. - (simple-service 'laptop-config home-xdg-configuration-files-service-type - `(;; All alibuild needs is an empty file. - ("alibuild/disable-analytics" - ,(plain-file "alibuild-disable-analytics" "")) - ("X11/XCompose" ,(local-file "files/XCompose")) ; see also: $XCOMPOSEFILE variable - ("X11/Xresources" ,(local-file "files/Xresources")))) - ;; This can't be a `service' as that would remove the 'guix channel. (simple-service 'nonfree-channels home-channels-service-type (list @@ -170,66 +99,12 @@ (nighttime-brightness 0.7) (extra-content "fade=0"))) ; with fade=1, restarting redshift causes flickering for a few secs - ;; The dbus service doesn't seem to be added automatically. - (service home-dbus-service-type - (home-dbus-configuration)) - - (simple-service 'gui-services home-shepherd-service-type + (simple-service 'xorg-setup-services home-shepherd-service-type (list - (shepherd-service - (documentation "NetworkManager applet; provides a GUI for network connections.") - (provision '(nm-applet)) - (start #~(make-forkexec-constructor - (list #$(file-append network-manager-applet "/bin/nm-applet")))) - (stop #~(make-kill-destructor))) - (polybar-service "DP-2") (polybar-service "DP-1-8") (shepherd-service - (documentation "Dunst notification daemon; displays desktop notifications.") - (provision '(dunst)) - (start #~(make-forkexec-constructor - (list #$(file-append dunst "/bin/dunst")))) - (stop #~(make-kill-destructor))) - - (shepherd-service - (documentation "Picom compositor; enables transparent windows in X.") - (provision '(picom)) - (start #~(make-forkexec-constructor - (list #$(file-append picom "/bin/picom") - "--config" #$(local-file "files/picom.conf")))) - (stop #~(make-kill-destructor))) - - (shepherd-service - (documentation "Source Xresources on login.") - (provision '(xrdb)) - (one-shot? #t) - (start #~(lambda _ - (invoke #$(file-append xrdb "/bin/xrdb") "-merge" - (string-append (getenv "XDG_CONFIG_HOME") "/X11/Xresources"))))) - - ;; By default, xdotool gets most of "#@\|~()<>[]{} wrong. Make - ;; it use the correct keymap by re-setting the same one again. - (shepherd-service - (documentation "Fix X keyboard map on login; passmenu needs this.") - (provision '(fix-xdotool)) - (one-shot? #t) - (start #~(lambda _ - (use-modules (ice-9 rdelim) - (ice-9 regex) - (ice-9 popen)) - (let ((port (open-pipe* OPEN_READ #$(file-append setxkbmap "/bin/setxkbmap") - "-query"))) - (let loop ((line (read-line port))) - (unless (eof-object? line) - (let ((mtch (string-match "^layout:[[:space:]]*" line))) - (if mtch - (system* #$(file-append setxkbmap "/bin/setxkbmap") - (match:suffix mtch)) - (loop (read-line port)))))))))) - - (shepherd-service (documentation "Set up X displays on login.") (provision '(xorg-setup)) (one-shot? #t) @@ -249,74 +124,8 @@ (string-append (getenv "XDG_CONFIG_HOME") "/X11/ridge-view.jpg"))))))) - ;; Configuration files for GUI programs in $XDG_CONFIG_HOME. - (simple-service 'gui-config home-xdg-configuration-files-service-type - `(("dunst/dunstrc" ,(local-file "files/dunstrc")) - ("dunst/dunstrc.d/50-catppuccin.conf" ,catppuccin-dunstrc) - ("gtk-2.0/gtkrc" ,(local-file "files/gtk2.ini")) - ("gtk-3.0/settings.ini" ,(local-file "files/gtk3.ini")) - ("i3/config" ,(local-file "files/i3.conf")) - ;; TODO: "kdeglobals" works for some programs (e.g. kdeconnect-app), - ;; but not for others (e.g. nheko, kdeconnect-settings)... - ("kdeglobals" ,catppuccin-kdeglobals) - ("kitty/diff.conf" - ,(combined-text-file "kitty-diff.conf" - (plain-file "kitty-diff-custom.conf" - "pygments_style bw\n") - catppuccin-kitty-diff)) - ("kitty/kitty.conf" - ,(combined-text-file "kitty.conf" - (local-file "files/kitty.conf") - catppuccin-kitty)) - ("mimeapps.list" ,(local-file "files/mimeapps.list")) - ("polybar/config.ini" ,(local-file "files/polybar.ini")) - ("polybar/catppuccin.ini" ,catppuccin-polybar) - ("rofi/config.rasi" ,(local-file "files/rofi.rasi")) - ("rofi/themes/catppuccin.rasi" ,catppuccin-rofi) - ("zathura/zathurarc" ,(local-file "files/zathurarc")) - ("zathura/catppuccin" ,catppuccin-zathura))) - - (simple-service 'cursor-theme home-files-service-type - `((".icons/default/index.theme" ,(local-file "files/cursors.ini")))) - - (simple-service 'gui-environment home-environment-variables-service-type - `(("TERMINAL" . "kitty") - ("_JAVA_OPTIONS" . - ,(string-append - "$_JAVA_OPTIONS${_JAVA_OPTIONS:+ }-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true " - "-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel " - "-Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel")) - ;; Smooth trackpad scrolling in Firefox/Icecat. - ;; https://wiki.archlinux.org/index.php/Firefox/Tweaks#Pixel-perfect_trackpad_scrolling - ("MOZ_USE_XINPUT2" . "1"))) - - (simple-service 'gui-scripts home-files-service-type - `(;; https://sw.kovidgoyal.net/kitty/kittens/diff/ - (".local/bin/kdiff" ; show a diff - ,(program-file "kdiff" #~(apply execl #$(file-append kitty "/bin/kitty") "kitty" - "+kitten" "diff" (cdr (command-line))))) - (".local/bin/icat" ; kitty's "catimg" equivalent - ,(program-file "icat" #~(apply execl #$(file-append kitty "/bin/kitty") "kitty" - "+kitten" "icat" (cdr (command-line))))) - (".local/bin/screenlock" - ,(program-file - "screenlock" - #~(begin ; Wrapper around i3lock to turn off the screen and pause notifications. - (system* #$(file-append dunst "/bin/dunstctl") "set-paused" "true") - (system* #$(file-append xset "/bin/xset") "dpms" "0" "0" "5") - ;; We mustn't use `file-append' here, as we have to pick up the - ;; setuid binary for i3lock installed by the system config. - (system* "i3lock" "-nc" #$catppuccin-background-color) - (system* #$(file-append xset "/bin/xset") "dpms" "600" "600" "600") - (system* #$(file-append dunst "/bin/dunstctl") "set-paused" "false")))) - ;; With #:recursive? #t, Guix keeps the files' permission bits, i.e. makes them executable. - (".local/bin/sessionmenu" ,(local-file "files/sessionmenu" #:recursive? #t)) - (".local/bin/passmenu" ,(local-file "files/passmenu" #:recursive? #t)) - (".local/bin/volume" ,(local-file "files/volume" #:recursive? #t)) - (".local/share/applications/emacsclient.desktop" - ,(local-file "files/emacsclient.desktop")))) + (openssh-service #f) - (append (gnupg-services #:gui-pinentry? #t) - common-services emacs-services pim-services))))) + (append %common-services %interactive-services pim-services))))) %cern-home |