The NewsDemon Blog

6 Linux Based Newsgroup Newsreaders

By Newsgroup Usenet March 16th, 2009

In order to get the most from Usenet, you need a specialised program that must be (at least) a hybrid between an email client and a file download manager. A Usenet client also needs features that are unnecessary in the email world. Real Usenet geeks have to deal with multi-part articles; they want to read stuff from a newsgroup while also downloading files from several other newsgroups, on the same or on different servers.

In this Roundup we present six clients chosen according to two simple criteria. The programs must be developed mainly, if not exclusively, to deal with Usenet Newsgroups, and the application must be in active development, in order for it to run happily on a modern distro.

1. Gnus

There’s no way to escape from Emacs. No matter what you want to do with a computer, the “operating system that also includes a half-decent editor”, as somebody once called it, has a major or minor mode for it. When it comes to Usenet, Emacs has Gnus, the official GNU newsreader.

While Emacs isn’t exactly the friendliest editor on Earth, Gnus itself is much easier to use. First of all, installation is not an issue. Emacs packages exist for all Linux distributions, and Gnus is included in most of them. Moreover, almost all Gnus functions are accessible with the mouse, so don’t worry about shortcuts.

Gnus has many, many functions (it is Emacs, after all), from sophisticated scoring to sorting newsgroups by topic. You can define multiple servers, customise article formatting in many ways and use authenticated accounts. In that case, Gnus will prompt you for a username and password unless you write them in $HOME/.authinfo.

In spite of all these features, basic usage of Gnus is very quick and painless. Its minimal configuration is simple: you just need to remember to do it before you start using Gnus, to avoid confusing messages from Emacs.

Create the file $HOME/.gnus.el and add to it three lines like these:

(setq user-mail-address “[email protected]_ isp.com”)
(setq user-full-name “Newsdemon User”)
(setq gnus-select-method ‘(nntp “news.newsdemon.com or similar”)

Save the file, type M-x gnus, press Return and lo!, Gnus will open the server specified in gnus-select-method.

To browse the list of newsgroups, type A A. To subscribe, type U and then the newsgroup name. For everything else, enter Ctrl-i gnus to open the manual. Documentation wise, Gnus wins this Roundup for completeness. Since the official manual is really thorough, however, you’d better start from the tutorial.

2. SLRN

SLRN is is a console program that will work even if you need to run it via SSH on some remote server where Emacs isn’t available. It’s the smallest and lightest client in this Roundup, but this doesn’t mean that its functionality is limited.

The final way to make cool things with SLRN, or at least with the articles you read with it, is to pipe those articles to any external program with just one keystroke (|). In general, the behaviour of SLRN is controlled by one or more options that are clearly explained in the resource configuration file (slrn.rc) distributed with the program.

As with Gnus, SLRN needs a bit of manual setup before it starts in order to be happy, but it’s not a big deal. You can define as many servers as you like in the configuration file, but the default one should be written manually at the prompt or in the shell.rc file, in the environment variable NNTPSERVER.

Using predefined macros, you get: GnuPG signatures, one-key scoring, optional mouse support and basic support for binary postings. Using SLRN is easy: whenever you need help, type ? and the command list will appear. The only small issue is that when you hit Q after reading an article, SLRN closes the whole newsgroup, not just the article.

3. Thunderbird

Thunderbird is so good and so fulfilling as an email client that we wouldn’t be surprised to discover that many of its users never noticed that it can handle Usenet too. However, all you have to do to use Thunderbird as a newsreader is define a ‘newsgroup’ type account and associate to it a server name, port and email identity.

That’s all it takes to make the new account appear in the left pane. After that, if you click on its name you’ll open a configuration pane where you can manage your subscriptions, accounts parameters, message filters and offline settings.

As far as offline usage is concerned, what you can configure in Thunderbird is how long to keep old or read messages, if at all. You can even delete just the bodies to save disk space and keep the headers.

The availability of the tagging system is probably the greatest advantage of using Thunderbird to browse newsgroups, as you get to keep all the visual presentation gadgets you may be already using for email. Of course, the same applies to many other features of Thunderbird, from the spellchecker to the quick print preview function or any Thunderbird add-on you may have installed.

4. XPN

The X Python Newsreader runs on every operating system where Python and its GTK bindings are available. On Linux, all you need to do is unpack the tar file, place its folder wherever you like on your system and launch the xpn.py script.

Unlike other newsreaders, in XPN you have to define at least one identity, even if you only want to read articles, before subscribing to any newsgroup. To set up an identity, click File > Preferences to open the configuration window. This interface has five tabs: Server, User, Display, Groups and Misc. In the last one you can tell XPN which web browser and external editor you want to use while reading or posting.

Article display is really flexible: you can independently colour the window background, headers, text and three levels of quotes. The panes layout is equally customisable. You get a matrix of 20 icons, each representing a different combination of the article, headers and groups list panes, and all you have to do is check one you like.

The scoring and filtering interface of XPN is as flexible as that of Thunderbird or Knode, but is organised in a different way. Scoring can depend on many fields, from From, Subject and Date to the number of newsgroups to which an article has been posted. Actions like marking an article as read, ignoring it and so on have their own panel and are always applied after scoring rules.

5. KNode

KNode is a powerful newsreader. It can handle an unlimited number of NNTP servers and it lets you define a different default identity and policy for article retention (which KNode calls cleanup) for each identity.

After you’ve subscribed to a newsgroup, you can override those default values with more appropriate ones if necessary. Just remember that, unlike Pan and other programs discussed in these pages, when you start using it KNode doesn’t ask you to define at least one server to connect to. It just sits happily in its window until you configure at least one account and tell it to go get the news.

Eventually, when you select a group you can only choose to download all new articles, without limiting it to those newer than N days. One of the biggest, if not the main strength of KNode is its scoring capabilities.

The Scoring Rule Editor is accessible from the top menu (Scoring > Edit Scoring Rules) after giving the rule a name. Next, you can enter all the newsgroups for which that rule is valid. After that, you can define as many conditions as you wish. There are several types of conditions: you can tell KNode to look for plain strings or regular expressions in the subject, author or Message-IDs headers.

Alternatively, you may look for articles posted before or after a given date, or whose references or line number exceed some threshold. When you’re done, you realise that ‘Scoring’ is a deceptive name for this function. ‘Adjust Score’ is, in fact, just one of the actions that KNode can perform when all the conditions match. The others are colouring the article subject in the article list, opening it in a separate window or marking it as read.

You can ‘copy’ existing rules, that is, use it as a base for a similar one with another name, instead of typing everything again. The rule list in the left-hand pane of the Rule editor has buttons to alter the order in which they are applied.

6. Pan

Pan is a fast, lightweight but very complete Usenet client originally developed for the Gnome desktop but now also available for Windows and Mac. There’s nothing special to report about the look and feel of the user interface, but don’t take this as a liability: Pan keeps everything you need in sight, without making a big deal of it or getting in the way. Almost all menus and functions are usable without the mouse.

The toolbar has two search boxes: one is for newsgroups on the server and the other is to find, inside the current newsgroup, all articles with a given string in the author or subject. The right half of the toolbar hosts several buttons to only view articles that are, for example, complete or already cached. During general configuration you can declare as many servers as you like and set the maximum number of simultaneous connections both on a per-server and on a per-session basis.

As in KNode, ‘Watch’ and ‘Ignore’ are just synonyms for ‘give a particularly high or low score to this thread’: the only difference is that Pan uses higher values for these two functions, namely -9,999 and +9,999. In all other other cases, you have plenty of matching criteria and scoring actions and can set the duration of a rule.

For non-Linux users and for other Newsreader suggestions, check out our Newsreader Guide