From e72d011ddff3da64f76dc70789603a033efdf74c Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Fri, 13 Mar 2020 21:22:30 -0400 Subject: [PATCH] guix: break down monolithic profile into multiple smaller profiles super useful for decoupling larger packages like icecat, libreoffice, and texlive from the rest of mostly-smaller packages, so i could easily `guix pull' and update the smaller ones as frequently as i like --- .bashrc | 3 +-- .config/guix/manifest/doc.scm | 8 +++++++ .../guix/manifest/{chaman.scm => main.scm} | 23 ++++++++++--------- .config/guix/manifest/media.scm | 6 +++++ .config/guix/manifest/web.scm | 3 +++ .profile | 12 ++++++++++ 6 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 .config/guix/manifest/doc.scm rename .config/guix/manifest/{chaman.scm => main.scm} (90%) create mode 100644 .config/guix/manifest/media.scm create mode 100644 .config/guix/manifest/web.scm diff --git a/.bashrc b/.bashrc index a48c605..7e81de3 100644 --- a/.bashrc +++ b/.bashrc @@ -108,8 +108,7 @@ if ! shopt -oq posix; then fi # source Guix shell config dirs, for vte.sh and bash completions -GUIX_PROFILES=("${HOME}/.desktop-profile" - "${HOME}/.guix-profile" +GUIX_PROFILES=("${HOME}/.guix-profile" "${HOME}/.config/guix/current") for profile in "${GUIX_PROFILES[@]}"; do for dir in "${profile}/etc/bash_completion.d" "${profile}/etc/profile.d"; do diff --git a/.config/guix/manifest/doc.scm b/.config/guix/manifest/doc.scm new file mode 100644 index 0000000..b732864 --- /dev/null +++ b/.config/guix/manifest/doc.scm @@ -0,0 +1,8 @@ +(specifications->manifest + '("libreoffice" + "texlive-amsfonts" + "texlive-base" + "texlive-latex-listings" + ;; "texlive-palatino" + "texlive-xcolor" +)) diff --git a/.config/guix/manifest/chaman.scm b/.config/guix/manifest/main.scm similarity index 90% rename from .config/guix/manifest/chaman.scm rename to .config/guix/manifest/main.scm index edffa52..8917d27 100644 --- a/.config/guix/manifest/chaman.scm +++ b/.config/guix/manifest/main.scm @@ -1,11 +1,13 @@ (specifications->manifest '("alsa-utils" - "audacity" "bash-completion" + "cpufrequtils" + "cpupower" "cvs" "dunst" "emacs" "emacs-alert" + "emacs-amx" "emacs-async" "emacs-biblio-git" "emacs-boxquote" @@ -40,6 +42,8 @@ ;; "emacs-multi-term" "emacs-multiple-cursors" "emacs-mwim" + ;; "emacs-next" + ;; "emacs-next-delight" "emacs-no-littering" "emacs-org" "emacs-org-contrib" @@ -51,7 +55,6 @@ "emacs-projectile" "emacs-shrink-path-git" "emacs-smart-mode-line" - "emacs-smex" "emacs-typo" "emacs-unkillable-scratch" "emacs-use-package" @@ -67,9 +70,9 @@ "font-sil-gentium" "font-tex-gyre" ;; "font-ubuntu" + "font-vazir" "getmail" "gettext" - "gimp" "git" "git:send-email" "gnupg" @@ -79,35 +82,33 @@ "hunspell" "hunspell-dict-en-ca" "hunspell-dict-en-us" - "icecat" - "inkscape" "isync" "light" - "mpv" "msmtp" "ncdu" "notmuch" "openjdk" "openssh" "openssl" + "pass-otp" "password-store" + "pasystray" "pinentry-emacs" "poppler" ; for 'pdffonts' "rofi" "rofi-pass" "rsync" - "rtv" "rxvt-unicode" "screen" + "scrot" "setxkbmap" - ;; "texlive" - ;; "texlive-base" + "strace" "thinkfan" + "unzip" "wget" "xdg-user-dirs" ;; "xkbcomp" "xmodmap" "xrdb" "xset" - "xsetroot" - "youtube-dl")) + "xsetroot")) diff --git a/.config/guix/manifest/media.scm b/.config/guix/manifest/media.scm new file mode 100644 index 0000000..f8ff541 --- /dev/null +++ b/.config/guix/manifest/media.scm @@ -0,0 +1,6 @@ +(specifications->manifest + '("audacity" + "gimp" + "inkscape" + "mpv" + "youtube-dl")) diff --git a/.config/guix/manifest/web.scm b/.config/guix/manifest/web.scm new file mode 100644 index 0000000..6e5fd34 --- /dev/null +++ b/.config/guix/manifest/web.scm @@ -0,0 +1,3 @@ +(specifications->manifest + '("icecat" + "rtv")) diff --git a/.profile b/.profile index b419e55..7b287dc 100644 --- a/.profile +++ b/.profile @@ -20,6 +20,9 @@ fi export PATH export INFOPATH +export MY_GUIX_MANIFESTS="$HOME/.config/guix/manifest" +export MY_GUIX_PROFILES="$HOME/.config/guix/profile" + export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" @@ -60,6 +63,15 @@ if [ -z "$IS_GUIX_SYSTEM" ]; then fi fi +for p in $MY_GUIX_PROFILES/*; do + profile=$p/$(basename "$p") + if [ -f "$profile"/etc/profile ]; then + GUIX_PROFILE="$profile" + . "$GUIX_PROFILE"/etc/profile + fi + unset profile +done + # start an ssh-agent (with guix's openssh) if [ -z "$IS_GUIX_SYSTEM" ]; then if ! pgrep -u "$USER" ssh-agent > /dev/null; then -- 2.20.1