diff options
Diffstat (limited to 'etc/guix/home.scm')
-rw-r--r-- | etc/guix/home.scm | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/etc/guix/home.scm b/etc/guix/home.scm new file mode 100644 index 0000000..607a059 --- /dev/null +++ b/etc/guix/home.scm @@ -0,0 +1,152 @@ +(use-modules + (curth0) + (gnu home services) + (gnu home services shells) + (gnu packages) + (gnu packages mail) + (gnu packages gnupg) + (gnu services) + (guix gexp) + (guix packages) + (guix utils)) + +(define msmtp-non-hardcoded + (package + (inherit msmtp) + (name "msmtp-non-hardcoded") + (arguments + (substitute-keyword-arguments (package-arguments msmtp) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install-additional-files 'patch-hardcoded-paths + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/msmtpq") + (("^LOG=.*$") "LOG=${XDG_LOG_HOME:-$HOME/.local/var/log}/msmtpq.log\n") + (("^Q=.*$") "Q=${XDG_DATA_HOME:-$HOME/.local/share}/msmtp/queue\n") + (("mkdir -m 0700 \"\\$Q\"") "mkdir -p -m 0700 \"$Q\""))))))))))) + +(define (xdg-config-home s) + (string-append (getenv "XDG_CONFIG_HOME") "/" s)) + +(define gitconfig (mixed-text-file "gitconfig" #"- + [user] + email = eu@euandre.org + name = EuAndreh + signingkey = 81F90EC3CD356060 + [transfer] + fsckobjects = true + [push] + default = current + [commit] + gpgsign = true + verbose = true + [init] + defaultBranch = main + [sendemail] + assume8bitEncoding = UTF-8 + smtpserveroption = -a + smtpserveroption = euandreh + annotate = yes + confirm = never + smtpserver = "# msmtp-non-hardcoded "/bin/msmtpq\n")) + +(define gpg-agent.conf (mixed-text-file "gpg-agent.conf" #"- + default-cache-ttl 172800 + default-cache-ttl-ssh 172800 + max-cache-ttl 604800 + max-cache-ttl-ssh 604800 + enable-ssh-support + pinentry-program "# pinentry-gtk2 "/bin/pinentry-gtk-2\n")) + +(define config-files + `(("gnupg/gpg-agent.conf" ,gpg-agent.conf) + ("git/config" ,gitconfig))) + +(define (dot-config) + (define (prefix-with-config s) + (string-append (substring (getenv "XDG_CONFIG_HOME") + (+ 1 (string-length (getenv "HOME")))) + "/" + s)) + (map (lambda (t) + (list (prefix-with-config (first t)) + (second t))) + config-files)) + +(home-environment + (packages + (append + (map (compose list specification->package+output symbol->string) + '(man-pages + posix-man-pages + + tree + openssh + mailutils + entr + git + git:send-email + tmux + rsync + gnupg + pulseaudio + password-store + playerctl + pinentry-gtk2 + bmake + fzf + ranger + blueman + ledger + curl + xclip + cloc + strace + file + urlscan + rlwrap + direnv + borg + khal + khard + libfaketime + qrencode + feh + sox + xset + graphviz + moreutils + shellcheck + gettext + groff + + clojure + openjdk + sbcl + perl + perl-mojolicious + + st + i3status + dmenu + + weechat + alot + notmuch + isync + w3m + afew + + zathura + zathura-djvu + zathura-pdf-poppler + zathura-ps + firefox)) + (list msmtp-non-hardcoded))) + (services + (list (service home-bash-service-type + (home-bash-configuration + (bashrc + (list (plain-file "bashrc.sh" ". $XDG_CONFIG_HOME/bash/rc"))))) + (simple-service 'config-files home-files-service-type (dot-config))))) |