Giter Site home page Giter Site logo

gnus-recent's Introduction

gnus-recent

https://melpa.org/packages/gnus-recent-badge.svg 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:

gnus-recent-org-mode.gif

Installation

If you use 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:

(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 (("<f3>" . gnus-recent)
         :map gnus-summary-mode-map ("l" . gnus-recent-goto-previous)
         :map gnus-group-mode-map ("C-c L" . gnus-recent-goto-previous)))

If you use Embark, add the following to be able to insert org links on l:

(add-hook 'minibuffer-setup-hook #'gnus-recent-embark-minibuffer-hook)

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

  • 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.)
  • The Gnus Registry might be persuaded to do gnus-recent’s job if you ask it nicely

gnus-recent's People

Contributors

deusmax avatar unhammer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gnus-recent's Issues

gnus-recent fails to open groups under gnus-secondary-select-methods

I have 2 nnimap accounts configured with my Gnus.

  • The first is configured as a gnus-select-method. These emails open fine.
  • The second is configured as a gnus-secondary select-methods. These fail to open.

Typical error message like this:

Couldn’t fetch article <[email protected]>

The org-links generated by org-recent work fine for both groups !!

Gnus v5.13,
Emacs 27.0.50

`b' in ivy should go to BBdB entry

We should have a gnus-recent-show-in-bbdb which shows the sender's BBdB entry (maybe also gnus-recent-show-all-in-bbdb which does the same for sender+all recipients).

Don't track digest-group / C-d articles

In a Summary, C-d / M-x gnus-summary-enter-digest-group on a multi-part article will open a digest group with all the parts. We shouldn't track this (it doesn't work anyway, and is just annoying noise in the recent list).

Helm integration

I found your gnus "breadcrumbs" idea great!

I use gnus... it is something I always felt the need for. Just like you describe.
Thank you for gnus-recent.
I use Helm instead of Ivy... so wrote up a first implementation for gnus-recent-helm.el. It seems to work well.
I am happy to contribute the code to guns-recent.

the code is here:
https://github.com/deusmax/gnus-recent/blob/helm/gnus-recent-helm.el

gnus-registry as an alternative to gnus-recent

According to @deusmax , gnus-registry some of the same as gnus-recent, but of course doesn't have the ivy/helm interfaces.

Would it be possible to build a gnus-recent-like interface on top of gnus-registry? That would give some nice features like:

  • persistence (stored to ~/.gnus.registry.eieio )
  • integration with gnus-bookmarks

Are there other things we'd get? I haven't used gnus-registry nor gnus-bookmarks myself.

(If we do change the "back-end", it may be better to do it as a new package, unless it can be done without any backwards-incompatible changes.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.