[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "M-x guix" - magit-like interface for guix commands

From: Ludovic Courtès
Subject: Re: "M-x guix" - magit-like interface for guix commands
Date: Tue, 25 Aug 2015 23:12:13 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Alex Kost <address@hidden> skribis:

> Thompson, David (2015-08-14 17:40 +0300) wrote:
>> On Fri, Aug 14, 2015 at 4:19 AM, Alex Kost <address@hidden> wrote:
>>> Hello, I've pushed 'wip-emacs-popup-ui' branch with emacs magit-like
>>> (popup) interface for guix commands.
>>> In short, here is how it looks like:
>>> "M-x guix": <>
>>> and pressing "b" there ("build"): <>
>>> There are some things to do, but it is ready for trying.  So if anyone
>>> wants to look at it:
>>> 1. Set up emacs for using your guix repo directory -
>>>    see (info "(guix) Emacs Initial Setup")
>>> 2. Switch to 'wip-emacs-popup-ui' branch and "make" it.
>>> 3. Start emacs and run "M-x guix".
>>> Oh, and it requires 'magit-popup' library which is a part of Magit 2.1.0.
>> This looks awesome!  I love Magit's interface.  Though, I do wonder if
> I like it too :-)

+1, excellent idea!

>> depending on Magit is too heavy a dependency.
> It does not depend on the whole Magit but only on a single
> "magit-popup.el" file which may be installed separately (available on
> Melpa, for example).  So potentially we can make a package just for this
> library and use it.
> However, according to its manual¹, it will be superseded by a general
> library which will not be a part of magit, so eventually it will be a
> light-weight dependency I think.
> Anyway, we already have a heavy dependency for Emacs interface (Geiser).

Yes, but Geiser is an “obvious” one that cannot be avoided.

I haven’t tested wip-emacs-popup-ui yet because I have yet to switch to
Magit 2 (I’m slightly afraid of breaking my workflow, maybe unreasonably

That said, since the functionality is in a separate file, people who
don’t have magit-popup.el can just choose to not use M-x guix while
still being available to use the other features, right?

>> I noticed an 'e' for 'environment'.  I imagine that's just a placeholder. ;)
> Not really, all commands (including 'environment') are ready to use.
> You just specify the options you want in the magit manner and then you run
> "Execute" action.  And the specified command is executed in Guix REPL.
> Specifically for 'environment' it may lead to a very interesting result
> as it will spawn an external process, unless --dry-run or --search-paths
> options were specified.  But still it will… let's say… work, but only if
> a user is brave enough to try it ;)


It Would Be Nice to have, say, M-x guix-compile-in-environment, which
would be like M-x compile but just run the thing in ‘guix environment’.
Just thought I’d mention this in passing.  ;-)

> Also along with "execute in REPL" action I'm going to add 2 more default
> actions for each command:
> - "execute in shell" — this will be a complete alternative to writing a
>   full command manually in a shell buffer.
> - "copy the command line" — i.e., to put the specified command arguments
>    into kill ring, so later a user could do with it whatever he wants.

(he or she)

Sounds like more exciting stuff ahead!

Thanks for your creativity & hack power!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]