If you're already familiar with iris and want to try an alternative user interface, netnews clients with metanews are worth a shot. In this guide we'll walk through using the tin newsreader to browse iris on ctrl-c.club.
Set up
At this point in a guide we'd typically cover installation instructions, but there's not really anything to install! If you like, you may want to copy all the executable files we'll be using into your own bin
or similar, but all the shell commands given in this guide will run them from ~tjp/bin/
, which will work without requiring any set up.
# optional: copy to your own bin dir
cp ~tjp/bin/{metanews,with-metanews,mtin} ~/bin/
First run
There is a wrapper script we can use to start tin connected to a server hosting iris threads.
# run tin connected to iris
~tjp/bin/mtin
If this is your first time running tin on ctrl-c.club you will get a helpful welcome message about the program. Read through that and press <Enter>
to get into the normal user interface.
The next screen you'll see is the newsgroup listing. Metanews only exposes two newsgroups: ctrl-c.iris
and ctrl-c.slog
. The most useful keyboard commands are listed at the bottom of the screen.
There will be a little u
on the left end of the ctrl-c.iris
line, this denotes that you are unsubscribed to that group. Change that by pressing s
and it should go away.
Configure it
Now that we've started tin for the first time, the user configuration has been created. Before we go further in tin itself let's introduce the config file and adjust a few values. Close tin by pressing Q
(yes, capital - q
will generally bail you out to the parent screen, but Q
will fully close tin from anywhere).
Now we can open the config file in our shell.
# edit the tin configuration file (use your preferred editor)
nano ~/.tin/tinrc
This is a well-commented file so we won't go through it here, but there are a few things we should adjust for iris specifically.
Find the line with thread_articles=3
and change it to thread_articles=2
. Per the comment directly above it, this tells tin to identify messages as belonging to the same thread purely by the "References" header. The metanews server sets this header correctly so any additional cleverness in tin will just mess things up.
Next change sort_threads_type=1
to sort_threads_type=0
. This will deactivate sorting the list of threads in tin, which causes it to just use the order provided by the metanews server. Metanews matches the sorting behavior of the original iris client, so when ctrl-c members are talking about a particular thread number, that will match what you see in the unfiltered thread list in tin.
That's it! Save and close the config file.
Run it
Start mtin back up and we should have our config changes applied:
~tjp/bin/mtin
Now because there is only one newsgroup and we are subscribed to it already, when we open tin it will immediately take us to the thread listing page. As usual commands are listed on the bottom of the screen, but the big ones you'll use most are:
<Enter>
to jump into a thread. This will take you to the first post by default, but from there you can also pressl
to list the messages in the thread.l
from the thread listing page will jump you straight to the thread message list for the selected thread.w
from the thread list will jump you into your$EDITOR
to compose a new top-level post.<Enter>
from a thread-message list will display the message you had selected.- From the message view page,
p
andn
will jump to the previous or next message. Notice in the top right4 Responses
orArticle 2 of 5
tells you where you are in the current thread. - Also from the message view page,
f
will open your editor to make a follow-up post. By default this will include the previous message quoted, but that's not something generally done in iris culture so I'd remove it before posting.
Tin is a nice user-friendly program with an easy learning curve. Explore around some more, maybe open the config file again and adjust settings to your liking, and figure out if this could be for you. I hope you enjoy it!
What is this sorcery
(you know everything you need to know now to make use of mtin
, this is just about implementation for anyone interested)
Metanews is an NNTP server that only accepts and handles one client connection. It's purpose is to be a short-lived bridge between iris and the netnews NNTP protocol, to allow browsing iris threads from any news client. It can also receive posts, which it will handle by posting the message to iris as the user it was started under (your user).
The client/server session between tin and metanews is managed by a script called with-metanews
. This script starts up the metanews server, sets some environment variables to communicate the server's address, and starts up the rest of it's own command line. So the mtin
program is essentially with-metanews tin
, though just a little bit more fancy. Once the sub-command completes, with-metanews
waits for the metanews server process to close before ending.
The code is on tildegit and includes the metanews server as well as all the wrapper scripts.