emacs: Add 'M-x guix-installed-{user/system}-packages'.
[jackhill/guix/guix.git] / doc / emacs.texi
index b2a3d47..27f5365 100644 (file)
@@ -9,6 +9,7 @@ Guix convenient and fun.
 @menu
 * Initial Setup: Emacs Initial Setup.  Preparing @file{~/.emacs}.
 * Package Management: Emacs Package Management.        Managing packages and generations.
+* Licenses: Emacs Licenses.            Interface for licenses of Guix packages.
 * Popup Interface: Emacs Popup Interface.      Magit-like interface for guix commands.
 * Prettify Mode: Emacs Prettify.       Abbreviating @file{/gnu/store/@dots{}} file names.
 * Build Log Mode: Emacs Build Log.     Highlighting Guix build logs.
@@ -105,7 +106,7 @@ for the built-in Emacs package system (@pxref{Package Installation,,,
 emacs, The GNU Emacs Manual}).
 
 You can activate Emacs packages installed in your profile whenever you
-want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
+want using @kbd{M-x@tie{}guix-emacs-autoload-packages}.
 
 
 @node Emacs Package Management
@@ -149,20 +150,34 @@ Commands for displaying packages:
 Display all/newest available packages.
 
 @item M-x guix-installed-packages
-Display all installed packages.
+@itemx M-x guix-installed-user-packages
+@itemx M-x guix-installed-system-packages
+Display installed packages.  As described above, @kbd{M-x
+guix-installed-packages} uses an arbitrary profile that you can specify,
+while the other commands display packages installed in 2 special
+profiles: @file{~/.guix-profile} and @file{/run/current-system/profile}
+(only on GuixSD).
 
 @item M-x guix-obsolete-packages
 Display obsolete packages (the packages that are installed in a profile
 but cannot be found among available packages).
 
-@item M-x guix-search-by-name
+@item M-x guix-packages-by-name
 Display package(s) with the specified name.
 
+@item M-x guix-packages-by-license
+Display package(s) with the specified license.
+
 @item M-x guix-search-by-regexp
 Search for packages by a specified regexp.  By default ``name'',
 ``synopsis'' and ``description'' of the packages will be searched.  This
 can be changed by modifying @code{guix-package-search-params} variable.
 
+@item M-x guix-search-by-name
+Search for packages with names matching a specified regexp.  This
+command is the same as @code{guix-search-by-regexp}, except only a
+package ``name'' is searched.
+
 @end table
 
 By default, these commands display each output on a separate line.  If
@@ -210,6 +225,31 @@ With @kbd{C-u}, make it verbose.
 Once @command{guix pull} has succeeded, the Guix REPL is restared.  This
 allows you to keep using the Emacs interface with the updated Guix.
 
+Finally, there is an Emacs variant of @command{guix edit} command
+(@pxref{Invoking guix edit}):
+
+@table @kbd
+@item M-x guix-edit
+As with @kbd{M-x guix-packages-by-name}, you can press @key{TAB} to
+complete a package name.
+@end table
+
+If you are contributing to Guix, you may find it useful for @kbd{M-x
+guix-edit} to open package files from your git directory.  This can be
+done by setting @code{guix-directory} variable.  For example, after
+this:
+
+@example
+(setq guix-directory "~/src/guix")
+@end example
+
+@kbd{M-x guix-edit guix} opens
+@file{~/src/guix/gnu/packages/package-management.scm} file.
+
+Also you can use @kbd{C-u} prefix argument to specify a directory just
+for the current @kbd{M-x guix-edit} command.
+
+
 @node Emacs General info
 @subsection General information
 
@@ -350,6 +390,7 @@ emacs, The GNU Emacs Manual}) which can be used to:
 @item install/remove a package;
 @item jump to a package location;
 @item browse home page of a package;
+@item browse license URL;
 @item describe packages from ``Inputs'' fields.
 @end itemize
 
@@ -511,6 +552,27 @@ Various settings for ``info'' buffers.
 @end table
 
 
+@node Emacs Licenses
+@section Licenses
+
+If you want to browse the URL of a particular license, or to look at a
+list of licenses, you may use the following commands:
+
+@table @kbd
+
+@item M-x guix-browse-license-url
+Choose a license from a completion list to browse its URL using
+@code{browse-url} function (@pxref{Browse-URL,,, emacs, The GNU Emacs
+Manual}).
+
+@item M-x guix-licenses
+Display a list of available licenses.  You can press @kbd{@key{RET}}
+there to display packages with this license in the same way as @kbd{M-x
+guix-packages-by-license} would do (@pxref{Emacs Commands}).
+
+@end table
+
+
 @node Emacs Popup Interface
 @section Popup Interface
 
@@ -547,7 +609,7 @@ GNU Emacs Manual}).
 
 @end itemize
 
-Several commands (@command{guix graph}, @command{guix system dmd-graph}
+Several commands (@command{guix graph}, @command{guix system shepherd-graph}
 and @command{guix system extension-graph}) also have a ``View graph''
 action, which allows you to view a generated graph using @command{dot}
 command (specified by @code{guix-dot-program} variable).  By default a