Emacs Gnus for following Usenet news, mailing lists and RSS-feeds
Emacs Gnus is an Usenet newsreader and email client, and is an integral part of GNU Emacs.
Usenet started in 1980, it uses the NetWork News Transfer Protocol (NNTP) on TCP port 119. It is used for announcements and to have online discussions, in the form of postings into threads in topic-focused news groups.
Gnus is mature, the first release was in 1987 and is still used a lot.
People use Gnus to:
- Read and write email messages
- Read Usenet News and post new messages to Usenet
- Read web pages through RSS-feeds
- And more
The most common way to configure Gnus is to place the configuration items in the file "$HOME/.gnus.el".
Gnus functions also as email client, it allows you to read mail in several different ways.
I use a local Maildir, together with fetchmail.
In order to send messages, Gnus requires a SMTP server. You can use your account of the SMTP server of your internet provider, or an account on another SMTP server, or your own local SMTP server.
To access Usenet, and to read Usenet messages, you need an account at an Usenet news-server.
You can get a free account on the news-server of eternal-september.
To use your news account, you have to do two things:
- Add the news-server to the Gnus config
- Put the authentication details in the file "$HOME/.authinfo".
Add the news-server to the Gnus config
Add the following to your ~/.gnus.el:
(add-to-list 'gnus-secondary-select-methods '(nntp "news.eternal-september.org" (nntp-open-connection-function nntp-open-ssl-stream) (nntp-port-number 563)))
We use here "gnus-secondary-select-methods", presuming that you already have "gnus-select-method" in use for your email.
Authentication details in "$HOME/.authinfo"
Create the file ~/.authinfo and add a line:
machine news.eternal-september.org login [username] force yes password [password]
And replace [username] with your real username and password from your news-server account.
If you have more than one account, like an account at another news-server, you can add more lines, for each account a line.
Subscribing to groups
You can now start Gnus with M-x gnus. After Gnus has set up the connection with the news-server you can request the list of available news groups (there are a lot of those), first hit '^' (shift-6) to see the list of servers, set point on "opened". Walk through the list and subscribe to some groups with 'u'. No worries, you can always un-subscribe later (again with 'u' on the same line).
Many news groups have a lot of history, download only 100 messages or so to get a feel for the kind of discussions taking place. Hit 'c' ("catch up"), this will mark the messages as seen.
Close the news group with 'q', go back to the line of the news group and hit 'c'. This will mark all the messages in the news group as seen. The next time you start Gnus, only new arrivals will be listed.
You can mark individual messages as 'expired' with 'E'. Use this if you don't want all the messages in the current message list to be marked as seen.
With Gnus you can not only read Usenet messages, you can also write and post your own too. First, make sure you have read the rules of your news-server about posting messages.
Follow mailing lists with gmane.io
gmane.io is a brilliant service that provide mailing lists as news groups. gmane.io acts like any Usenet nntp news-server, so you can use any nntp news-reader.
There are many, many mailing lists that are made available this way.
For many of the open source applications you use, there is a mailing list. Sometimes this is single mailing list aimed at the developers, sometimes there a several mailing list, aimed at the developers and aimed at the users. Following these lists can help you discover new (to you) options, solve problems and so.
There are some great advantages to use the NNTP protocol to read mailing list messages.
- By using gmane.io you don't need to be subscribed to these mailing lists to read the messages on the list. Of course, almost all mailing lists require a subscription before you can post messages your self.
- Usenet news-readers are build to let you process a large number of messages, and will remember the messages you have seen or have expired, so you get to see only new arrivals.
In Gnus you can choose to get a threaded view of the messages. Following mailing lists this way is very efficient.
You don't need an account on gmane.io. Just add the following to your ~/.gnus.el:
(add-to-list 'gnus-secondary-select-methods '(nntp "news.gmane.io"))
Restart Gnus and request the list of available news groups at news.gmane.io. You will see a list of mailing lists that gmane.io provides. Choose a few lists and subscribe with 'u'.
The individual messages in the mailing list will be presented as individual Usenet postings. The history of some mailing lists in gmane.io can be quite large, so again, start with just 100 messages or so, and use 'catch up' ('c') to mark all messages as read.
The next time you start Gnus, you will be informed of only new arrivals.
Follow RSS feeds with gwene.org
The services of gmane.io has been extended with yet another brilliant service, a RSS-to-NNTP gateway.
This means you can follow a lot of RSS feeds in your Usenet news-reader.
- In new.gwene.org, each RSS feed is a news group.
- Each RSS item is shown as a Usenet message, including the URL of the item, the link to the original web page.
Gwene.org also adds the link to the original web page as a header of the specific Usenet messages. This link is embedded in the header "Archived-at".
There are many, many RSS feeds that are made available this way.
gwene.org allows you to add feeds, in case you want to follow a feed that is not already on gwene.org.
You don't need an account on gmane.io. Just add the following to your ~/.gnus.el:
(add-to-list 'gnus-secondary-select-methods '(nntp "news.gwene.org"))
After this, the procedure is the same as with gmane.io, open the list of available news groups, which are RSS feeds this time, and subscribe to your favorite feeds with 'u'.
Fast and efficient
Compared to the "normal" way of reading RSS-feeds, you win a lot of time. There is no feed-reader fetching and parsing all the individual RSS-files you are subscribed to, gwene.org has done that work for you. Gnus only has to retrieve the headers from gwene.org, which hardly require any time.
Following RSS feeds with Gnus and gwene.org is again very efficient. Gnus shows only the news groups (feeds in this case) with new messages. When you open a group (a RSS feed in this case) you get a list of new RSS items.
You only open the messages that seems interesting to you. Opening a messages shows the RSS item. Depending on how the specific RSS feed is constructed you get a complete web page, sometimes only a little teaser followed by a link, and sometimes only just a link, or anything in between that.
I use eww to open the links of the individual RSS items and read the specific web page.
Emacs comes with a small web browser built in, called eww. I have configured eww to act like text mode web browser, with only the standard font and no images, comparable with the text mode web browser lynx.
This leads to:
- fast loading
- good readability
- no advertising crap, no auto playing video and so on
Reading messages in Gnus
In the message list of the news group (or mailing list or RSS feed) you hit 'Enter' on a message. A new window below the message list will be opened.
You can jump between the message list window and the message window with 'h'. But most of the time you don't need to:
- Without leaving the window with the message list, you can scroll the text in the message window line by line with 'enter' and back with 'Alt-enter' and screen by screen with 'space', and scroll back with 'backspace'.
- When you scroll the text in the message window with 'space' and you reach the end of the message, hit 'space' again, to open the next message.
- When you reach the end of the message list, hit 'space' again, to open the next news group.
All in one place, and one user interface
Reading email, Usenet news messages, mailing list messages, and RSS feeds with Gnus all works the same and looks the same. The web pages opened in eww also uses the same theme, font, and so on.
This means you have just one set of keys to remember and use.
Emacs is wonderful!
Gijs Hillenius was a big help and inspiration at setting up Gnus and pointing me to gwane.io and gwene.org.