Hi,
Thought I should try letting guix handle the emacs packages. And overall it
worked out great. But encounter some minor issues along the way, so I
thought I should ask.
1) The manual mention that packages installed via guix will be picked up by
emacs from the EMACSLOADPATH which is set when emacs is installed. That was
not the case for me. I needed to manually set:
export EMACSLOADPATH=$GUIX_PROFILE/share/emacs/site-lisp:$EMACSLOADPATH
for it to work. I'm running guix on a foreign distro and I'm using
emacs-next. Is one of those the reason for it?
2) Not all packages I use in emacs are packaged up in guix (yet). And some
did not work properly for me. So I still need to rely on emacs to install
some of the packages. The issue is, that it doesn't seem that emacs knows
about the packages installed via guix when it comes to installing packages.
Even though it can load them just fine.
For example emacs-dash which I have installed via my manifest but is also
one that gets installed by emacs. If I run emacs -Q and then M-x
describe-package dash. It gives me
Package dash is dependency.
Status: Installed in ‘dash-20200426.2244/’ (unsigned).
Version: 20200426.2244
Summary: A modern list library for Emacs
Required by: ts-20191010.210, org-super-agenda-20200310.1337,
magit-20200522.1028, ht-20200217.2331, git-commit-20200516.2016
Keywords: lists
Maintainer: Magnar Sveen <[email protected]>
Author: Magnar Sveen <[email protected]>
Other versions: 20200426.2244 (melpa), 2.17.0 (melpa-stable), 2.12.0 (gnu).
If I remove my elpa directory in my user-emacs-directory where emacs
installs the packages. It wont find dash when I do describe-package. But if
I run (require 'dash) it will find and load dash. Unsetting EMACSLOADPATH
and it will fail to find dash.
Is this the expected behavior? From what I can tell from reading the manual
[1], external packages must be listed in `package-directory-list` and have
the same layout as the one installed in elpa. Which is not the case when
installing via guix, as everything is symlinked to
$GUIX_PROFILE/share/emacs/site-lisp.
I hope this isn't too much off topic and apologize if any of this has been
asked before (I couldn't find the answer when searching the mailing list
archive).
Thanks
1:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Files.html#Package-Files
--
s/Fred[re]+i[ck]+/Fredrik/g
(use-package-modules
fonts
emacs
emacs-xyz
cmake
finance
shellutils
haskell-apps)
(packages->manifest
(list
font-hack
glibc-locales
emacs-next
emacs-s
emacs-dash
emacs-company
emacs-yasnippet
emacs-highlight-symbol
emacs-haskell-mode
emacs-smartparens
emacs-jinja2-mode
emacs-rust-mode
emacs-go-mode
emacs-cmake-mode
emacs-geiser
emacs-toml-mode
emacs-yaml-mode
emacs-json-mode
emacs-markdown-mode
emacs-julia-mode
emacs-systemd-mode
emacs-lua-mode
emacs-ledger-mode
emacs-gnuplot
emacs-magit
emacs-transient
emacs-ag
emacs-pdf-tools
emacs-telega
emacs-vterm
emacs-libmpdel
emacs-mpdel
emacs-nginx-mode
emacs-org
emacs-emms
emacs-ivy
emacs-wgrep
emacs-tramp
emacs-sudo-edit
emacs-evil
emacs-emojify
emacs-rainbow-mode
emacs-move-text
emacs-expand-region
emacs-multiple-cursors
emacs-string-inflection
emacs-nov-el
emacs-guix
emacs-lsp-mode
emacs-eglot
emacs-direnv
;; External tools used by emacs
direnv
shellcheck
))