README 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. -*- mode: org -*-
  2. * About
  3. =Emacs-Guix= (aka =guix.el=) provides various features and tools
  4. for [[http://www.gnu.org/software/guix/][GNU Guix]] package manager.
  5. It allows you to manage your Guix profile(s) from Emacs: to install,
  6. upgrade and remove packages, to switch and remove profile generations,
  7. to display all available info about packages and to do many other
  8. things.
  9. If you are [[https://github.com/emacs-evil/evil][Evil]] user, note that [[https://github.com/emacs-evil/evil-collection][Evil Collection]] provide key bindings for
  10. Emacs-Guix.
  11. This README provides only a basic overview on Emacs-Guix, for a full and
  12. detailed description, see the [[https://alezost.github.io/guix.el/manual/latest/html_node/index.html][info manual]] that comes with it.
  13. In short, Emacs-Guix provides the following features:
  14. - Interface for:
  15. + profiles
  16. + profile generations (including system generations for GuixSD)
  17. + packages
  18. + services
  19. + package licenses
  20. + package and service locations
  21. + [[https://hydra.gnu.org][Hydra build farm]]
  22. - Magit-like popup interface for all guix shell commands (=M-x guix=).
  23. - Modes to view logs of package builds (=guix-build-log-mode= and
  24. =guix-build-log-minor-mode=).
  25. - Minor mode to "prettify" store file names (to replace hash parts with
  26. "…").
  27. - Shell completions for all guix commands and options (for =M-x shell=
  28. and =M-x eshell=).
  29. - Minor mode with additional functionality for =scheme-mode= to work
  30. with Guix .scm files, particularly with package modules
  31. (=guix-devel-mode=).
  32. On the following screenshot you can see one of the mentioned features,
  33. namely: "list" and "info" interface for Guix packages (this screenshot
  34. was made for an early version of Emacs-Guix, the interface has slightly
  35. changed since then).
  36. [[http://i.imgur.com/gRcu14n.png]]
  37. ([[https://github.com/alezost/alect-themes][alect-light]] theme is used there).
  38. * Installation
  39. Emacs-Guix can be installed using Guix, from [[http://melpa.org/][MELPA]], or it can be used
  40. from a git checkout. *Note* that it is not recommended to mix several
  41. installations (in particular, Guix and MELPA), as it may lead to
  42. incompatibilities in the source (=.scm=) and compiled (=.go=) Guile
  43. files (see [[https://github.com/alezost/guix.el/issues/21][issue 21]]).
  44. ** Guix
  45. Just use:
  46. #+BEGIN_SRC sh
  47. guix package -i emacs-guix
  48. #+END_SRC
  49. ** MELPA
  50. If you added "melpa" or "melpa-stable" archives to =package-archives= as
  51. it is described on the [[http://melpa.org/#/getting-started][MELPA Getting Started]] page, you can install
  52. "emacs-guix" using =M-x package-install= or =M-x list-packages=
  53. commands.
  54. ** Git checkout
  55. Also you can clone this git repository and use Emacs-Guix from this git
  56. checkout (see the info manual for details).
  57. Finally, if you have the git checkout, you can install Guix package for
  58. the current commit of Emacs-Guix using [[file:guix.scm]] file:
  59. #+BEGIN_SRC sh
  60. guix package --install-from-file=guix.scm
  61. #+END_SRC
  62. * Usage
  63. Call =M-x guix-help= to get a summary of all available commands.
  64. Here is an *incomplete* list of them:
  65. - Show packages and their definitions:
  66. : M-x guix-all-packages
  67. : M-x guix-installed-user-packages
  68. : M-x guix-installed-system-packages
  69. : M-x guix-packages-by-name
  70. : M-x guix-packages-by-license
  71. : M-x guix-packages-by-location
  72. : M-x guix-package-from-file
  73. : M-x guix-search-by-name
  74. : M-x guix-search-by-regexp
  75. : M-x guix-package-locations
  76. : M-x guix-find-package-definition
  77. - Show profiles and profile generations:
  78. : M-x guix-profiles
  79. : M-x guix-generations
  80. : M-x guix-system-generations
  81. - Show services and their definitions:
  82. : M-x guix-all-services
  83. : M-x guix-services-by-name
  84. : M-x guix-services-by-regexp
  85. : M-x guix-services-by-location
  86. : M-x guix-service-locations
  87. : M-x guix-find-service-definition
  88. - Show/browse package licenses:
  89. : M-x guix-licenses
  90. : M-x guix-browse-license-url
  91. : M-x guix-find-license-definition
  92. - Magit-like interface:
  93. : M-x guix
  94. - Show Hydra builds and jobsets:
  95. : M-x guix-hydra-latest-builds
  96. : M-x guix-hydra-queued-builds
  97. : M-x guix-hydra-jobsets
  98. - Miscellaneous commands:
  99. : M-x guix-help
  100. : M-x guix-about
  101. : M-x guix-pull
  102. : M-x guix-prettify-mode
  103. : M-x guix-build-log-mode
  104. : M-x guix-devel-mode