From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: "M-x guix" - magit-like interface for guix commands Date: Tue, 25 Aug 2015 23:12:13 +0200 Message-ID: <87mvxfgjiq.fsf@gnu.org> References: <87zj1u704r.fsf@gmail.com> <87wpww8t9h.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZULW3-0007JX-3d for guix-devel@gnu.org; Tue, 25 Aug 2015 17:12:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZULVz-0001WA-Ta for guix-devel@gnu.org; Tue, 25 Aug 2015 17:12:23 -0400 In-Reply-To: <87wpww8t9h.fsf@gmail.com> (Alex Kost's message of "Sat, 15 Aug 2015 18:29:30 +0300") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Alex Kost Cc: guix-devel Alex Kost skribis: > Thompson, David (2015-08-14 17:40 +0300) wrote: > >> On Fri, Aug 14, 2015 at 4:19 AM, Alex Kost 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=C2=B9, 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 =E2=80=9Cobvious=E2=80=9D one that cannot be avoided. I haven=E2=80=99t tested wip-emacs-popup-ui yet because I have yet to switc= h to Magit 2 (I=E2=80=99m slightly afraid of breaking my workflow, maybe unreaso= nably so!). That said, since the functionality is in a separate file, people who don=E2=80=99t 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=E2=80=A6 let's say=E2=80=A6 wo= rk, 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 =E2=80=98guix environme= nt=E2=80=99. Just thought I=E2=80=99d 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" =E2=80=94 this will be a complete alternative to wri= ting a > full command manually in a shell buffer. > > - "copy the command line" =E2=80=94 i.e., to put the specified command ar= guments > 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! Ludo=E2=80=99.