Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/unhammer/gnus-recent

Avoid having to open Gnus and find the right group just to get back to that e-mail you were reading.
https://github.com/unhammer/gnus-recent

emacs gnus ivy mail

Last synced: 4 months ago
JSON representation

Avoid having to open Gnus and find the right group just to get back to that e-mail you were reading.

Awesome Lists containing this project

README

        

#+TITLE: gnus-recent

[[https://melpa.org/#/gnus-recent][https://melpa.org/packages/gnus-recent-badge.svg]]
[[https://stable.melpa.org/#/gnus-recent][https://stable.melpa.org/packages/gnus-recent-badge.svg]]

Avoid having to open Gnus and find the right Group just to get back to
that e-mail you were reading.

Or hit a key while reading one article to pop back through the stack
of previously read articles, even if they were in a different Group.

Or insert a link to a recently read e-mail in an org-mode buffer by
just picking one with completion:

#+ATTR_HTML: :alt demo of gnus-recent inserting link with ivy in org-mode
[[file:gnus-recent-org-mode.gif][file:gnus-recent-org-mode.gif]]

* Installation

If you use [[https://melpa.org/][MELPA]], you can just do =M-x list-packages=, find
=gnus-recent= in the list and hit =i x=.

The Melpa packages doesn't include the ivy/helm stuff, you'll have to
clone the repo if you want those.

* Configuration

Require and bind whatever keys you prefer to the interactive function:

#+BEGIN_SRC emacs-lisp
(use-package gnus-recent
:ensure t ; if you want it from MELPA
; :load-path "~/src/gnus-recent" ; if you're running from a git clone
:demand t ; so that it's loaded after gnus even though we use :bind
:after gnus
:bind (("" . gnus-recent)
:map gnus-summary-mode-map ("l" . gnus-recent-goto-previous)
:map gnus-group-mode-map ("C-c L" . gnus-recent-goto-previous)))
#+END_SRC

If you use [[https://github.com/oantolin/embark][Embark]], add the following to be able to insert org links on =l=:

#+BEGIN_SRC emacs-lisp
(add-hook 'minibuffer-setup-hook #'gnus-recent-embark-minibuffer-hook)
#+END_SRC

* Usage

After reading some articles in Gnus and then doing whatever, doing
=gnus-recent-goto-previous= will open the last read article and rotate
the list, so you can keep calling it to go further back.

Doing =gnus-recent= will let you pick an article to re-open.

If you use =gnus-recent-ivy=, you can hit =M-o l= to insert an
=org-mode= link to the article instead.

* Alternatives

- [[https://github.com/deusmax/gnus-notes][gnus-notes]] is a fork of =gnus-recent= which adds some more features
(persistence, get a Helm list of Gnus links of the current Org
subtree, etc.)
- [[https://www.gnu.org/software/emacs/manual/html_node/gnus/The-Gnus-Registry.html][The Gnus Registry]] might be persuaded to do =gnus-recent='s job if
you ask it nicely