dbdb8d13e9
* autogen.sh: New file. * configure.ac: New file. * Makefile.am: New file. * scheme/Makefile.am: New file. * elisp/local.mk: New file. * INSTALL: New file. |
||
---|---|---|
doc | ||
elisp | ||
scheme | ||
.gitignore | ||
autogen.sh | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
README.org |
This repository is dead: "guix.el" is a part of GNU Guix now (since Guix 0.8).
About
guix.el provides Emacs interface for Guix package manager.
It is possible to search for, install, upgrade and remove Guix packages. Also you can get information about generations.
Screenshot: (alect-light theme is used).
Requirements
- Guix: if you didn't
guix pull
after <2014-08-20 Wed>, do it before using "guix.el", because the earlier snapshots are not fully supported; - Emacs 24.3 or above;
- Geiser as this package use it for interacting with guile process.
Installation
Automatic
If you use Quelpa, you can install the package like this:
(quelpa '(guix :fetcher github :repo "alezost/guix.el" :files ("*.el" "*.scm")))
Manual
For the manual installation, clone the repo, add the directory to the
load-path
and add some autoloads for the interactive commands:
(add-to-list 'load-path "/path/to/guix-dir")
(autoload 'guix-search-by-name "guix" nil t)
(autoload 'guix-search-by-regexp "guix" nil t)
(autoload 'guix-installed-packages "guix" nil t)
(autoload 'guix-obsolete-packages "guix" nil t)
(autoload 'guix-all-available-packages "guix" nil t)
(autoload 'guix-newest-available-packages "guix" nil t)
(autoload 'guix-generations "guix" nil t)
Usage
Note: The first start of Guix REPL may take a long time, so be patient
and do not press C-g
. If you want to disable auto-compilation, use the
following setting (it is not necessary):
(setq guix-guile-program '("guile" "--no-auto-compile"))
-
To list packages, use the following commands:
M-x guix-all-available-packages M-x guix-newest-available-packages M-x guix-installed-packages M-x guix-obsolete-packages
-
To list generations, use:
M-x guix-generations
With numeric prefix, show so many last generations.
-
To search for packages, use:
M-x guix-search-by-regexp
By default "name", "synopsis" and "description" of the packages will be searched. This behavior can be changed with
guix-search-params
variable. -
To get packages by name, use:
M-x guix-search-by-name
Information about the packages and generations may be displayed in 2 types of buffers: "list" and "info". The following keys are available in the both buffer types by default:
l
/r
– go backward/forward by the history of the displayed results (this history is similar to the history of the Emacshelp
orInfo
modes);g
– refresh current information;C-c C-z
– go to the Guix REPL;h
or?
– describe current mode to see all available bindings.
Hint: If you need several "list" or "info" buffers, you can simlpy
M-x clone-buffer
them, and each buffer will have its own history.
Warning: Name/version pairs cannot be used to identify Guix packages
(because a name is not necessarily unique), so guix.el
uses special
identifiers that live only during a guile session, so if the Guix REPL
was restarted, you may want to revert "list" buffer (by pressing g
).
"List" buffer
Default key bindings available for both "package-list" and "generation-list" buffers:
m
– mark the current entry;M
– mark all entries;u
– unmark the current entry;DEL
– unmark backward;U
– unmark all entries;S
– sort entries by a specified column.
A "package-list" buffer additionally provides the following bindings:
RET
– "describe" marked packages (display available information in a "package-info" buffer);i
– mark a package for installation (with prefix, prompt for output(s) to install);d
– mark a package for deletion;^
– mark a package for upgrading;x
– execute actions on marked packages.
A "generation-list" buffer additionally provides the following bindings:
RET
– list packages installed in the current generation;i
– "describe" marked generations (display available information in a "generation-info" buffer).
"Info" buffer
"Info" buffer contains some buttons (as usual you may use TAB
/
S-TAB
to move between buttons) which can be used to:
-
(in a "package-info" buffer)
- install/remove a package;
- jump to a package location;
- browse home page of a package;
- describe packages from "Inputs" fields.
-
(in a "generation-info" buffer)
- remove a generation;
- list packages installed in a generation;
- jump to a generation directory.