(use-modules (srfi srfi-1) (srfi srfi-26) (ice-9 ftw) (ice-9 pretty-print) (gnu home) (gnu home services) (gnu home services desktop) (gnu home services mcron) (gnu home services media) (gnu home services messaging) (gnu home services shells) (gnu home services shepherd) (gnu home services ssh) (gnu packages) (gnu services) (guix utils) (guix build utils) (guix gexp)) (define %email "janneke@gnu.org") (define %full-name "Janneke Nieuwenhuizen") (define (file->entry dir file) (let* ((base (substring file (+ (string-length (current-source-directory)) (string-length "/config/") (string-length dir) 1))) (target (string-append dir "/" base))) `(,target ,(local-file file)))) (home-environment ;; Below is the list of packages that will show up in your ;; Home profile, under ~/.guix-home/profile. (packages (specifications->packages `( "acpi" "aspell" "aspell-dict-en" "aspell-dict-nl" "bash-completion" "bind:utils" "emacs-bash-completion" "emacs-bbdb" "emacs-build-farm" "emacs-debbugs" "emacs-geiser" "emacs-git-timemachine" "emacs-guix" "emacs-magit" "emacs-org-journal" "emacs-paredit" "emacs-pinentry" "emacs-so-long" "font-adobe-source-han-sans:jp" "font-dejavu" "file" "git" "git:send-email" "glibc" "glibc-locales" "gnu-standards" "gnupg" "guile" "guile-readline" "ncurses" "openssh" "pinentry" "pinentry-emacs" "man-pages" "mosh" "sicp" "wget" ,@(cond ((or (member (gethostname) '("dezyne.org")) (equal? (utsname:sysname (uname)) "GNU")) '( "emacs-no-x" ) ) (else '( "alsa-utils" "brightnessctl" "emacs" "emacs-desktop-environment" "emacs-elmacro" "emacs-exwm" "emacs-exwm-x" "emacs-htmlize" "emacs-websocket" "font-google-noto" "font-wqy-zenhei" "ghostscript" "gnutls" "gst-libav" "gst-plugins-bad" "gst-plugins-good" "gstreamer" "imagemagick" "libinput" "poppler" "pulseaudio" "scrot" "unicode-emoji" "xauth" "xbacklight" "xdpyinfo" "xev" "xf86-input-synaptics" "xfontsel" "xhost" "xinput" "xkbcomp" "xmodmap" "xprop" "xrandr" "xrdb" "xset" "xsetroot" ))) ,@(cond ((not (member (gethostname) '("vuurvlieg"))) '( "emacs-notmuch" "font-abattis-cantarell" "icecat" "notmuch" )) (else '())) ,@(cond ((member (gethostname) '("banaan")) '( "kodi" "znc" )) (else '()))))) ;; Below is the list of Home services. To search for available ;; services, run 'guix home search KEYWORD' in a terminal. (services `(,(service home-bash-service-type (home-bash-configuration (guix-defaults? #t) (aliases '(("l" . "ls -ltrF") ("p" . "less -nMiX"))) (bashrc (list (local-file "bashrc" "bashrc"))) (bash-profile (list (local-file "bash_profile" "bash_profile"))) (environment-variables `(("DEBEMAIL" . ,%email) ("EDITOR" . "emacsclient") ("EMAIL" . ,%email) ("GIT_AUTHOR_EMAIL" . ,%email) ("GIT_AUTHOR_NAME" . ,%full-name) ("GIT_COMMITER_EMAIL" . ,%email) ("HISTCONTROL" . "erasedups:ignoredups:ignorespace") ("HISTSIZE". "100000") ("HISTFILESIZE" . "100000"))))) ,(service home-files-service-type `((".bash/functions" ,(local-file "bash/functions" "bash-functions")) (".bash/history" ,(local-file "bash/history" "bash-history")) (".bash/path" ,(local-file "bash/path" "bash-path")) (".bash/prompt" ,(local-file "bash/prompt" "bash-prompt")) ;; (".ssh/id_rsa.pub" ,(local-file "ssh/janneke.pub" "ssh-janneke.pub")) (".ssh/id_rsa_childurd.pub" ,(local-file "ssh/id_rsa_childhurd.pub" "ssh-id_rsa_childhurd.pub")) (".ssh/id_rsa_dezyne_build.pub" ,(local-file "ssh/id_rsa_dezyne_build.pub" "ssh-id_rsa_dezyne_build.pub")) ;; (".authinfo.gpg" ,(local-file "config/authinfo.gpg" "config-authinfo.gpg")) (".exwm" ,(local-file "config/exwm" "config-exwm")) (".gnupg/gpg-agent.conf" ,(local-file "config/gnupg/gpg-agent.conf" "config-gnupg-gpg-agent.conf")) (".sieve/janneke" ,(local-file "config/sieve/janneke" "config-sieve-janneke")) (".signature" ,(local-file "config/signature" "config-signature")) ;; ;;("bin/exwm" ,(program-file "exwm" (local-file "bin/exwm" "bin-exwm"))) )) ,(service home-xdg-configuration-files-service-type `(,@(let ((dir "emacs")) (map (cute file->entry dir <>) (find-files (string-append (current-source-directory) "/config/" dir)))) ("git/config" ,(local-file "config/git")) ("mbsyncrc" ,(local-file "config/mbsyncrc")) ("notmuch/default/config" ,(local-file "config/notmuch")))) ;; (service home-shepherd-service-type) ;; (service home-mcron-service-type ;; (home-mcron-configuration ;; (jobs (list #~(job next-minute-from ;; (lambda () ;; ;;(system* "mbsync" "--all") ;; (system "date >> /tmp/date"))))))) ;;guix home: error: no target of type 'account' for service 'git-daemon' ;; ,@(let ((root (string-append (getenv "HOME") "/git-daemon"))) ;; (if (not (file-exists? root)) '() ;; `(,(service ;; git-daemon-service-type ;; (git-daemon-configuration ;; (base-path root) ;; (export-all? #t)))))) ,(service home-ssh-agent-service-type) ,@(if (not (equal? (gethostname) "banaan")) '() `(,(service home-kodi-service-type) ,(service home-znc-service-type))) ,(service home-xmodmap-service-type (home-xmodmap-configuration (key-map '(("keycode 108" . "Multi_key"))))) ,(service home-openssh-service-type (home-openssh-configuration (hosts (list (openssh-host (name "dundal dundal.local") (port 2222) (forward-agent? #t)) (openssh-host (name "drakenbij drakenbij.local") (port 2222) (forward-agent? #t)) (openssh-host (name "drakenpad drakenpad.local") (port 2222) (forward-agent? #t)) (openssh-host (name "drakenvlieg drakenvlieg.local") (port 2222) (forward-agent? #t)) (openssh-host (name "vuurvlieg vuurvlieg.local") (port 2222) (forward-agent? #t)) (openssh-host (name "hurdvlieg") (host-name "vuurvlieg") (port 2222) (forward-agent? #t) (user "root")) (openssh-host (name "janneke rbanaan") (host-name "77.173.69.160") (port 16) (forward-agent? #t)) (openssh-host (name "lilypond lilypond.org") (host-name "gcp.lilypond.org")) (openssh-host (name "dds shell.dds.nl") (host-name "shell.dds.nl") (user "jcn")) (openssh-host (name "savannah savannah.gnu.org git.savannah.gnu.org git.sv.gnu.org git.savannah.nongnu.org git.sv.nongnu.org") (host-key-algorithms '("+ssh-rsa")) (accepted-key-types '("+ssh-rsa")) ;;(protocol "2") (extra-content " protocol 2")) (openssh-host (name "berlin") (host-name "berlin.guix.gnu.org")) (openssh-host (name "overdrijf") ;;(host-name "overdrive1.guix.gnu.org") (host-name "91.160.117.201") (port 52522) (forward-agent? #t)) (openssh-host (name "banana banana.pyramid.dynv6.net") (host-name "2a02:8388:281:94f0:84fd:6bff:fe38:6941") (forward-agent? #t)) (openssh-host (name "novena novena.pyramid.dynv6.net") (host-name "2a02:8388:281:94f0:21f:11ff:fe02:297e") (forward-agent? #t)) (openssh-host (name "hansei regtur") (host-name "84.28.235.149") (port 2222) (identity-file "~/.ssh/id_rsa_dezyne_build") (forward-agent? #t)) (openssh-host (name "hansei2 regtur2") (host-name "84.28.235.149") (port 2223) (identity-file "~/.ssh/id_rsa_dezyne_build") (forward-agent? #t)) (openssh-host (name "kluit kluit.dezyne.org") (host-name "kluit.dezyne.org") (identity-file "~/.ssh/id_rsa_dezyne_build") (forward-agent? #t)) (openssh-host (name "verum verum.com") (host-name "verum.com") (user "root") (identity-file "~/.ssh/id_rsa_dezyne_build") (forward-agent? #t)) (openssh-host (name "berum dezyne.verum.com") (host-name "dezyne.verum.com") (user "root") (identity-file "~/.ssh/id_rsa_dezyne_build") (forward-agent? #t)) (openssh-host (name "vm childhurd") (host-name "localhost") (port 10022) (user "root") ;;(strict-host-key-checking? #f) (extra-content " stricthostkeychecking no") (forward-agent? #t)) (openssh-host (name "vm1 childhurd1") (host-name "localhost") (port 11022) (user "root") ;;(strict-host-key-checking? #f) (extra-content " stricthostkeychecking no") (forward-agent? #t)))) (authorized-keys (and (not (equal? (gethostname) "hansei")) (list (local-file "ssh/janneke.pub")))))))))