Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe


Jan Nieuwenhuizen writes:
> My emacs-guix already has a file called guix-profiles.el; how do you
> handle that
oops, I think I'll rename this script then :)

> or how do I best look at / try your profiles?
I think the easiest way to try this is to source the guix-profiles file,
set the three "defcustom" variables, and to then run guix-enable-profile
or guix-disable-profile interactively.

> This looks interesting; I'm using M-x guix-set-emacs-environment a
> lot but my biggest problem/gripe with that is that it's global.
Yeah this is also global, as far as I can tell the only difference with
guix-set-emacs-environment seems to be that this allows enabling several
profiles at the same time and that this script maintains a list of which
profiles should be active. I think I'll take a look at how this could be
integrated into emacs-guix.

As to non-global things: I think a way to open a shell in emacs with a
specific set of packages available would be nice, but I'm not sure
whether it'd be better to wrap `guix environment` or to implement
something that starts a subprocess with the environment variables
corresponding to a (set of) profile(s). When implemented correctly, this
could also be applied through per-project profiles when combined with a
project manager such as projectile.

Blessings,
pinoaffe



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread Jan Nieuwenhuizen
pinoaffe writes:

Hello,

> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.

> Any thoughts?

My emacs-guix already has a file called guix-profiles.el; how do you
handle that or how do I best look at / try your profiles?

This looks interesting; I'm using M-x guix-set-emacs-environment a
lot but my biggest problem/gripe with that is that it's global.

Janneke

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread zimoun
Hi,

On Thu, 17 Dec 2020 at 09:36, pinoaffe  wrote:

>> Aside, it is a bit redundant with Emacs-Guix, from my
>> understanding. :-)
> It might very well be, but I couldn't find a way to do what I wanted to
> do with emacs-guix

I guess the entrypoint is ’guix-set-emacs-environment’.  But I have not
looked into the details of your code, neither checked if the Emacs-Guix
is currently working as expected.



I understand though that the learning process is often easier by doing
by their own instead of adding or fixing the wanted feature with an
existing code base. :-)

All the best,
simon



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe


zimoun writes:
>
> Instead of call shell command and then…
>
> …parse the output, you should give a look at how Emacs-Guix does using
> the Scheme API.  Or maybe use “guix repl” as Nyxt does.
Thanks for the suggestion, I'll look into that

> Aside, it is a bit redundant with Emacs-Guix, from my
> understanding. :-)
It might very well be, but I couldn't find a way to do what I wanted to
do with emacs-guix

Blessing,
pinoaffe



Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe
Hi guix!

I wrote some elisp that
* maintains a list of available guix profiles
* maintains a list of active guix profiles
* allows the user to modify both of those lists
* provides interactive commands that allow the user to (de)activate profiles
* sets env variables and the emacs search path based on active profiles
I may add the ability to "update" a profile from a manifest.

This allows me to have a profile with, say, reverse engineering tools,
and to (de)activate it whenever I do(nt) need those tools.

Please not that I'm fairly new to all of this emacs stuff, so it may not
be idiomatic or good code.

I've attached the reusable stuff in guix-profiles.el, and my personal
config in init-profiles.el.

Any thoughts?

Blessings,
pinoaffe



guix-profiles.el
Description: application/emacs-lisp


init-profiles.el
Description: application/emacs-lisp


Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe
Hi everybody, sorry for the repeated messages, something went wrong with
mu4e

On Thu, Dec 17, 2020 at 4:59 AM pinoaffe  wrote:

> Hi guix!
>
> I wrote some elisp that
> * maintains a list of available guix profiles
> * maintains a list of active guix profiles
> * allows the user to modify both of those lists
> * provides interactive commands that allow the user to (de)activate
> profiles
> * sets env variables and the emacs search path based on active profiles
> I may add the ability to "update" a profile from a manifest.
>
> This allows me to have a profile with, say, reverse engineering tools,
> and to (de)activate it whenever I do(nt) need those tools.
>
> Please not that I'm fairly new to all of this emacs stuff, so it may not
> be idiomatic or good code.
>
> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.
>
> Any thoughts?
>
> Blessings,
> pinoaffe
>
>


Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread zimoun
Hi,

On Thu, 17 Dec 2020 at 05:59, pinoaffe  wrote:

> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.

Thanks for sharing.

> (defun guix-profiles->environment-vars (profiles)
>   (shell-command-to-string
>(string-join (apply #'list
>"guix"
>"package"
>"--search-paths"

Instead of call shell command and then…

> (defun guix-path-file->key-value (str)
>   (mapcar (lambda (line)
>   (let* ((lst (split-string line "="))
>  (var (string-remove-prefix "export " (car lst)))
>  (val (string-trim (string-join (cdr lst) "=") "\"" 
> "\"")))
> (cons var val)))
>   (split-string (string-trim-right str "\n")
> "\n")))

…parse the output, you should give a look at how Emacs-Guix does using
the Scheme API.  Or maybe use “guix repl” as Nyxt does.


Aside, it is a bit redundant with Emacs-Guix, from my understanding. :-)

All the best,
simon



Some emacs stuff to activate/deactivate guix profiles

2020-12-16 Thread pinoaffe
Hi guix!

I wrote some elisp that
* maintains a list of available guix profiles
* maintains a list of active guix profiles
* allows the user to modify both of those lists
* provides interactive commands that allow the user to (de)activate profiles
* sets env variables and the emacs search path based on active profiles
I may add the ability to "update" a profile from a manifest.

This allows me to have a profile with, say, reverse engineering tools,
and to (de)activate it whenever I do(nt) need those tools.

Please not that I'm fairly new to all of this emacs stuff, so it may not
be idiomatic or good code.

I've attached the reusable stuff in guix-profiles.el, and my personal
config in init-profiles.el.

Any thoughts?

Blessings,
pinoaffe



guix-profiles.el
Description: application/emacs-lisp


init-profiles.el
Description: application/emacs-lisp


Some emacs stuff to activate/deactivate guix profiles

2020-12-16 Thread pinoaffe
Hi guix!

I wrote some elisp that
* maintains a list of available guix profiles
* maintains a list of active guix profiles
* allows the user to modify both of those lists
* provides interactive commands that allow the user to (de)activate profiles
* sets env variables and the emacs search path based on active profiles
I may add the ability to "update" a profile from a manifest.

This allows me to have a profile with, say, reverse engineering tools,
and to (de)activate it whenever I do(nt) need those tools.

Please not that I'm fairly new to all of this emacs stuff, so it may not
be idiomatic or good code.

I've attached the reusable stuff in guix-profiles.el, and my personal
config in init-profiles.el.

Any thoughts?

Blessings,
pinoaffe



guix-profiles.el
Description: application/emacs-lisp


init-profiles.el
Description: application/emacs-lisp


Some emacs stuff to activate/deactivate guix profiles

2020-12-16 Thread pinoaffe
Hi guix!

I wrote some elisp that
* maintains a list of available guix profiles
* maintains a list of active guix profiles
* allows the user to modify both of those lists
* provides interactive commands that allow the user to (de)activate profiles
* sets env variables and the emacs search path based on active profiles
I may add the ability to "update" a profile from a manifest.

This allows me to have a profile with, say, reverse engineering tools,
and to (de)activate it whenever I do(nt) need those tools.

Please not that I'm fairly new to all of this emacs stuff, so it may not
be idiomatic or good code.

I've attached the reusable stuff in guix-profiles.el, and my personal
config in init-profiles.el.

Any thoughts?

Blessings,
pinoaffe



guix-profiles.el
Description: application/emacs-lisp


init-profiles.el
Description: application/emacs-lisp


Some emacs stuff to activate/deactivate guix profiles

2020-12-16 Thread pinoaffe
Hi guix!

I wrote some elisp that
* maintains a list of available guix profiles
* maintains a list of active guix profiles
* allows the user to modify both of those lists
* provides interactive commands that allow the user to (de)activate profiles
* sets env variables and the emacs search path based on active profiles
I may add the ability to "update" a profile from a manifest.

This allows me to have a profile with, say, reverse engineering tools,
and to (de)activate it whenever I do(nt) need those tools.

Please not that I'm fairly new to all of this emacs stuff, so it may not
be idiomatic or good code.

I've attached the reusable stuff in guix-profiles.el, and my personal
config in init-profiles.el.

Any thoughts?

Blessings,
pinoaffe



guix-profiles.el
Description: application/emacs-lisp


init-profiles.el
Description: application/emacs-lisp