README 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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. This README provides only a basic overview on Emacs-Guix, for a full and
  10. detailed description, see the [[https://alezost.github.io/guix.el/manual/latest/html_node/index.html][info manual]] that comes with it.
  11. In short, Emacs-Guix provides the following features:
  12. - Interface for:
  13. + profiles
  14. + profile generations (including system generations for GuixSD)
  15. + packages
  16. + package licenses
  17. + package locations
  18. + [[https://hydra.gnu.org][Hydra build farm]]
  19. - Magit-like popup interface for all guix shell commands (=M-x guix=).
  20. - Modes to view logs of package builds (=guix-build-log-mode= and
  21. =guix-build-log-minor-mode=).
  22. - Minor mode to "prettify" store file names (to replace hash parts with
  23. "…").
  24. - Shell completions for all guix commands and options (for =M-x shell=
  25. and =M-x eshell=).
  26. - Minor mode with additional functionality for =scheme-mode= to work
  27. with Guix .scm files, particularly with package modules
  28. (=guix-devel-mode=).
  29. On the following screenshot you can see one of the mentioned features,
  30. namely: "list" and "info" interface for Guix packages (this screenshot
  31. was made for an early version of Emacs-Guix, the interface has slightly
  32. changed since then).
  33. [[http://i.imgur.com/gRcu14n.png]]
  34. ([[https://github.com/alezost/alect-themes][alect-light]] theme is used there).
  35. * Installation
  36. Emacs-Guix can be installed using Guix, from [[http://melpa.org/][MELPA]], or it can be used
  37. from a git checkout.
  38. ** Guix
  39. Just use:
  40. #+BEGIN_SRC sh
  41. guix package -i emacs-guix
  42. #+END_SRC
  43. ** MELPA
  44. If you added "melpa" or "melpa-stable" archives to =package-archives= as
  45. it is described on the [[http://melpa.org/#/getting-started][MELPA Getting Started]] page, you can install
  46. "emacs-guix" using =M-x package-install= or =M-x list-packages=
  47. commands.
  48. ** Git checkout
  49. Also you can clone this git repository and use Emacs-Guix from this git
  50. checkout (see the info manual for details).
  51. Finally, if you have the git checkout, you can install Guix package for
  52. the current commit of Emacs-Guix using [[file:guix.scm]] file:
  53. #+BEGIN_SRC sh
  54. guix package --install-from-file=guix.scm
  55. #+END_SRC
  56. * Usage
  57. Call =M-x guix-help= to get a summary of all available commands.
  58. Here is an incomplete list of them:
  59. - To show packages:
  60. : M-x guix-all-available-packages
  61. : M-x guix-newest-available-packages
  62. : M-x guix-installed-user-packages
  63. : M-x guix-installed-system-packages
  64. : M-x guix-obsolete-packages
  65. : M-x guix-packages-by-name
  66. : M-x guix-packages-by-license
  67. : M-x guix-packages-by-location
  68. : M-x guix-package-from-file
  69. : M-x guix-search-by-name
  70. : M-x guix-search-by-regexp
  71. - To show profile generations:
  72. : M-x guix-generations
  73. : M-x guix-last-generations
  74. : M-x guix-generations-by-time
  75. : M-x guix-system-generations
  76. : M-x guix-last-system-generations
  77. : M-x guix-system-generations-by-time
  78. - To show/browse package licenses:
  79. : M-x guix-licenses
  80. : M-x guix-browse-license-url
  81. : M-x guix-find-license-definition
  82. - To show/find package locations:
  83. : M-x guix-locations
  84. : M-x guix-find-location
  85. : M-x guix-edit
  86. - Magit-like interface:
  87. : M-x guix
  88. - To show Hydra builds and jobsets:
  89. : M-x guix-hydra-latest-builds
  90. : M-x guix-hydra-queued-builds
  91. : M-x guix-hydra-jobsets
  92. - Miscellaneous commands:
  93. : M-x guix-pull
  94. : M-x guix-prettify-mode
  95. : M-x guix-build-log-mode
  96. : M-x guix-devel-mode