Dear, On Mon, 29 Jun 2020 at 21:37, Zelphir Kaltstahl <[email protected]> wrote: >> On Thu, 25 Jun 2020 at 21:25, Zelphir Kaltstahl <[email protected]> >> wrote: >> >>> * It requires keeping multiple Emacs on my system. How will they >>> interact with the same ~/.emacs.d/.init.el? >> Emacs reads init.el when it starts so yes all Emacs will interact with >> this file if you do not specify explicitly to not do it. Well, if you >> use 'with-eval-after-load' in your Emacs configuration files, it should >> not be a problem. Otherwise give a look at "emacs-guix" or try "emacs -q >> -l /path/to/your/specific/config.el", as Maxim pointed. > > OK, so basically the way would then be to have 2 Emacs, but always start > one of them with with the `-l <path>` argument, so that it makes use of > another config file.
I am not sure to understand what you want. Could you describe what is your desired workflow to hack Erlang? > OK nice! I'll try it for a package! I noticed, that there are only 3 > Emacs Org-Babel packages available (or visible) > at: https://guix.gnu.org/packages/E/page/9/. I'l try with some of > those First, in case you do not know this web interface for searching packages: https://hpc.guix.info/browse Second, I am not following closely Org Babel extensions but what languages appear to you missing? > Also the edit thing `guix edit emacs-ob-erlang` sounds interesting. It depends if you use Guix System or Guix as package manager solely. For the latter, the 'edit' is read-only. > I just did the edit thing and I am not sure how to then "upload" a > package. But I will read the docs a little and will probably all clear > up. What do you mean by "upload"? If you mean contribute, you might be interested by this section of the manual: https://guix.gnu.org/manual/devel/en/guix.html#Contributing > So if I understand this correctly, there are different channels for > different types of packages, for example for Rust packages we have > `gnu/packages/crates-io.scm` and for Emacs packages we have > `gnu/packages/emacs-xyz.scm`. Channel is not the right term, in Guix parlance. To be clear, channel means a collection of packages living in files. The previous different types of packages are all in the same channel, i.e., the default channel. https://guix.gnu.org/manual/devel/en/guix.html#Channels For channels examples, you can give a look at: https://gitlab.inria.fr/guix-hpc/guix-hpc ahttps://gitlab.inria.fr/guix-hpc/guix-past > > The command `guix describe -f channels` does not work for me: > > ~~~~ > xiaolong@xlx200:~$ guix describe -f channels > guix describe: error: failed to determine origin > hint: Perhaps this `guix' command was not obtained with `guix pull'? Its > version string is > 36da62f1b9c78a2729658143a7df1845cd532afa. > ~~~~ How did you install Guix? Have you run "guix pull" before trying "guix describe"? > I did another `guix pull` and `guix package -u` and this is after a > fresh Guix package manager install and and installing the following > packages: > > ~~~~ > xiaolong@xlx200:~$ sudo -i guix package -I Note that once you have configured your system (if you use Guix System), you can run "guix pull" as a regular user and install package as regular user, independently of what your system-wide is. > The other command to show the count of packages also does not work for me: > > ~~~~ > xiaolong@xlx200:/$ sudo du -sh gnu/packages/*.scm | sort -nr | head -n5 > du: cannot access 'gnu/packages/*.scm': No such file or directory > ~~~~ You need to be in the Guix repo, i.e., you need to git clone https://git.savannah.gnu.org/git/guix.git and the subfolder gnu/packages/ contains all the packages stored by thematic. > Do I need to create channels, like a custom way of structuring packages > for myself, before running these commands? To test and install your own packages, you have 3 choices: 1. ./pre-inst-env 2. local channel 3. --load-path The point #1 means you use the Contribution section, build Guix from source, then add your package to the file gnu/packages/emacs-xyz.scm (of the Git clone) and then run (from the Git cloned repo): ./pre-inst-env guix install emacs-foo The point #2 means you use a local Git repo containing your definitions of packages. You have the channels.scm file: --8<---------------cut here---------------start------------->8--- (cons* (channel (name 'my-stuff) (url "file:////path/to/my/stuff.git") (branch "master")) %default-channels) --8<---------------cut here---------------end--------------->8--- then "guix pull -C path/to/channels.scm" and you should be able to install your package emacs-foo with "guix install emacs-foo". Note that the Git repo can be also https:// or other protocols. The point #3 mean you use a local folder containing your definitions as for point #2. Then you simply run: guix install -L path/to/your/folder/containing/stuff emacs-foo Hope that helps, simon
