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 <magn...@gmail.com>
     Author: Magnar Sveen <magn...@gmail.com>
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
    ))

Reply via email to