Move manifest definition within channel directory

When running 'guix pull' with a foreign channel, the specification->package function does not
appear to be able to lookup packages that are not part of the guix official channel.

* .guix/rekahsoft/guix-config/home.scm: Include manifest/s used for home-configuration
directly
* home-manifest.scm: Continue to include a manifest file that can be used for convenience
with guix commands (as there is no way to use `-e|--install-from-expression` with manifests
at this time)
This commit is contained in:
Collin J. Doering 2022-03-26 11:26:42 -04:00
parent a40d3650de
commit f11ce3f772
Signed by: rekahsoft
GPG Key ID: 7B4DEB93212B3022
3 changed files with 382 additions and 363 deletions

View File

@ -13,9 +13,369 @@
#:use-module (guix gexp)
#:use-module (gnu home services shells)
#:use-module (gnu home services desktop)
#:export (%home))
#:use-module (nongnu packages mozilla)
#:use-module (rekahsoft-gnu packages haskell-apps)
#:use-module (rekahsoft-gnu packages emacs-xyz)
#:use-module (rekahsoft-gnu packages python-xyz)
#:use-module (rekahsoft-gnu packages shellutils)
#:use-module (rekahsoft-gnu packages spice)
#:use-module (rekahsoft-gnu packages terraform)
#:export (%home %home-manifest))
(include "../../../home-manifest.scm")
(define transform--emacs-helm-mu
(options->transformation
'((with-commit . "emacs-helm-mu=392a8c11ab27b625d9f863cdde14e09893401b15"))))
(define transform--emacs-org-super-agenda
(options->transformation
'((without-tests . "emacs-org-super-agenda"))))
(define-public %emacs-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; Temporary: emacs-helm-mu is broken but has been fixed upstream
(transform--emacs-helm-mu
(specification->package "emacs-helm-mu"))
;; Temporary: emacs-org-super-agenda tests stall and do not complete due to interactive prompt
(transform--emacs-org-super-agenda
(specification->package "emacs-org-super-agenda"))
(transform--emacs-org-super-agenda ;; org-ql propigates org-super-agenda
(specification->package "emacs-org-ql"))
;; Packages from the rekahsoft-guix channel
emacs-ace-mc
emacs-hamlet-mode
emacs-helm-rg
emacs-helm-tramp
emacs-helm-unicode
emacs-highlight-indent-guides
emacs-highlight-parentheses
emacs-ibuffer-vc
emacs-intel-hex-mode
emacs-ix
emacs-mu4e-dashboard
emacs-mu4e-maildirs-extension
emacs-org-html-theme-darksun
emacs-org-html-themes
emacs-org-roam-extensions
emacs-org-roam-ui
persp-projectile ;; TODO: this packages' variable is not correctly prefixed with 'emacs-' upsteam
emacs-quack
emacs-rcirc-notify
emacs-rebox2
emacs-vimish-fold
emacs-eval-in-repl
emacs-org-babel-eval-in-repl
;; Use more up-to-date treemacs and treemacs-extra (as well as required dependencies)
emacs-treemacs-20201225
emacs-treemacs-extra-20201225
emacs-all-the-icons-20201225
emacs-doom-themes-20201225
;; Use more up-to-date ace-link
emacs-ace-link-2021-01-1))
(specifications->manifest
'("aspell"
"aspell-dict-en"
"emacs"
"emacs-ace-jump-mode"
"emacs-ace-window"
"emacs-ag"
"emacs-all-the-icons-dired"
"emacs-auctex"
"emacs-auto-complete"
"emacs-auto-yasnippet"
"emacs-dashboard"
"emacs-dired-hacks"
"emacs-docker"
"emacs-docker-tramp"
"emacs-doom-modeline"
"emacs-elpher"
"emacs-emmet-mode"
"emacs-emms"
"emacs-expand-region"
"emacs-exwm"
"emacs-fill-column-indicator"
"emacs-flycheck"
"emacs-flycheck-ledger"
"emacs-geiser"
"emacs-gnuplot"
"emacs-go-mode"
"emacs-god-mode"
"emacs-graphql-mode"
"emacs-graphviz-dot-mode"
"emacs-guix"
"emacs-haskell-mode"
"emacs-helm"
"emacs-helm-ag"
"emacs-helm-c-yasnippet"
"emacs-helm-descbinds"
"emacs-helm-exwm"
"emacs-helm-gtags"
"emacs-helm-ls-git"
"emacs-helm-org"
"emacs-helm-pass"
"emacs-helm-projectile"
"emacs-helm-swoop"
"emacs-highlight-sexp"
"emacs-htmlize"
"emacs-hydra"
"emacs-ibuffer-projectile"
"emacs-isearch+"
"emacs-ivy"
"emacs-json-mode"
"emacs-jsonnet-mode"
"emacs-ledger-mode"
"emacs-lua-mode"
"emacs-magit"
"emacs-forge"
"emacs-markdown-mode"
"emacs-mmm-mode"
"emacs-mu4e-alert"
"emacs-mu4e-conversation"
"emacs-multi-term"
"emacs-multiple-cursors"
"emacs-no-littering"
"emacs-org"
"emacs-org-download"
"emacs-org-mind-map"
"emacs-org-noter"
"emacs-org-roam"
"emacs-org-web-tools"
"emacs-orgit"
"emacs-ob-async"
"emacs-paredit"
"emacs-pdf-tools"
"emacs-persp-mode"
"emacs-php-mode"
"emacs-plantuml-mode"
"emacs-pretty-mode"
"emacs-projectile"
"emacs-racket-mode"
"emacs-rainbow-delimiters"
"emacs-rainbow-identifiers"
"emacs-rainbow-mode"
"emacs-realgud"
"emacs-rec-mode"
"emacs-restclient"
"emacs-ripgrep"
"emacs-rust-mode"
"emacs-scribble-mode"
"emacs-slime"
"emacs-string-inflection"
"emacs-swiper"
"emacs-terraform-mode"
"emacs-tramp"
"emacs-undo-tree"
"emacs-use-package"
"emacs-vterm"
"emacs-yaml-mode"
"emacs-yasnippet"
"emacs-yasnippet-snippets"
"gnuplot"
"isync"
"mu"
"plantuml"
; "emacs-ac-geiser" ;; TODO: hash mismatch; possible non-determinism
;"emacs-helm-mu" ;; TODO: broken, but fixed upstream
"emacs-all-the-icons-ibuffer" ;; TODO: this package exists in both guix and rekahsoft-guix channels, resulting in a confict warning
)))))
(define-public %shell-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; TODO: this was added upstream (as "go-github-com-junegunn-fzf") but is not as complete as my existing package
fzf
;; Remaining packages from the rekahsoft-guix channel
spaceship-prompt))
(specifications->manifest
'("bat"
"exa"
"ripgrep"
"sh-z"
"zsh-autosuggestions"
"zsh-syntax-highlighting")))))
(define-public %xorg-manifest
(specifications->manifest
'("mesa"
"setxkbmap"
"xdg-utils"
"xf86-input-libinput"
"xf86-video-fbdev"
"xinit"
"xinput"
"xkbcomp"
"xkeyboard-config"
"xlsfonts"
"xorg-server"
"xrandr"
"autorandr"
"xrdb"
"xsetroot")))
(define-public %wayland-manifest
(specifications->manifest
'("grim"
"hicolor-icon-theme" ;; Required for wofi icon theme
"slurp"
"sway"
"wayland"
"wofi")))
;; Manifest containing x programs (that cannot natively run with wayland).
(define-public %xorg-apps-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; Packages from nonguix channel
firefox
;; Packages from rekahsoft-guix channel
virt-viewer-11))
(specifications->manifest
'("dunst" ;; <- May not need this; use something in emacs
"feh"
"pavucontrol"
"redshift"
"rofi" ;; <- Look into replacing in emacs
"rofi-pass" ;; <- This should be replacable in emacs with helm-pass
"i3lock" ;; required for i3lock-fancy
"i3lock-fancy"
"xmonad"
"xmobar"
"trayer-srg" ;; used in xmonad as system tray
"dmenu"
"unclutter"
"virt-manager"
"xautolock"
"xclip"
"zathura"
"zathura-djvu"
"zathura-pdf-poppler"
"zathura-ps")))))
;; Manifest containing Xorg and Wayland native compatible programs
(define-public %xorg-wayland-apps-manifest
(specifications->manifest
'("kitty" ;; <- May not need this and instead will use emacs-vterm
"alacritty" ;; <- ditto
"libnotify" ;; for notify-send
"network-manager-applet"
"numix-gtk-theme"
"adwaita-icon-theme")))
(define-public %guile-manifest
(specifications->manifest
'("guile"
"guile-charting" ;; guile-charting is required for 'guix size --map-file'
"guile-colorized"
"guile-hall"
"guile-readline")))
(define-public %misc-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; Packages from rekahsoft-guix
awscliv2
ledger-autosync
hledger-ui
terraform-provider-aws
terraform-wrapper-0.13))
(specifications->manifest
'("ansible"
"alsa-utils" ;; for alsamixer
"aws-vault"
"beets"
"bmon"
"coreutils"
"curl"
"direnv"
"flatpak"
"xdg-desktop-portal" ;; improves user experience of flatpak
"font-dejavu"
"font-liberation"
"font-fira-code" ;; TODO: check if font is needed
"font-gnu-freefont"
"font-terminus"
"font-google-noto"
"git"
"git:send-email"
"git:subtree"
"glibc-locales"
"gnupg"
"graphviz"
"font-ghostscript"
"gwl"
"hledger"
"hledger-web"
"htop"
"jq"
"ledger"
"mpd"
"mpv"
"ncmpcpp" ;; <- This can be replaced by emacs-emms
"nextcloud-client"
"nmap"
"nss-certs"
"nyxt"
"openssh"
"gnupg"
"pinentry-gnome3"
"pass-otp"
"password-store"
"recutils"
"rhash"
"skopeo"
"texlive"
"tmux"
"ungoogled-chromium"
"util-linux"
"wget"
"youtube-dl"
"kicad"
"kicad-templates"
"kicad-symbols"
"kicad-packages3d"
"kicad-footprints"
"kicad-doc"
"gtkwave"
;; TODO: (packages I like but maybe should be project specific?)
;; "avr-toolchain" (propigated inputs: "avrdude" "avr-binutils" "avr-gcc")
;; "clojure"
;; "lua"
;; "chez"
;; "coq"
;; TODO: (these probably should go in the system configuration)
;; "bitlebee"
)))))
(define %home-manifest
(concatenate-manifests
(list
%emacs-manifest
%shell-manifest
%xorg-manifest
%wayland-manifest
%xorg-apps-manifest
%xorg-wayland-apps-manifest
%guile-manifest
%misc-manifest)))
(define %home
(home-environment

View File

@ -3,31 +3,42 @@
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"101ba6490437334b65bed8d5f879ef8946847b2d")
"c51961b61f0142e8815be2c4137f907b6d889c26")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
(channel
(name 'rekahsoft-guix)
(url "https://git.rekahsoft.ca/rekahsoft/rekahsoft-guix.git")
(branch "master")
(commit
"ef4a6e8c1da99bd3b4efef5de1bd8d26cc887e9d")
(introduction
(make-channel-introduction
"191cdaa0947657e0c85fe89ebbb8e7b1e7a8e0a4"
(openpgp-fingerprint
"F8D5 46F3 AF37 EF53 D1B6 48BE 7B4D EB93 212B 3022"))))
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(branch "master")
(commit
"fea52adbc9356184bff51146c6515fad609baf77")
"81a651d3aa006e563385d7ff97f5ba5e5666f142")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'rekahsoft-guix)
(url "https://git.rekahsoft.ca/rekahsoft/rekahsoft-guix.git")
(name 'rekahsoft-dotfiles)
(url "https://git.rekahsoft.ca/rekahsoft-public/dotfiles.git")
(branch "master")
(commit
"b72c13392a9ffab0dd52dcf9e30fb599e364a78e")
"e72345feac858bb0885ae7aa4edda09b1b2c7b1f")
(introduction
(make-channel-introduction
"191cdaa0947657e0c85fe89ebbb8e7b1e7a8e0a4"
"32b8ebec9a503b9796fda0a8ac3eb11eec744397"
(openpgp-fingerprint
"F8D5 46F3 AF37 EF53 D1B6 48BE 7B4D EB93 212B 3022")))))

View File

@ -1,355 +1,3 @@
(use-modules
(gnu packages)
(guix profiles)
(guix transformations))
(define transform--emacs-helm-mu
(options->transformation
'((with-commit . "emacs-helm-mu=392a8c11ab27b625d9f863cdde14e09893401b15"))))
(define transform--emacs-org-super-agenda
(options->transformation
'((without-tests . "emacs-org-super-agenda"))))
(define %emacs-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; Temporary: emacs-helm-mu is broken but has been fixed upstream
(transform--emacs-helm-mu
(specification->package "emacs-helm-mu"))
;; Temporary: emacs-org-super-agenda tests stall and do not complete due to interactive prompt
(transform--emacs-org-super-agenda
(specification->package "emacs-org-super-agenda"))
(transform--emacs-org-super-agenda ;; org-ql propigates org-super-agenda
(specification->package "emacs-org-ql"))))
(specifications->manifest
'("aspell"
"aspell-dict-en"
"emacs"
"emacs-ace-jump-mode"
"emacs-ace-window"
"emacs-ag"
"emacs-all-the-icons-dired"
"emacs-auctex"
"emacs-auto-complete"
"emacs-auto-yasnippet"
"emacs-dashboard"
"emacs-dired-hacks"
"emacs-docker"
"emacs-docker-tramp"
"emacs-doom-modeline"
"emacs-elpher"
"emacs-emmet-mode"
"emacs-emms"
"emacs-expand-region"
"emacs-exwm"
"emacs-eval-in-repl"
"emacs-fill-column-indicator"
"emacs-flycheck"
"emacs-flycheck-ledger"
"emacs-geiser"
"emacs-gnuplot"
"emacs-go-mode"
"emacs-god-mode"
"emacs-graphql-mode"
"emacs-graphviz-dot-mode"
"emacs-guix"
"emacs-haskell-mode"
"emacs-helm"
"emacs-helm-ag"
"emacs-helm-c-yasnippet"
"emacs-helm-descbinds"
"emacs-helm-exwm"
"emacs-helm-gtags"
"emacs-helm-ls-git"
"emacs-helm-org"
"emacs-helm-pass"
"emacs-helm-projectile"
"emacs-helm-swoop"
"emacs-highlight-sexp"
"emacs-htmlize"
"emacs-hydra"
"emacs-ibuffer-projectile"
"emacs-isearch+"
"emacs-ivy"
"emacs-json-mode"
"emacs-jsonnet-mode"
"emacs-ledger-mode"
"emacs-lua-mode"
"emacs-magit"
"emacs-forge"
"emacs-markdown-mode"
"emacs-mmm-mode"
"emacs-mu4e-alert"
"emacs-mu4e-conversation"
"emacs-multi-term"
"emacs-multiple-cursors"
"emacs-no-littering"
"emacs-org"
"emacs-org-babel-eval-in-repl"
"emacs-org-download"
"emacs-org-mind-map"
"emacs-org-noter"
"emacs-org-roam"
"emacs-org-web-tools"
"emacs-orgit"
"emacs-ob-async"
"emacs-paredit"
"emacs-pdf-tools"
"emacs-persp-mode"
"emacs-php-mode"
"emacs-plantuml-mode"
"emacs-pretty-mode"
"emacs-projectile"
"emacs-racket-mode"
"emacs-rainbow-delimiters"
"emacs-rainbow-identifiers"
"emacs-rainbow-mode"
"emacs-realgud"
"emacs-rec-mode"
"emacs-restclient"
"emacs-ripgrep"
"emacs-rust-mode"
"emacs-scribble-mode"
"emacs-slime"
"emacs-string-inflection"
"emacs-swiper"
"emacs-terraform-mode"
"emacs-tramp"
"emacs-undo-tree"
"emacs-use-package"
"emacs-vterm"
"emacs-yaml-mode"
"emacs-yasnippet"
"emacs-yasnippet-snippets"
"gnuplot"
"isync"
"mu"
"plantuml"
; "emacs-ac-geiser" ;; TODO: hash mismatch; possible non-determinism
;"emacs-helm-mu" ;; TODO: broken, but fixed upstream
;;
;; Remaining packages from the rekahsoft-guix channel
"emacs-ace-mc"
"emacs-all-the-icons-ibuffer"
"emacs-hamlet-mode"
"emacs-helm-rg"
"emacs-helm-tramp"
"emacs-helm-unicode"
"emacs-highlight-indent-guides"
"emacs-highlight-parentheses"
"emacs-ibuffer-vc"
"emacs-intel-hex-mode"
"emacs-ix"
"emacs-mu4e-dashboard"
"emacs-mu4e-maildirs-extension"
"emacs-org-html-theme-darksun"
"emacs-org-html-themes"
"emacs-org-roam-extensions"
"emacs-org-roam-ui"
"emacs-persp-projectile"
"emacs-quack"
"emacs-rcirc-notify"
"emacs-rebox2"
"emacs-vimish-fold"
;; Use more up-to-date treemacs and treemacs-extra (as well as required dependencies)
"emacs-treemacs-20201225"
"emacs-treemacs-extra-20201225"
"emacs-all-the-icons-20201225"
"emacs-doom-themes-20201225"
;; Use more up-to-date ace-link
"emacs-ace-link-2021-01-1")))))
(define %shell-manifest
(concatenate-manifests
(list
(packages->manifest
(list
;; TODO: this was added upstream (as "go-github-com-junegunn-fzf") but is not as complete as my existing package
(@ (rekahsoft-gnu packages shellutils) fzf)))
(specifications->manifest
'("bat"
"exa"
"ripgrep"
"zsh-syntax-highlighting"
;; Remaining packages from the rekahsoft-guix channel
"sh-z"
"spaceship-prompt"
"zsh-autosuggestions")))))
(define %xorg-manifest
(specifications->manifest
'("mesa"
"setxkbmap"
"xdg-utils"
"xf86-input-libinput"
"xf86-video-fbdev"
"xinit"
"xinput"
"xkbcomp"
"xkeyboard-config"
"xlsfonts"
"xorg-server"
"xrandr"
"autorandr"
"xrdb"
"xsetroot")))
(define %wayland-manifest
(specifications->manifest
'("grim"
"hicolor-icon-theme" ;; Required for wofi icon theme
"slurp"
"sway"
"wayland"
"wofi")))
;; Manifest containing x programs (that cannot natively run with wayland).
(define %xorg-apps-manifest
(specifications->manifest
'("dunst" ;; <- May not need this; use something in emacs
"feh"
"pavucontrol"
"redshift"
"rofi" ;; <- Look into replacing in emacs
"rofi-pass" ;; <- This should be replacable in emacs with helm-pass
"firefox" ;; from nonguix
"i3lock-fancy"
"xmonad"
"xmobar"
"trayer-srg" ;; used in xmonad as system tray
"dmenu"
"unclutter"
"virt-manager"
"xautolock"
"xclip"
"zathura"
"zathura-djvu"
"zathura-pdf-poppler"
"zathura-ps"
;; "xbindkeys" <- should be able to depricate this
;; "compton" <- this historyically caused issues with screen locking
;;
;; Remaining packages from the rekahsoft-guix channel
"virt-viewer@11.0")))
;; Manifest containing Xorg and Wayland native compatible programs
(define %xorg-wayland-apps-manifest
(specifications->manifest
'("kitty" ;; <- May not need this and instead will use emacs-vterm
"alacritty" ;; <- ditto
"network-manager-applet"
"adwaita-icon-theme")))
(define %guile-manifest
(specifications->manifest
'("guile"
"guile-charting" ;; guile-charting is required for 'guix size --map-file'
"guile-colorized"
"guile-hall"
"guile-readline")))
(define %misc-manifest
(specifications->manifest
'("ansible"
"awscliv2"
"alsa-utils" ;; for alsamixer
"beets"
"bmon"
"coreutils"
"curl"
"direnv"
"flatpak"
"xdg-desktop-portal" ;; improves user experience of flatpak
"font-dejavu"
"font-liberation"
"font-fira-code" ;; TODO: check if font is needed
"font-gnu-freefont"
"font-terminus"
"font-google-noto"
"git"
"git:send-email"
"git:subtree"
"glibc-locales"
"gnupg"
"graphviz"
"font-ghostscript"
"gwl"
"hledger"
"htop"
"ledger"
"ledger-autosync"
"mpd"
"mpv"
"ncmpcpp" ;; <- This can be replaced by emacs-emms
"nextcloud-client"
"nmap"
"nss-certs"
"nyxt"
"openssh"
"gnupg"
"pinentry-gnome3"
"pass-otp"
"password-store"
"recutils"
"rhash"
"skopeo"
"texlive"
"tmux"
"ungoogled-chromium"
"util-linux"
"wget"
"youtube-dl"
"kicad"
"kicad-templates"
"kicad-symbols"
"kicad-packages3d"
"kicad-footprints"
"kicad-doc"
"gtkwave"
;; TODO: (packages I like but maybe should be project specific?)
;; "avr-toolchain" (propigated inputs: "avrdude" "avr-binutils" "avr-gcc")
;; "clojure"
;; "lua"
;; "chez"
;; "coq"
;; TODO: (these probably should go in the system configuration)
;; "bitlebee"
;;
;; Remaining packages from the rekahsoft-guix channel
"aws-vault"
"hledger-ui"
"hledger-web"
"terraform-provider-aws"
"terraform-wrapper")))
(define %home-manifest
(concatenate-manifests
(list
%emacs-manifest
%shell-manifest
%xorg-manifest
%wayland-manifest
%xorg-apps-manifest
%xorg-wayland-apps-manifest
%guile-manifest
%misc-manifest)))
;; Return home-manifest so this file can be used by guix commands that accept manifest files
%home-manifest
;; Return home-manifest from dotfiles channel, so this file can be used by guix commands that
;; accept manifest files
(@ (rekahsoft guix-config home) %home-manifest)