- Geiser moved from github to gitlab.
- Although github repository of Emacs-Guix is not going to be removed,
but it is not the "main" one anymore.
So update github links everywhere.
When you already have *Guix Help* buffer and you run "M-x guix-help"
command, you probably want just to switch to that buffer, not to
redisplay the whole its contents. The same applies to some other Guix
buffers.
* elisp/guix-utils.el (guix-switch-to-buffer-or-funcall): New procedure.
* elisp/guix-about.el (guix-help-show, guix-about-show): New procedures.
(guix-help, guix-about): Use them accordingly.
* elisp/guix-ui-license.el (guix-licenses-show): New procedure.
(guix-licenses): Use it.
* elisp/guix-ui-location.el (guix-locations-show): New procedure.
(guix-locations): Use it.
* elisp/guix-ui-profile.el (guix-profiles-show): New procedure.
(guix-profiles): Use it.
Using 'with-output-to-temp-buffer' macro has some downsides.
Particularly, by default, it displays a buffer in another window; also
it does not allow to move the point position. So add a major mode, and
display a buffer in the current window using it.
* elisp/guix-about.el (guix-help-mode-map): New variable.
(guix-help-mode): New major mode.
(guix-help-display-buffer): Use it and switch to the resulting buffer.
A very similar code is used to insert the content and to display "Help"
and "About" buffers. This commit generalize these commonalities.
* elisp/guix-about.el (guix-help-revert, guix-about-revert): Remove,
replace with...
(guix-help-make-revert-function): ... this. New procedure.
(guix-help-insert-content, guix-about-insert-content): Do not erase the
buffer, as it is done by...
(guix-help-reinsert-content): ... this. New procedure.
(guix-help, guix-about): Do not set up a target buffer as it is done by...
(guix-help-display-buffer): ... this. New procedure.
Add logos from guix-artwork repository and use them for "M-x guix-about".
* images/guix-logo.svg: New file.
* images/guixsd-logo.svg: New file.
* images/README: New file.
* Makefile.am (dist_image_DATA): Add images.
* elisp/guix-build-config.el.in (guix-config-image-directory): New constant.
* elisp/guix-default-config.el (guix-config-image-directory): Likewise.
* elisp/guix-config.el (guix-image-directory): New variable.
* elisp/guix-utils.el (guix-guixsd?): New procedure.
* elisp/guix-about.el (guix-about-buffer-name)
(guix-about-specifications): New variables.
(guix-logo-file, guix-insert-logo, guix-about-revert)
(guix-about-insert-content): New procedures.
(guix-about): New command.
* doc/emacs-guix.texi (Introduction): Mention it.
This is added mainly for MELPA, as it will be used to define
package headers (Package-Requires, etc.).
* elisp/guix-misc.el (guix, guix-faces): Move custom groups to...
* elisp/guix.el: ... here. New file.
* elisp/guix-about.el: Require it.
* elisp/guix-build-log.el: Require it.
* elisp/guix-command.el: Require it.
* elisp/guix-devel.el: Require it.
* elisp/guix-external.el: Require it.
* elisp/guix-hydra.el: Require it.
* elisp/guix-misc.el: Require it.
* elisp/guix-pcomplete.el: Require it.
* elisp/guix-prettify.el: Require it.
* elisp/guix-repl.el: Require it.
* elisp/guix-ui-generation.el: Require it.
* elisp/guix-ui-license.el: Require it.
* elisp/guix-ui-location.el: Require it.
* elisp/guix-ui-package.el: Require it.
* elisp/guix-ui-profile.el: Require it.
* elisp/guix-ui-system-generation.el: Require it.
* elisp/guix-ui.el: Require it.
* elisp/guix-utils.el: Require it.
* elisp/local.mk (ELFILES): Add it.
Emacs interface for Guix is about to be separated from the Guix code, so
this commit removes the old code and adds the according code and
data (elisp, scheme and texi documentation) to this repository.
The code itself wasn't touched (only header commentaries were changed),
so all this stuff is not in a working state yet.