Go to file
Alex Kost 1f205b8c75 elisp/ui-license: Use 'cons' instead of 'cl-list*'
* elisp/guix-ui-license.el (guix-license-list-describe): 'cl-list*' is
  redundant here, use 'cons' instead.
2017-03-08 13:29:59 +03:00
build-aux build: Simplify configuring for "guix environment" 2017-01-09 23:04:10 +03:00
doc doc: Adjust shell completions documentation 2017-02-15 13:41:09 +03:00
elisp elisp/ui-license: Use 'cons' instead of 'cl-list*' 2017-03-08 13:29:59 +03:00
images elisp: Add 'guix-about' command 2016-12-21 00:23:56 +03:00
scheme build: Rename default silent rules 2017-02-27 17:43:49 +03:00
.gitignore build: Simplify configuring for "guix environment" 2017-01-09 23:04:10 +03:00
COPYING Initial commit 2014-07-16 09:49:41 +04:00
INSTALL Add GNU Build System infrastructure 2016-11-14 12:19:13 +03:00
Makefile.am build: Simplify configuring for "guix environment" 2017-01-09 23:04:10 +03:00
NEWS Update NEWS 2017-02-27 17:56:35 +03:00
README README: Add "Installation" section 2017-02-04 21:50:59 +03:00
README.org Update README 2016-11-25 23:03:24 +03:00
THANKS Add THANKS 2017-01-23 22:17:22 +03:00
autogen.sh Add GNU Build System infrastructure 2016-11-14 12:19:13 +03:00
configure.ac Update version to 0.3 2017-02-27 17:56:35 +03:00
guix.scm guix: Replace some code with 'git-predicate' 2017-02-27 17:56:35 +03:00

README

-*- mode: org -*-

* About

=Emacs-Guix= (aka =guix.el=) provides various features and tools
for [[http://www.gnu.org/software/guix/][GNU Guix]] package manager.

It allows you to manage your Guix profile(s) from Emacs: to install,
upgrade and remove packages, to switch and remove profile generations,
to display all available info about packages and to do many other
things.

This README provides only a basic overview on Emacs-Guix, for a full and
detailed description, see the info manual that comes with it.

In short, Emacs-Guix provides the following features:

- Interface for:

  + profiles

  + profile generations (including system generations for GuixSD)

  + packages

  + package licenses

  + package locations

  + [[https://hydra.gnu.org][Hydra build farm]]

- Magit-like popup interface for all guix shell commands (=M-x guix=).

- Modes to view logs of package builds (=guix-build-log-mode= and
  =guix-build-log-minor-mode=).

- Minor mode to "prettify" store file names (to replace hash parts with
  "…").

- Shell completions for all guix commands and options (for =M-x shell=
  and =M-x eshell=).

- Minor mode with additional functionality for =scheme-mode= to work
  with Guix .scm files, particularly with package modules
  (=guix-devel-mode=).

On the following screenshot you can see one of the mentioned features,
namely: "list" and "info" interface for Guix packages (this screenshot
was made for an early version of Emacs-Guix, the interface has slightly
changed since then).

[[http://i.imgur.com/gRcu14n.png]]

([[https://github.com/alezost/alect-themes][alect-light]] theme is used there).

* Installation

Emacs-Guix can be installed using Guix, from [[http://melpa.org/][MELPA]], or it can be used
from a git checkout.

** Guix

Just use:

#+BEGIN_SRC sh
guix package -i emacs-guix
#+END_SRC

** MELPA

If you added "melpa" or "melpa-stable" archives to =package-archives= as
it is described on the [[http://melpa.org/#/getting-started][MELPA Getting Started]] page, you can install
"emacs-guix" using =M-x package-install= or =M-x list-packages=
commands.

** Git checkout

Also you can clone this git repository and use Emacs-Guix from this git
checkout (see the info manual for details).

Finally, if you have the git checkout, you can install Guix package for
the current commit of Emacs-Guix using [[file:guix.scm]] file:

#+BEGIN_SRC sh
guix package --install-from-file=guix.scm
#+END_SRC

* Usage

Call =M-x guix-help= to get a summary of all available commands.
Here is an incomplete list of them:

- To show packages:

  : M-x guix-all-available-packages
  : M-x guix-newest-available-packages
  : M-x guix-installed-user-packages
  : M-x guix-installed-system-packages
  : M-x guix-obsolete-packages
  : M-x guix-packages-by-name
  : M-x guix-packages-by-license
  : M-x guix-packages-by-location
  : M-x guix-package-from-file
  : M-x guix-search-by-name
  : M-x guix-search-by-regexp

- To show profile generations:

  : M-x guix-generations
  : M-x guix-last-generations
  : M-x guix-generations-by-time
  : M-x guix-system-generations
  : M-x guix-last-system-generations
  : M-x guix-system-generations-by-time

- To show/browse package licenses:

  : M-x guix-licenses
  : M-x guix-browse-license-url
  : M-x guix-find-license-definition

- To show/find package locations:

  : M-x guix-locations
  : M-x guix-find-location
  : M-x guix-edit

- Magit-like interface:

  : M-x guix

- To show Hydra builds and jobsets:

  : M-x guix-hydra-latest-builds
  : M-x guix-hydra-queued-builds
  : M-x guix-hydra-jobsets

- Miscellaneous commands:

  : M-x guix-pull
  : M-x guix-prettify-mode
  : M-x guix-build-log-mode
  : M-x guix-devel-mode