DOKK / manpages / debian 11 / tin / tin.1.en
tin(1) Usenet newsreader tin(1)

tin, rtin - Usenet newsreader

tin [[-h|-H|-V] | [[[-a] [-dlnq|-Q] [-ArzxX]] [[-R|-S] -s News_dir] [-cuvZ] [-4|-6] [-N|-M address] [-o|-w]] [-D debug_level] [-G article_limit] [-f newsrc_file] [-g server] [-m Mail_dir] [-p port] [-I index_dir] [newsgroup[,...]]]

tin is a full-screen easy to use Usenet newsreader. It can read news locally (e.g., /var/spool/news) or remotely (rtin or tin -r option) via an NNTP (Network News Transport Protocol) server. It will automatically utilize NOV newsoverview(5) style index files if available locally or via the NNTP [X]OVER command (RFC2980, RFC3977).

tin has four separate levels of operation: Selection level, Group level, Thread level and Article level. Use the Help ('h') command to view a list of the commands available at a particular level.

On startup tin will show a list of the newsgroups found in ${TIN_HOMEDIR:-"$HOME"}/.newsrc. An arrow '->' or highlighted bar will point to the first newsgroup. Move to a group by using the terminal arrow keys (terminal dependent) or Down ('j') and Up ('k'). Use PgUp/PgDn (terminal dependent) or PageUp ('^U') (CTRL-U) and PageDown ('^D') (CTRL-D) to page up/down. Enter a newsgroup by pressing '<CR>'.

The GroupNextUnreadArtOrGrp ('<TAB>') key enters the next newsgroup with unread articles.

0
Successful program execution. No unread news available in batch mode.
1
Usage, syntax, configuration file or network error.
2
Unread news available (batch mode (''-Z'') only).
3
NNTP error.

-4
Force connecting via IPv4 to the remote NNTP server. Only available when build with IPv6 support.
-6
Force connecting via IPv6 to the remote NNTP server. Only available when build with IPv6 support.
Toggle ANSI color (default is off).
Force authentication on initial connect. Only available when reading via NNTP.
Create/update index files for every group in ${TIN_HOMEDIR:-"$HOME"}/.newsrc or file specified by the ''-f'' option and mark all articles as read.
Don't load newsgroup descriptions and servers message of the day (interactive mode).
Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 = memory, 32 = attributes, 64 = misc, 128 = remove existing debug files). For NNTP-level ''-v'' controls the verbosity of the output.
Use the specified file of subscribed to newsgroups in place of ${TIN_HOMEDIR:-"$HOME"}/.newsrc.
Use the server and newsrc specified in ${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable. Only available when reading via NNTP.
Limit the number of articles/group to retrieve from the server. If article-limit is > 0 not more than the last article-limit articles/group are fetched from the server. If article-limit is < 0 tin will start fetching articles from your first unread minus absolute value of article-limit. Default is 0, which means no limit.
Help listing all command-line options.
Brief introduction to tin that is also shown the first time it is started.
Directory in which to store newsgroup index files. Default is ${TIN_INDEX_NEWSDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.news. This option has no effect if tin retrieves its index files via NNTP and cache_overview_files is turned off.
Get number of articles per group from the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file. If reading via NNTP this is done with the LIST command (RFC3977). This might result in incorrect article counts but is usually faster than the default which is to read the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file (either directly or via LIST) and then check the article count via NNTP GROUP command (RFC3977) ''-ln''. If reading via NNTP and LIST COUNTS (RFC6048) is available that is used instead as it gives more accurate article counts.
Mailbox directory to use. Default is ${TIN_HOMEDIR:-"$HOME"}/Mail.
Mail unread articles to specified user for later reading. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
Only load groups from the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file that are subscribed to in the user's ${TIN_HOMEDIR:-"$HOME"}/.newsrc. This allows a noticeable speedup when connecting via a slow line, but tin may not be able detect which groups are moderated. See also ''-l''.
Mail unread articles to yourself for later reading. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
Quick post all postponed articles and exit. In order for this to be really quick, it should be used with ''-n'' if possible.
Port to use if reading via NNTP (default is 119). This also overrides the environment variable $NNTPPORT if set. Only available when reading via NNTP.
Don't check for new newsgroups and skip loading the servers message of the day.
Quick start. Start tin as quickly as possible. Currently this is equivalent to ''-dnq''.
Read news remotely from the default NNTP server specified in the environment variable $NNTPSERVER or contained in the file /etc/news/server.
Read news saved by the ''-S'' option.
Save/read articles to/in directory. Default is ${TIN_HOMEDIR:-"$HOME"}/News.
Save unread articles for later reading by the ''-R'' option. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
Create/update index files for every group in ${TIN_HOMEDIR:-"$HOME"}/.newsrc or file specified by the ''-f'' option. This option is disabled if tin retrieves its index files via an NNTP server and cache_overview_files is turned off.
Verbose mode for ''-c'', ''-D'', ''-M'', ''-N'', ''-S'', ''-u'' and ''-Z'' options. Can be used multiple times to increase verbosity.
Print version and date information.
Quick mode to post an article and then exit. This option implies ''-d''. In order for this to be really quick, it should be used with ''-n'' if possible.
No-posting mode. You cannot post articles if you use this option.
No overwrite mode. ${TIN_HOMEDIR:-"$HOME"}/.newsrc and files in ${TIN_HOMEDIR:-"$HOME"}/.tin will not be overwritten but may be created if they don't exist.
Only start tin if there is any new/unread news. If there is news tin will position cursor at first group with unread news. Useful for putting in login file.
Check if there is any new/unread news and exit with appropriate status. If ''-v'' option is specified the number of unread articles in each group is printed. An exit code 0 indicates no news, 1 that an error occurred and 2 that new/unread news exists. Useful for writing scripts.

tin can also dynamically change its options by the OptionMenu ('M') command. Any changes are written to ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. For more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" and tin(5).

A list of groups can be specified after the other command-line options. This can be useful if you wish to yank in or subscribe to a hand-picked subset of the active newsgroups. See the section "NEWSGROUP LISTS & WILDCARDS" for the types of pattern that tin understands.

If you specify a single group-name, or a wildcard that matches a single group, then you will automatically enter that group. Otherwise the normal group selection screen will appear, but with all the matching groups present too, as though you had yanked just those groups in.

With the ''-w'' flag a given group-name is used as default group to post to. If more than one group or a wildcard is specified only the first group respectively the first group that matches is used.

Once you use SelectYankActive ('y') to yank in all active groups, or SelectToggleReadDisplay ('r') to toggle the read/unread status, then the command-line groups will be gone. You can use SelectSyncWithActive ('Y') to reread the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file and get them back.

NB: With the ''-n'' flag, only unsubscribed groups in the ${TIN_HOMEDIR:-"$HOME"}/.newsrc file (or the newsrc-file given by the ''-f'' command-line switch or via ${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable) can be matched.

Command-line options have higher priority than attributes and tinrc options. Thus, command-line option takes precedence over configured values.

Maintaining Netnews on large networks of machines can be a pretty time consuming job as I discovered when I was given the job of maintaining our news system and news users.

A user starting tin for the first time can be automatically subscribed to a list of newsgroups that are deemed appropriate by the news administrator. The subscriptions file should be created in your news lib directory (i.e., ${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions) and should be world readable. If you read news via NNTP, then your news server must support the LIST SUBSCRIPTIONS command. It is part of the NNTP List Extensions (RFC6048) and all modern servers should understand it.

tin has four separate levels of operation: Selection level, Group level, Thread level and Article level.

At the Selection level the title displays (the name of the news server and) the number of subscribed groups (containing new unread articles). The newsgroups are displayed in the middle of the screen usually with the number of unread articles displayed on the same line in front, but it can be customized via select_format.

->M    1     2  comp.security.announce  Announcements from the CERT abou

M 2 1 news.admin.announce Announcements for news adminstra
3 22 news.software.misc News-related software other than
4 1475 news.software.nntp The Network News Transfer Protoc
X 5 124 news.software.readers Discussion of software used to r

There may also be a character prefixing the line. An explanation follows:

This group is unsubscribed. To see only your subscribed groups use the SelectToggleReadDisplay ('r') or SelectYankActive ('y') toggle keys.
This is a moderated group. Any posts you make will have to be approved by the group administrator before it will be made public. tin will ask for confirmation before you post to a moderated group.
This is a new newsgroup which has been created since you last used tin. New newsgroups are not subscribed to by default (However, see the $AUTOSUBSCRIBE / $AUTOUNSUBSCRIBE environment variables). Subscribe to it in the normal way if you wish the group to continue to appear in your Selection Menu. Simply ignore new newsgroups and they will be gone the next time you start tin. You will have to yank in all the groups to find them in a later session.
This group no longer exists. If you no longer wish to see this group then unsubscribe from it in the normal way. This flag will only appear if you have set strip_bogus to "ask" in the Options Menu.
You may no longer make posts to this group. Often a group will be superseded by a more appropriately named one.
=
This group has been renamed and you may no longer post to it. If you do, then you will receive an error from your news server telling you the correct group to post to.

At the Group level the title contains the name of the group, the number of conversation threads, the abbreviated threading method (thread_articles), the limit of articles to get (if set; getart_limit), the total number of (unread) articles (art_marked_read or art_marked_unread), the number of hot articles art_marked_selected, the number of read hot articles (if any; art_marked_read_selected), the number of recent articles (art_marked_recent) and the number of killed articles (art_marked_killed). I.e.:


alt.sources (5B -50/23+ 0* 3o 0K)

The characters after the numbers are depending to the configuration and if your are in show_only_unread_arts mode or not. Some numbers could be missing if the specific option is not enabled. It might also contain an 'M', 'X' or '=' (see above; doesn't work with the ''-n'' command-line switch!) if the group is moderated, set to no posting or postings to it get redirected.

If a thread has unread articles it is marked with art_marked_unread in front of the total number of articles in the thread. If there are recent articles within the thread it might be marked with art_marked_recent in front of the total number of articles in the thread — this is controlled by the recent_time option. If a thread has hot articles in it (see also section "FILTERING ARTICLES") it's marked with art_marked_selected in front of the total number of articles in the thread. The number of lines of the first (unread) article in the thread might also be shown right before the subject — this is controlled by the show_info option. The display can be customized via group_format.


de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M -> 1 + 3 108 bincancels in de.talk.sex Christopher Lueg <l
2 + 69 EMP/ECP gecancelt. xynx. BI= 10 Henning Weede <hwee
3 o 93 EMP gecancelt. SouthBeach/Palms Henning Weede <hwee
4 * 368 <1997-11-12> Fremdcancel-FAQ Thomas Roessler <ro

At the Thread level the screen usually (depends on the threading method used) looks like this, but can be customized via thread_format:

->   1      [   7]  What is this funny tree in the thr  Robert F. Simmig

2 [ 12] +-> Sephan Wagner <s
3 [ 230] | `->Tin thread-level (was: What is Bob Johnson <bob
4 [ 22] `->tin threading menu Brian Richardson

At the Article level the page header has the following format:

Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86
Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59
Urs Janssen <urs@akk.org>        at Arbeitskreis Kultur und Kommunikati
article-body

The look of the Selection, Group and Thread level can be customized. See the section "CUSTOMIZING THE SCREEN FORMAT".

This table shows the common keys used for moving around all levels within tin.

	ANSI/vt100	Other Terminals
Beg. of list/article	Home	FirstPage (^)
End of list/article	End	LastPage ($)
Page Up	PgUp	PageUp (u, ^U or ^B)
Page Down	PgDn	PageDown (^D or ^F or <SPACE>)
Line Up	Up arrow	Up (k or ^P)
Line Down	Down arrow	Down (j or ^N)

An emacs(1) style editing package allows the easy editing of input strings. A history list allows the easy reuse of previously entered strings. In addition to the cursor keys, the following commands are available when editing a string:

^A, ^E
move to beginning or end of line, respectively.
^F, ^B
non-destructive move forward or back one location, respectively.
^D
delete the character currently under the cursor, or send EOF if no characters in the buffer.
^H, <DEL>
delete character left of the cursor.
^K
delete from cursor to end of line.
^P, ^N
move through history, previous and next, respectively.
^L, ^R
redraw the current line.
<CR>
places line on history list if non-blank, appends newline and returns to the caller.
<ESC>
aborts the present editing operation.

The following commands are available at all 4 menu levels and always have the same effect.

Shell escape. ShellEscape by itself will launch a shell, ShellEscape <command> will run an external <command>. This facility may have been disabled by the System Administrator.
Toggle use of ANSI color.
Redraw the current screen.
Scroll screen up by one line.
Scroll screen down by one line.
Reload postponed article. If your system blocks the Postponed key you must quote it by pressing '^V' (CTRL-V) first. The postpone-menu offers the following actions: PromptYes ('y') = reload and spawn editor; PostponeOverride ('Y') = post article (without spawning editor); PostponeAll ('A') = post all postponed articles (without spawning editor); PromptNo ('n') = skip this article; Quit ('q') = quit postponed menu. Currently there is no 'simple' way to delete a postponed article from the postponed-file, you have to use the following command sequence instead: reload it with Postponed, enter editor with PromptYes, quit editor, discard posting with Quit ('^O''y''q'). See also ''-o'' command-line switch.
Help screen of commands available on the current menu. You can use SearchSubjF ('/'), SearchSubjB ('?') and SearchRepeat ('\') to search on this screen. Quit ('q') returns to the menu.
Toggle the display of help mini menu at the bottom of the screen.
List articles posted by user. The date posted, the newsgroup and the subject are listed. You can use SearchSubjF ('/'), SearchSubjB ('?') and SearchRepeat ('\') to search on this screen. Quit ('q') returns to the menu.
Print tin version information.

4
Select group 4.
Reset ${TIN_HOMEDIR:-"$HOME"}/.newsrc file. This will destroy all records of which articles have been read, so use this carefully.
Choose a range of articles to be affected by the next command. See the section "RANGES" for more information.
Sort the list of newsgroups.
Repeat the previous search.
Search for a group by name and description (if displayed).
Backward search through the group names and descriptions.
Read current group.
Enter next group with unread news. Will wrap around to the beginning of the group selection list looking for unread groups.
Make current group as all read [after confirmation] and move to the next group in the group selection list.
Mark current group as all read [after confirmation] and enter the next unread group in the group selection list.
Toggle display to show just the group name or the group name and the group descriptions.
Edit the filter file and reload it afterwards.
Choose a new group by name. This command can be used to access any group, even those not currently yanked in.
Toggle the display of the description of the current newsgroup in the last line. This will not be available if tin was started with the ''-d'' option.
Toggle inverse video.
Look up article by ''Message-ID:''. If none of the groups listed in the ''Newsgroups:''-header of the referenced article is available, just the contents of the ''Newsgroups:''-header will be displayed in the last line. At this level this command only works if reading via NNTP and the server supports [X]HDR (RFC2980, RFC3977) or XPAT (RFC2980).
Move the current group within the group selection list. By entering '1' the group will become the first displayed group in the list, by entering '8' the eighth group in the list etc. By entering '$' the group will be the last group displayed.
User configurable options menu (for more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
Positions the cursor on the next group with unread articles in it.
Quit tin — ask the user to confirm if confirm_choice is set accordingly.
Quit tin — don't ask the user to confirm.
Toggle display of all subscribed to groups and just those groups containing unread articles. Command has no effect if groups were specified on the command-line when tin was started.
Mail a bug report or comment to <tin-bugs@tin.org>. This is the best way of getting bugs fixed and features added/changed.
Subscribe to current group.
Subscribe to groups matching user specified pattern. See the section "NEWSGROUP LISTS & WILDCARDS" for the types of pattern that tin understands.
Unsubscribe to current group. This can be used to remove bogus groups. See strip_bogus in the "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" section.
Unsubscribe to groups matching user specified pattern. See the section "NEWSGROUP LISTS & WILDCARDS" for the types of pattern that tin understands.
Post an article to current group. If posting fails for some reason, you'll get the chance to PostEdit ('e') the article again, PostPostpone ('o') it for later processing (see also ''-o'' command-line switch) or discard it via Quit ('q').
Quit tin without saving any changes to the configuration.
Yanks in all groups. Toggles the displayed groups between all the groups in the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file and just those that are subscribed to in ${TIN_HOMEDIR:-"$HOME"}/.newsrc.
Reread the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file to see if any new news has arrived since starting tin.
Mark all articles in the current group as unread.

All searches in this level are limited to unread articles if in show_only_unread_arts mode. GroupToggleReadUnread ('r') can be use toggle the setting right before/after the search.

4
Select article 4.
Auto select article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Mark current article, thread, range, auto-selected (hot) articles, articles matching pattern or tagged articles as read. A prompt asks which type should be marked.
Mark current article, thread, range, auto-selected (hot) articles, articles matching pattern or tagged articles as unread. A prompt asks which type should be marked.
Choose a range of articles to be affected by the next command. See the section "RANGES" for more information.
Re-enter the last message that was viewed.
Repeat the previous search.
Search forward for specified subject.
Search backwards for specified subject.
Select current thread for later processing.
Selects all threads in current group. It is a shortcut for calling GroupSelPattern with a pattern of ''*''.
Toggle selection of current thread. If at least one unread article, (but not every unread article) in the current thread is selected, then all unread articles become selected.
For each thread in current group, if it at least one unread article is selected, all unread articles become selected. This is useful for auto-selection on author where reader wants to see entire thread.
Prompts for a pattern with which to match on. All threads whose subjects match the pattern will be marked selected. A pattern of ''*'' will match all subjects. Entering just '<CR>' will re-use the last pattern that was entered.
Reverse all selections on all articles.
Undo all selections on all articles. It clears the toggle effect of GroupMarkUnselArtRead ('X') command. Thus after first doing a GroupMarkUnselArtRead, one can then do GroupUndoSel to reset articles. Thus, one can iteratively whittle down uninteresting threads.
Pipe current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles into command. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Auto select article(s) with a single key [after confirmation]. The defaults used for selection are based upon the following four tinrc config variables: default_filter_select_case, default_filter_select_expire, default_filter_select_global and default_filter_select_header. Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and "FILTERING ARTICLES" for more information on filtering.
Kill article(s) with a single key [after confirmation]. The defaults used for killing are based upon the following four tinrc config variables: default_filter_kill_case, default_filter_kill_expire, default_filter_kill_global and default_filter_kill_header. Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and "FILTERING ARTICLES" for more information on filtering.
Read current article.
View next unread article or group.
Author forward search. This searches for articles with a specific ''From:'' line.
Author backward search. Otherwise, see SearchAuthF ('a') above.
Search the body of all articles in group (can be slow). You can abort the search using Quit ('q').
Mark all articles as read [after confirmation] then return to the group selection list. Move cursor to next group.
Mark all articles as read [after confirmation] and enter the next group with unread news.
Cycle the display of the author through all the possible options for the tinrc variable show_author.
Cancel (delete) or supersede (overwrite) the current article. It must have been posted by the same user. The cancel message can be seen in the newsgroup 'control' or 'control.cancel'.
Edit the filter file and reload it afterwards.
Choose a new group by name. This command can be used to access any group, even those not currently yanked in.
Toggle article/group limit.
Display the subject of the first article in the current thread in the last line.
Toggle inverse video.
Mark article/thread as read and move onto the next unread article/thread. If a range of articles/threads is set, the range will be marked as read instead of the current article/thread. When tagged articles/threads are present, a prompt asks how to proceed.
Open the thread under the current cursor position.
Look up article by ''Message-ID:''.
Mail current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to someone. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
User configurable options menu (for more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
Go to next group.
Go to the next unread article.
Send current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to printer. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Go to previous group.
Go to previous unread article.
Return to previous level.
Quit tin — don't ask the user to confirm.
Toggle the display between all articles and unread articles.
Mail a bug report or comment to <tin-bugs@tin.org>. This is the best way of getting bugs fixed and features added/changed.
Save current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Save marked articles automatically without further prompting.
Toggle tag-status of current article / thread for GroupMail ('m') / Pipe ('|') / Print ('o') / GroupSave ('s') / GroupRepost ('x').
Automatically tag/untag all the parts of the current multi-part message in order.
Cycle the threading mode through no threading, threading by subject, threading by references, threading on both subject and references, group multipart articles into a thread (''Subject:'' based).
Untag all articles that were tagged.
Post an article to the current group. If posting fails for some reason, you'll get the chance to edit the article again via PostEdit ('e'), postpone it for later processing via PostPostpone ('o') (see also ''-o'' command-line switch) or discard it via Quit ('q').
Repost an already posted article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to another newsgroup(s). Useful for reposting from global to local newsgroups. Do not use this to crosspost your own articles.
Mark all unread articles that have not been selected as read, redraw screen to reflect changes and put index at the first thread to begin reading. Pressing GroupMarkUnselArtRead ('X') again will toggle back to the way it was before. See GroupUndoSel ('~') command for clearing the toggle effect, leaving the group will also clear the toggle effect and make the changes permanent.
Mark current article as unread.
Mark current thread as unread. If a range of threads is set, the range will be marked as unread instead of the current thread. When tagged threads are present, a prompt asks how to proceed.

4
Select article 4 within thread.
Auto select article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Mark current article, thread, range, auto-selected (hot) articles, articles matching pattern or tagged articles as read. A prompt asks which type should be marked.
Mark current article, thread, range, auto-selected (hot) articles, articles matching pattern or tagged articles as unread. A prompt asks which type should be marked.
Choose a range of articles to be affected by the next command. See the section "RANGES" for more information.
Re-enter the last message that was viewed.
Repeat the previous search.
Search forward for specified subject.
Search backwards for specified subject.
Select current thread for later processing.
Toggle selection of current article.
Reverse article selections.
Undo all selections on current thread.
Pipe current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles into command. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Read current article within thread.
View next unread article within thread.
Author forward search. This searches for articles with a specific ''From:'' line. The search will wrap over into the next thread if nothing is found in the current one.
Author backward search. Otherwise, see SearchAuthF ('a') above.
Search the body of all articles in group (can be slow). You can abort the search using Quit ('q').
Mark thread as read [after confirmation] and return to the group index page. Move cursor to next thread.
Mark thread as read [after confirmation] and enter the next thread containing unread news.
Cycle the display of the author through all the possible options for the tinrc variable show_author.
Cancel (delete) or supersede (overwrite) the current article. It must have been posted by the same user. The cancel message can be seen in the newsgroup 'control' or 'control.cancel'.
Edit the filter file and reload it afterwards.
Display the subject of the current article in the last line.
Toggle inverse video.
Mark article as read and move onto the next unread article. If a range of articles is set, the range will be marked as read instead of the current article. When tagged articles are present, a prompt asks how to proceed.
Look up article by ''Message-ID:''.
Mail current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to someone. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Send current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to printer. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Return to previous level.
Quit tin — don't ask the user to confirm.
Mail a bug report or comment to <tin-bugs@tin.org>. This is the best way of getting bugs fixed and features added/changed.
Save current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Save marked articles automatically without further prompting.
Toggle tag status of current article for mailing, piping, printing, saving or reposting.
Automatically tag/untag all the parts of the current multi-part message in order.
Untag all tagged threads.
Post an article to the current group. If posting fails for some reason, you'll get the chance to edit the article again via PostEdit ('e'), postpone it for later processing via PostPostpone ('o') (see also ''-o'' command-line switch) or discard it via Quit ('q').
Mark current article in thread as unread. If a range of articles is set, the range will be marked as unread instead of the current article. When tagged articles are present, a prompt asks how to proceed.
Mark all articles in thread as unread.

0
Read the first (base) article in this thread.
4
Read response 4 in this thread.
Auto select article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Reply through mail to the author of the current article with a copy of the article with all headers included.
Perform pgp(1) operations on article.
Toggles the display mode (raw including all headers vs. cooked).
Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more information.
Toggle the TAB width between 4 and 8 characters.
Post a followup to the current article with a copy of the article with all headers included.
Toggle TeX to ISO decoding for current article. The default behavior is taken from the tex2iso_conv variable in the tinrc file.
Toggles the display of all headers vs. headers in news_headers_to_display.
Toggle ROT-13 decoding for this article.
Toggle the display of uuencoded sections. The default behavior is taken from the hide_uue variable in the tinrc file.
The formfeed character (^L) is often used to hide 'spoilers' that the reader may not initially wish to see when viewing an article. Any text after a formfeed is not displayed. This key-press acts like a reveal key and turns the hidden text back on. Scrolling down will also reveal the text, scrolling up will hide it again.
Re-enter the last message that was viewed.
Repeat the previous search.
Forward search the text of this article.
Backward search the text of this article.
Skip to the end of the next quoted text-block in this article. Quoted text is everything which matches quote_regex, quote_regex2 or quote_regex3.
Go to the first article in the current thread.
Go to the last article in the current thread.
Toggle word highlighting on/off.
Pipe current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles into command. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Auto select article(s) with a single key. The defaults used for selection are set based upon the following four tinrc config variables: default_filter_select_case, default_filter_select_expire, default_filter_select_global and default_filter_select_header Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and "FILTERING ARTICLES" for more information on filtering.
Kill article(s) with a single key. The defaults used for killing are based upon the following four tinrc config variables: default_filter_kill_case, default_filter_kill_expire, default_filter_kill_global and default_filter_kill_header. Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and "FILTERING ARTICLES" for more information on filtering.
Go to next base article.
Go to next unread article. If the tinrc variable goto_next_unread doesn't contain PageNextUnread, then this key will first page through the current article.
Author forward search.
Author backward search.
Search the body of all articles in group (can be slow). You can abort the search using Quit ('q').
Mark the current thread as read [after confirmation] and return to the previous menu. Move cursor to next item.
Mark the rest of the current thread as read [after confirmation] and enter the next thread with unread articles.
Cancel (delete) or supersede (overwrite) the current article. It must have been posted by the same user. The cancel message can be seen in the newsgroup 'control' or 'control.cancel'.
Edit the current article. This is restricted to mailgroups and saved news.
Edit the filter file and reload it afterwards.
Post a followup to the current article with a copy of the article included.
Post a followup to the current article without including a copy of the article.
Go to the start of the article.
Go to the end of the article.
Display the subject of the current article in the last line.
Toggle inverse video.
Mark rest of thread as read and move onto the next unread thread.
Show the thread menu that the current article is a part of.
Look up article by ''Message-ID:''.
Mail current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to someone. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
User configurable options menu (for more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
Go to the next article.
Go to the next unread article.
Send current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to printer. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Go to the previous article.
Go to the previous unread article.
Return to the previous level.
Quit tin — don't ask the user to confirm.
Reply through mail to the author of the current article with a copy of the article included.
Reply through mail to the author of the current article without including the original article.
Save current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
Save marked articles automatically without further prompting.
Toggle tag status of current article for mailing, piping, printing, saving or reposting.
Return to group selection level.
Go to parent article.
Display a list of URLs in the current article. See the section "URL LISTING" for more information.
Display a list of attachments of the current article. See the section "ATTACHMENT LISTING" for more information.
Post an article to the current group. If posting fails for some reason, you'll get the chance to edit the article again via PostEdit ('e'), postpone it for later processing via PostPostpone ('o') (see also ''-o'' command-line switch) or discard it via Quit ('q').
Repost an already posted article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to another newsgroup(s). Useful for reposting from global to local newsgroups. Do not use this to crosspost your own articles.
Mark article as unread.
Mark the current thread as unread.

PageViewUrl ('U') displays a list of URLs in the current article. Besides the common moving keys, the following commands are available:

The current URL will be prompted and opened using the url_handler. '<ESC>' or no input will skip the URL.
URL forward search.
URL backward search.
Repeat the previous search.
Shell escape.
Toggle the display of the current URL in the last line.
Help screen of commands available.
Toggle the display of help mini menu at the bottom of the screen.

PageViewAttach ('V') displays a list of attachments of the current article. Besides the common moving keys, the following commands are available:

Pipe attachment into command.
Save current attachment / tagged attachments to disk.
View attachment.
Tag one or more attachments for saving.
Prompts for a pattern to match. All attachments whose name/description or content type/transfer encoding match the pattern will be tagged.
Reverse tagging of all attachments.
Untag all tagged attachments.
Attachment forward search.
Attachment backward search.
Repeat the previous search.
Pipe attachment into command. Uses the raw attachment, no decoding is done.
Shell escape.
Toggle the display of the name/description of the current attachment in the last line.
Help screen of commands available.
Toggle the display of help mini menu at the bottom of the screen.

At startup, tin reads in the configuration files (see also tin(5)). They contain a list of variables that can be used to configure the way tin works. If it exists, the global configuration file, /etc/tin/tinrc is read. After that, the user's own configuration file is read from ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. The global file is useful for distributing system-wide defaults to new users who have no private tinrc yet.

The variables are user configurable by editing ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc directly. Most of them can also be set in the GLOBAL OPTIONS MENU which is accessed by pressing OptionMenu ('M') at all levels. It allows the user to customize the behavior of tin. The options are saved to the file ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc when you exit tin so don't edit the file directly whilst tin is running.

In the options menu use the cursor keys in the usual way to move around. Use ConfigSelect ('^J' or '<CR>') to 'open' the option you wish to change. You will need to enter a new value or use '<SPACE>' to toggle the available options. ConfigSelect will save the new value, '<ESC>' will abort without saving changes.

As with the other menus, RedrawScr ('^L') will redraw the screen. You can use SearchSubjF ('/'), SearchSubjB ('?') and SearchRepeat ('\') to search for a specific option. Use Quit ('q') to exit the option menu and keep your changes. Use QuitTin ('Q') to exit without keeping your changes.

The options menu provides access to the attributes menu for the current group by the ConfigToggleAttrib ('<TAB>') command. Pressing ConfigToggleAttrib again toggles back to the options menu. For more information see section "ATTRIBUTES MENU AND GROUP ATTRIBUTES".

The ConfigScopeMenu ('S') command brings up the scopes menu. For more information see section "SCOPES MENU".

Here is a full list of all the available variables. The name in braces is the name of the corresponding setting in ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc.

If ON abbreviate long newsgroup names at group selection level and article level (if necessary) like this: news.software.readers -> n.software.readers -> n.s.readers -> n.s.r. Default is OFF.
If ON add posted articles which start a new thread to filter for highlighting follow-ups. Default is ON.
Turn ON advertising in header (''User-Agent:''). Default is ON.
If ON strip multipart/alternative messages automatically. Default is ON.
The character used to show that an article was deleted. Default is 'D'.
The character used to show that an article is in a range. Default is '#'.
The character used to show that an article will return as an unread article when the group is next entered. Default is '-'.
The character used to show that an article/thread is auto-selected (hot). Default is '*'.
The character used to show that an article/thread is recent (not older than X days). See also recent_time. Default is 'o'.
The character used to show that an article has not been read. Default is '+'.
The character used to show that an article was read. Default is ' '.
The character used to show that an article was killed. Default is 'K'. kill_level must be set accordingly.
The character used to show that an article was hot before it was read. Default is ':'. kill_level must be set accordingly.
If ON tin will ask before using a MIME viewer (metamail_prog) to display MIME messages. This only occurs if a MIME viewer is set. Default is OFF.
Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when mailing an article. Default is No.
If ON automatically list thread when entering it using right arrow key. Default is ON.
Default is OFF.
If ON articles/threads with ''Archive-name:'' in header will be automatically saved with the Archive-name & part/patch no and post processed if post_process_type is set to something other than 'No'. Default is OFF.
If set ON articles/threads will be saved in batch mode when save ''-S'' or mail ''-M, -N'' is specified on the command line. Default is ON.
If set ON a mini menu of the most useful commands will be displayed at the bottom of the screen for each level. Also a short posting etiquette will be displayed after composing an article. Default is ON.
If ON, create local copies of NNTP overview files. This can be used to considerably speed up accessing large groups when using a slow connection. See also "INDEX FILES". Default is OFF.
Use this hash algorithm for cancel-locks. Only available when build with cancel-lock support. none disables the generation of cancel-locks. Valid values are none, sha1, sha256 and sha512. Default is sha1.
If set ON the user is asked when quitting if all groups read during the current session should be marked read. Default is OFF.
Standard background color
Color of quoted text from external sources
Color of sender (From:)
Color of header-lines
Color of help pages
Color of background for inverse text
Color of foreground for inverse text
Color of status messages in last line
Color of words emphasized like _this_. See also word_h_display_marks and word_highlight.
Color of words emphasized like /this/. See also word_h_display_marks and word_highlight.
Color of words emphasized like *this*. See also word_h_display_marks and word_highlight.
Color of words emphasized like -this-. See also word_h_display_marks and word_highlight.
Color of mini help menu
Color of actual news header fields
Standard foreground color
Color of quoted lines
Color of twice quoted lines
Color of >=3 times quoted lines
Color of response counter. This is the text that says "Response x of y" in the article viewer.
Color of signatures
Color of urls highlight
Color of verbatim blocks
Color of article subject
Color of text-lines
Color of help/mail sign
Ask for manual confirmation to protect the user.
  • commands Ask for confirmation before executing certain dangerous commands (e.g., Catchup ('c')). Commands that this affects are marked in this manual with '[after confirmation]'. Default is commands & quit.
  • quit You'll be asked to confirm that you wish to exit tin when you use the Quit ('q') command.
  • select Ask for confirmation before marking all not selected (with GroupMarkUnselArtRead ('X') command) articles as read.
Format string tin uses for date representation. A description of the different format options can be found at strftime(3). tin uses strftime(3) when available and supports most format options in his fallback code. Default is "%a, %d %b %Y %H:%M:%S".
(default_art_search)
(default_author_search)
(default_config_search)
The last article/author/config option that was searched for.
(default_filter_days)
Default is 28.
(default_filter_kill_case)
Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF = ignore case. Default is OFF.
(default_filter_kill_expire)
Default for quick (1 key) kill filter expire. ON = limit to default_filter_days, OFF = don't ever expire. Default is OFF.
(default_filter_kill_global)
Default for quick (1 key) kill filter global. ON=apply to all groups, OFF=apply to current group. Default is ON.
(default_filter_kill_header)
Default for quick (1 key) kill filter header.
0

''Subject:'' (case sensitive)
1

''Subject:'' (ignore case)
2

''From:'' (case sensitive)
3

''From:'' (ignore case)
4

''Message-ID:'' & full ''References:'' line
5

''Message-ID:'' & last ''References:'' entry only
6

''Message-ID:'' entry only
7

''Lines:''
(default_filter_select_case)
Default for quick (1 key) auto-selection filter case. ON=filter case sensitive, OFF=ignore case. Default is OFF.
(default_filter_select_expire)
Default for quick (1 key) auto-selection filter expire. ON = limit to default_filter_days, OFF = don't ever expire. Default is OFF.
(default_filter_select_global)
Default for quick (1 key) auto-selection filter global. ON=apply to all groups, OFF=apply to current group. Default is ON.
(default_filter_select_header)
Default for quick (1 key) auto-selection filter header.
0

''Subject:'' (case sensitive)
1

''Subject:'' (ignore case)
2

''From:'' (case sensitive)
3

''From:'' (ignore case)
4

''Message-ID:'' & full ''References:'' line
5

''Message-ID:'' & last ''References:'' entry only
6

''Message-ID:'' entry only
7

''Lines:''
(default_goto_group)
(default_group_search)
(default_mail_address)
(default_move_group)
(default_pattern)
(default_pipe_command)
(default_post_newsgroups)
(default_post_subject)
(default_range_group)
(default_range_select)
(default_range_thread)
(default_repost_group)
(default_save_file)
(default_save_mode)
(default_select_pattern)
(default_shell_command)
(default_subject_search)
Allows groups/articles to be selected by an arrow '->' if set ON or by a highlighted bar if set OFF. Default is OFF.
The format string used to create the editor start command with parameters. Default is "%E +%N %F" (e.g., /bin/vi +7 .article).
If ON quotes from external sources will be detected. Default is OFF.
A regular expression that will be applied when reading articles. All matching lines are shown in col_extquote. If extquote_regex is blank, then tin uses a built-in default.
Specifies whether a screen redraw should always be done after certain external commands. Default is OFF.
If getart_limit is > 0 not more than the last getart_limit articles/group are fetched from the server. If getart_limit is < 0 tin will start fetching articles from your first unread minus absolute value of getart_limit. Default is 0, which means no limit.
If ON catchup group when leaving with the left arrow key. Default is ON.
Format string tin uses for Group level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is "%n %m %R %L  %s  %F".
Which keys tin should accept to jump to the next unread article. Possible is any combination of PageDown and PageNextUnread. When PageDown is set tin jumps to the next article at the end of the current one. When PageNextUnread is set tin jumps immediately to the next article when PageNextUnread ('<TAB>') is pressed. Default is PageNextUnread.
If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then sections of uuencoded data will be shown with a single tag line showing the size and filename (much the same as a MIME attachment). If set to 'Hide all' then any line that looks like uuencoded data will be folded into a tag line. This is useful when uuencoded data is split across more than one article but can also lead to false positives. This setting can also be toggled in the article viewer. Default is 'No'.
Path, name and options of external inews(1). If you are reading via NNTP the default value is "--internal" (use built-in NNTP inews), else it is "inews -h". The article is passed to inews_prog on STDIN via '< article'.
(info_in_last_line)
If ON, show current group description or article subject in the last line (not in the pager and global menu) — ToggleInfoLastLine ('i') toggles setting. This facility is useful as the full width of the screen is available to display long subjects. Default is OFF.
Interactive mailreader: if greater than 0 your mailreader will be invoked earlier for reply so you can use more of its features (e.g. MIME, pgp, ...). 1 means include headers, 2 means don't include headers (old use_mailreader_i=ON option). 0 turns off usage. This option has to suit mailer_format. Default is 0.
If ON use inverse video for page headers and URL highlighting. Default is ON.
If ON keep all failed postings in ${TIN_HOMEDIR:-"$HOME"}/dead.articles besides keeping the last failed posting in ${TIN_HOMEDIR:-"$HOME"}/dead.article. Default is ON.
This option controls the processing and display of articles that are killed. There are 3 options:
0
Kill only unread arts is the 'traditional' behavior of tin. Only unread articles are killed once only by marking them read. As filtering only happens on unread articles with kill_level set to 0, art_marked_killed and art_marked_read_selected are only shown once. When you reenter the group the mark will be gone.
1
Kill all arts & show with K will process all articles in the group and therefore there is a processing overhead when using this option. Killed articles are threaded as normal but they will be marked with art_marked_killed.
2
Kill all arts and never show will process all articles in the group and therefore there is a processing overhead when using this option. Killed articles simply does not get displayed at all.
Default is 0 (Kill only unread arts).
Allows 8bit characters unencoded in the header of mail message. Default is OFF. Turning it ON is effective only if mail_mime_encoding is also set to 8bit. Leaving it OFF is safe for most users and compliant to Internet Mail Standard (RFC5322 and RFC2047). Default is OFF.
User's mail address (and full name), if not username@host. This is used when creating articles, sending mail and when pgp(1) signing.
MIME encoding of the body in mail message, if necessary (8bit, base64, quoted-printable, 7bit). Default is quoted-printable.
Format of quote line when replying (via mail) to an article (%A=Address, %D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %C=Firstname, %I=Initials). Default is "In article %M you wrote:"
Select one of the following mailbox-formats: MBOXO (default, except on SCO), MBOXRD or MMDF (default on SCO). See mbox(5) and RFC4155 for more details on MBOXO and MBOXRD and mmdf(5) for more details about MMDF.
The directory where articles/threads are to be saved in mbox(5) format. This feature is mainly for use with the elm(1) mail program. It allows the user to save articles/threads/groups simply by giving '=' as the filename to save to. Default is ${TIN_HOMEDIR:-"$HOME"}/Mail.
The format string used to create the mailer command with parameters that is used for mailing articles to other people. Default is '%M "%T" < %F' (e.g., /bin/mail "iain" < .article). The flexible format allows other mailers with different command line parameters to be used such as
sendmail -oem -t < %F
elm -s "%S" "%T" < "%F"
claws-mail --compose "mailto:%T?subject=%S&insert=%F"

interactive_mailer must be set adequate. The following substitutions are supported:
%F	filename
%M	default_mailer
%S	subject-field
%T	to-filed
%U	username
%%	%

'Mark as (un)read' ignores tags (mark_ignore_tags)
When this is ON, the GroupMarkThdRead ('K'), ThreadMarkArtRead ('K'), MarkThdUnread ('Z') at Group level and MarkArtUnread ('z') at Thread level functions mark just the current article or thread, ignoring other tagged, (un)read articles. When OFF, the same function presents a menu with choices of the current thread or article, all tagged, unread articles, or nothing.
If ON mark articles that are saved as read. Default is ON.
Path, name and options of external metamail(1) program used to view non-textual parts of articles. To use the built-in viewer, set to --internal. This is the default value when metamail(1) is not installed. Leave it blank if you don't want any automatic viewing of non-textual attachments. The 'V' command can always be used to manually view any attachments. See also ask_for_metamail.
MM_CHARSET (mm_charset)
Charset supported locally, which is also used for MIME header (charset parameter and charset name in header encoding) in mail and news postings. If MIME_STRICT_CHARSET is defined at compile time, text in charset other than the value of this parameter is considered not displayable and represented as '?'. Otherwise, all character sets are regarded as compatible with the display. If it's not set, the value of the environment variable $MM_CHARSET is used. US-ASCII or compile-time default is used in case neither of them is defined. If your system supports iconv(3), this option is disabled and you should use mm_network_charset instead.
Charset used for posting and MIME headers; replaces mm_charset. Conversion between mm_network_charset and local charset (determined via nl_langinfo(3)) is done via iconv(3), if this function is not available on your system this option is disabled and you have to use mm_charset instead. mm_network_charset is limited to one of the following charsets:
US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} EUC-{CN,JP,KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8
Not all values might work on your system, see iconv_open(3) for more details. If it's not set, the value of the environment variable $MM_CHARSET is used. US-ASCII or compile-time default is used in case neither of them is defined.
Character attribute of words emphasized like _this_. It depends on your terminal which attributes are usable. See also word_h_display_marks and word_highlight.
Character attribute of words emphasized like /this/. It depends on your terminal which attributes are usable. See also word_h_display_marks and word_highlight.
Character attribute of words emphasized like *this*. It depends on your terminal which attributes are usable. See also word_h_display_marks and word_highlight.
Character attribute of words emphasized like -this-. It depends on your terminal which attributes are usable. See also word_h_display_marks and word_highlight.
(newnews)
These are internal timers used by tin to keep track of new newsgroups. Do not change them unless you understand what they are for.
Which news headers you wish to see. If you want to see _all_ the headers, place an '*' as this value. This is the only way a wildcard can be used. If you enter 'X-' as the value, you will see all headers beginning with 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with spaces. Not defining anything turns off this option.
Same as news_headers_to_display except it denotes the opposite. An example of using both options might be if you thought 'X-' headers were A Good Thing(tm), but thought Alan and Pape were miscreants... well then you would do something like this: news_headers_to_display=X- news_headers_to_not_display=X-Alan X-Pape Not defining anything turns off this option.
Format of quote line when posting/following up an article (%A=Address, %D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %C=Firstname, %I=Initials). Default is "%F wrote:".
Time in seconds to wait for a response from the server. Default is 120. Setting this to 0 means no timeout.
The normalization form tin should use to normalize unicode input. The possible values are:
0
None: no normalization
1
NFKC: Compatibility Decomposition, followed by Canonical Composition
2
NFKD: Compatibility Decomposition
3
NFC: Canonical Decomposition, followed by Canonical Composition
4
NFD: Canonical Decomposition
5
NFKC_CF: Compatibility Decomposition, followed by Canonical Composition and Case Folding
Some normalization modes are only available if they are supported by the library tin uses to do the normalization. NFC should be used if possible.
If ON put cursor at first unread article in group otherwise at last article. Default is ON.
Allows 8bit characters unencoded in the header of a news article, if set this also disables the generation of MIME-headers when they are usually required. Default is OFF. Only enacted if post_mime_encoding is also set to 8bit. In a number of local hierarchies where 8bit characters are used, using unencoded (raw) 8bit characters in header is acceptable and sometimes even recommended so that you need to check the convention adopted in the local hierarchy of your interest to determine what to do with this and post_mime_encoding.
MIME encoding of the body in news message, if necessary. (8bit, base64, quoted-printable, 7bit). Default is 8bit, which leads to no encoding. base64 and quoted-printable are usually undesired on usenet.
If ON, then tin will start an appropriate viewer program to display any files that were post processed and uudecoded. The program is determined using the mailcap(5) file. Default is ON.
This specifies whether to perform post processing on saved articles. The following values are allowed:
0
No (default), no post processing is done.
1
Shell archives, unpacking of multi-part shar(1) files only.
2
Yes, binary attachments and data will be decoded and saved.
Keep posted articles in given file. If the given filename does not contain any expandable strings it will be prefixed with ${TIN_HOMEDIR:-"$HOME"}/Mail/. If no filename is set then postings will not be saved. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information about the various expansion characters. Default is 'posted'.
If ON, then the full article header is sent to the printer. Otherwise only the ''Subject:'' and ''From:'' fields are output. Default is OFF.
The printer program with options that is to be used to print articles. The default is lpr(1) for BSD machines and lp(1) for SysV machines. Printing from tin may have been disabled by the System Administrator.
If ON only save/print/pipe/mail unread articles (tagged articles excepted). Default is OFF.
If ON show empty ''Followup-To:'' header when editing an article. Default is OFF.
The character used in quoting included text to article followups and mail replies. The '_' character represents a blank character and is replaced with ' ' when read, %I is replaced by author's initials. Default is '>_'.
How articles should be quoted when following up or replying to them. There are a number of things that can be done: empty lines can be quoted, signatures can be quoted and quote_chars can be compressed when quoting multiple times (for example, '> > >' will be turned into '>>>'). The default is to compress quotes, and to quote empty lines.
When you are viewing an article in raw mode ('^H'), and follow up or reply to it, the signature will be quoted even if it would otherwise not be. If show_signatures is off, then the signature will never be quoted.
A regular expression that will be applied when reading articles. All matching lines are shown in col_quote. If quote_regex is blank, then tin uses a built-in default.
A regular expression that will be applied when reading articles. All matching lines are shown in col_quote2. If quote_regex2 is blank, then tin uses a built-in default.
A regular expression that will be applied when reading articles. All matching lines are shown in col_quote3. If quote_regex3 is blank, then tin uses a built-in default.
If set to 0, this feature is deactivated, otherwise it means the number of days. Default is 2.
If ON tin does the rendering of bi-directional text. If OFF tin leaves the rendering of bi-directional text to the terminal. Default is OFF.
The news ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file is reread at regular intervals to show if any new news has arrived. Default is 1200. Setting this to 0 will disable this feature.
Directory where articles/threads are saved. Default is ${TIN_HOMEDIR:-"$HOME"}/News.
If the score of an article is below or equal this value the article gets marked as killed.
If the score of an article is above or equal this value the article gets marked as hot.
Score of an article which should be killed, this must be <= score_limit_kill.
Score of an article which should be marked hot, this must be >= score_limit_select.
The number of lines that will be scrolled up/down in the article pager when using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get traditional tin page-by-page scrolling. Set to -1 to get page-by-page scrolling where the top/bottom line is carried over onto the next page. This setting supersedes show_last_line_prev_page=ON. Set to -2 to get half-page scrolling. This setting supersedes full_page_scroll=OFF.
Format string tin uses for Selection level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is "%f %n %U  %G  %d".
Which information about the author should be shown. Default is 2, authors full name.
0
None, only the ''Subject:'' line will be displayed.
1
Address, ''Subject:'' line & the address part of the ''From:'' line are displayed.
2
Full Name, ''Subject:'' line & the authors full name part of the ''From:'' line are displayed (default).
3
Address and Name, ''Subject:'' line & all of the ''From:'' line are displayed.
If ON show a short group description text after newsgroup name at the group selection level. The ''-d'' command-line flag will override the setting and turn descriptions off. The text used is taken from the ${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups file and if supported (requires tin to be build with mh-mail-handling support) from ${TIN_HOMEDIR:-"$HOME"}/.tin/mailgroups for mailgroups. Default is ON.
Function used for sorting articles. Default is 0.
0
Use qsort(3) for sorting.
1
Use heapsort(3) for sorting. This might be faster in large groups with long threads (somewhat presorted data).
Which information about the thread or article should be shown. Default is 1, show only the line count.
0
None, no information will be displayed.
1
Lines, in article listing the line count of an article will be displayed and in thread listing the line count of first (unread) article will be displayed.
2
Score, in article listing the score of an article will be displayed and in thread listing the score of the thread will be displayed — see also thread_score.
3
Lines & Score, display line count and score.
If ON show only new/unread articles otherwise show all articles. Default is ON.
If ON show only subscribed groups that contain unread articles. Default is OFF.
If OFF don't show signatures when displaying articles. Default is ON.
If ON prepend the signature with sigdashes. Default is ON.
The path that specifies the signature file to use when posting, following up to or replying to an article. If the path is a directory then the signature will be randomly generated from files that are in the specified directory. If the path starts with a ! the program the path points to will be executed to generate a signature. In order to pass the group name to the program, %G can be specified. This will be replaced by the name of the current newsgroup. --none will suppress any signature. Default is ${TIN_HOMEDIR:-"$HOME"}/.Sig.
If ON add signature to reposted articles. Default is ON.
A regular expression that will be applied when reading articles. All matching words are shown in col_markslash or mono_markslash. If slashes_regex is blank, then tin uses a built-in default.
This specifies how articles should be sorted. Sort by ascending Date (6) is the default. The following sort types are allowed:
0
Nothing, don't sort articles.
1
Subject: (descending), sort articles by ''Subject:'' field descending.
2
Subject: (ascending), sort articles by ''Subject:'' field ascending.
3
From: (descending), sort articles by ''From:'' field descending.
4
From: (ascending), sort articles by ''From:'' field ascending.
5
Date: (descending), sort articles by ''Date:'' field descending.
6
Date: (ascending), sort articles by ''Date:'' field ascending (default).
7
Score (descending), sort articles by filtering score descending.
8
Score (ascending), sort articles by filtering score ascending.
9
Lines: (descending), sort articles by ''Lines:'' field descending.
10
Lines: (ascending), sort articles by ''Lines:'' field ascending.
This specifies how threads will be sorted. Sort by descending Score (1) is the default. The following sort types are allowed:
0
Nothing, don't sort threads.
1
Score (descending), sort threads by filtering score descending (default).
2
Score (ascending), sort threads by filtering score ascending.
3
Last posting date (descending), sort threads by date of last posting descending.
4
Last posting date (ascending), sort threads by date of last posting ascending.
Set this option to a list of comma-separated strings to be warned if you are replying to an article by mail where the e-mail address contains one of these strings. The matching is case-insensitive. Example:

spam,delete,remove

A regular expression that will be applied when reading articles. All matching words are shown in col_markstar or mono_markstar. If stars_regex is blank, then tin uses a built-in default.
Set ON if the editor used for posting, follow-ups and bug reports has the capability of starting and positioning the cursor at a specified line within a file. Default is ON.
Strips the blanks from the end of each line therefore speeding up the display when reading on a slow terminal or via modem. Default is ON.
Bogus groups are groups that are present in your ${TIN_HOMEDIR:-"$HOME"}/.newsrc file that no longer exist on the news server. There are 3 options. 0 means do nothing & always keep bogus groups. 1 means bogus groups will be permanently removed. 2 means that bogus groups will appear on the Group Selection Menu, prefixed with a 'D'. This allows you to unsubscribe from them as and when you wish. Default is 0 (Always Keep).
If ON, then unsubscribed groups will be permanently removed from your ${TIN_HOMEDIR:-"$HOME"}/.newsrc file. Default is OFF.
A regular expression to find Subject prefixes like "Re:" to remove. If strip_re_regex is blank, then tin(1) uses a built-in default.
A regular expression to find Subject suffixes like "(was:" to remove. If strip_was_regex is blank, then tin(1) uses a built-in default.
A regular expression that will be applied when reading articles. All matching words are shown in col_markstroke or mono_markstroke. If strokes_regex is blank, then tin uses a built-in default.
If enabled a search for the next unread article will wrap around all articles to find also previous unread articles. If disabled the search stops at the end of the thread list. Default is ON.
If ON, show "a as Umlaut-a, etc. Default is OFF. This behavior can also be toggled in the article viewer via PageToggleTex2iso ('"').
Defines which threading method to use. It's possible to set the threading type on a per group basis by setting the group attribute variable thread_arts to 0 – 4 in the file ${TIN_HOMEDIR:-"$HOME"}/.tin/attributes. (See also "GROUP ATTRIBUTES".) The default is Both Subject and References. The choices are:
0
None, don't thread.
1
Subject, thread on ''Subject:'' only.
2
References, thread on ''References:'' only.
3
Both Subject and References, thread on ''References:'' then ''Subject:'' (default).
4
Multipart Subject, thread multipart articles on ''Subject:''.
5
Percentage Match, thread base upon a partial character match on ''Subject:''.
If ON catchup group/thread when leaving with the left arrow key. Default is ON.
Format string tin uses for Thread level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is "%n %m  [%L]  %T  %F".
How closely the subjects must match for two threads to be considered part of the same thread. This is a percentage and the default if 75%.
How the total score of a thread is computed. Default is 0, the maximum score in this thread.
0
Max, the maximum score in this thread.
1
Sum, the sum of all scores in this thread.
2
Average, the average score in this thread.
If ON append //TRANSLIT to the first argument of iconv_open(3) to enable transliteration. This means that when a character cannot be represented in the target character set, it can be approximated through one or several similarly looking characters. On systems where this extension doesn't exist, this option is disabled. Default is OFF.
Allows you to select how tin treats blank lines in article bodies. Default is 0. This option does not affect lines within verbatim blocks.
0
Don't trim article body, do nothing.
1
Skip leading blank lines.
2
Skip trailing blank lines.
3
Skip leading and trailing blank l., skip leading and trailing blank lines.
4
Compact multiple between text, replace multiple blank lines between textblocks with one blank line.
5
Compact multiple and skip leading, 4 + 1
6
Compact multiple and skip trailing, 4 + 2
7
Compact mltpl., skip lead. & trai., 4 + 3
A regular expression that will be applied when reading articles. All matching words are shown in col_markdash or mono_markdash. If underscores_regex is blank, then tin uses a built-in default.
If ON remove ~/.article after posting. Default is ON.
The program that will be run when launching URLs in the article viewer using PageViewUrl ('U'). The actual URL will be appended. Default is url_handler.pl.
Enable highlighting URLs in message body. Default is ON.
If enabled tin uses ANSI-colors. Default is OFF.
Default is OFF.
Allows the mouse button support in an xterm(1x) to be enabled/disabled. Default is OFF.
If enabled tin uses slrnface(1) to interpret the ''X-Face:'' header. For this option to have any effect, tin must be running in an xterm(1x) and slrnface(1) must be in your $PATH. Default is OFF.
If ON use UTF-8 characters for indicator ('->'), thread/attachment tree and ellipsis ('...'). Default is OFF.
A regular expression that tin will use to find the begin of a verbatim block.
A regular expression that tin will use to find the end of a verbatim block.
If ON verbatim blocks will be detected. Default is ON.
Allows you to select how tin matches strings. The default is 0 and uses the wildmat notation, which is how this has traditionally been handled. Setting this to 1 allows you to use perl(1) compatible regular expressions pcre(3) (see also perlre(1) and pcrepattern(3)). You will probably want to update your filter file if you use this regularly. NB: Newsgroup names will always be matched using the wildmat notation.
Should the leading and ending stars, slashes, strokes and dashes also be displayed, even when they are highlighting marks?
0
no
1
yes, display mark
2
print a space instead
Enable word highlighting. See word_h_display_marks for the options available. If use_color is enabled the colors specified in col_markdash, col_markslash, col_markstar and col_markstroke are used for word highlighting else the character attributes specified in mono_markdash, mono_markslash, mono_markstar and mono_markstroke are used. Default is ON.
Sets the column at which a displayed article body should be wrapped. If this value is equal to 0, it defaults to the current screen width. If this value is greater than your current screen width the part off-screen is not displayed. Thus setting this option to a large value can be used to disable wrapping. If this value is negative the wrap margin is the current screen width plus the given value (as long as the result is still positive, otherwise it will fall back to the current screen width). Default is 0, wrapping at the current screen width.
Format is the same as for news_quote_format, this is used when answering to a crossposting to several groups with no ''Followup-To:'' set.

tin allows certain attributes to be set on a per group basis. If it exists, the global attributes file, ${TIN_LIBDIR:-NEWSLIBDIR}/attributes is read. After that, the user's own attributes file ${TIN_HOMEDIR:-"$HOME"}/.tin/attributes is read. The global attributes file is useful for distributing system-wide defaults to new users who have no private attributes file yet.

Note that the scope=<grouplist> line has to be specified before the attributes are specified for that list. All attributes are set to a reasonable default so you only have to specify the attribute that you want to change (e.g., savedir). All toggle attributes are set by specifying ON/OFF. Otherwise, these function exactly the same as their global equivalents. For more details see tin(5).

Attributes can also be changed from the attributes menu which can be accessed by ConfigToggleAttrib ('<TAB>') from the options menu or ScopeSelect ('^J' or '<CR>') from the scopes menu. The attributes menu looks and behaves very similar to the options menu. The title shows the current scope. Attributes set in the current scope are marked with '+' to the left of the attributes number.

Besides the keys for moving around and changing values known from the options menu the attributes menu provides the following command: ConfigResetAttrib ('r') which resets an attribute to a default value.

The scopes menu (accessible from the options menu with ConfigScopeMenu ('S')) shows all scopes read from the global and local attributes file. Scopes from the global attributes file are marked with '!' to the left of the scope number. Delete/rename/move are not possible with those scopes.

In addition to the common moving keys the following commands are available: ScopeSelect ('^J' or '<CR>') enter the attributes menu for the current scope, ScopeEditAttributesFile ('E') edit the local attributes file, ScopeAdd ('a') add a new scope, ScopeDelete ('d') delete the current scope, ScopeMove ('m') move the current scope to a new position, ScopeRename ('r') rename the current scope. ToggleHelpDisplay ('H') toggles the help mini menu at the bottom of the screen.

When there is a subject or an author which you are either very interested in, or find completely uninteresting, you can easily instruct tin to auto-select or auto-kill articles that match rules that you specify. This can be anything from the name of the author to the number of lines in an article.

When tin starts up the user's kill-file ${TIN_HOMEDIR:-"$HOME"}/.tin/filter (see also tin(5)) is read. Each time a newsgroup is entered the rules are applied and articles killed or selected when they meet certain criteria.

The degree to which rules are applied depend on the kill_level tinrc setting. By default killed articles will only be marked read. Adjust kill_level for more aggressive processing. Articles that match an auto-selection rule are marked with a ''*''.

Filtering rules can be manually entered into ${TIN_HOMEDIR:-"$HOME"}/.tin/filter (but don't do this whilst running tin else you will lose your changes) or by using an on-screen menu within tin.

The filtering capabilities of tin have been significantly enhanced over previous versions to include scoring and better pattern matching. It is recommended that you read the file filtering in the tin documentation directory. This file can also be read online at
<http://www.tin.org/filtering.txt>.

The on-screen filtering menu is accessed by pressing MenuFilterKill ('^K') or MenuFilterSelect ('^A') at the Group and Article levels. It allows the user to kill or select an article that matches the current ''Subject:'' line, ''From:'' line or a string entered by the user. The user entered string can be applied to the ''Subject:'' or ''From:'' line of an article. The filter can be limited to the current newsgroup or it can apply to all newsgroups. Once entered the user can abort the command and not save the new filter, edit the full filter file or save filter.

tin allows posting of articles, follow-up to already posted articles and replying direct through mail to the author of an article.

Use the Post ('w') command to post an article to a newsgroup. After entering the post subject the default editor (i.e., vi(1)) or the editor specified by the $VISUAL or $EDITOR environment variable will be started and the article can be entered. To crosspost articles simply add a comma and the name of the newsgroup(s) to the end of the ''Newsgroups:'' line at the beginning of the article. After saving and exiting the editor you are asked if you wish to a)bort posting the article, e)dit the article again or p)ost the article to the specified newsgroup(s).

Use the DisplayPostHist ('W') command to display a history of the articles you have posted. The date the article was posted, which newsgroups the article was posted to and the articles subject line are displayed.

Use the PageFollowupQuote ('f'), PageFollowup ('F') or PageFollowupQuoteHeaders ('^W') command to post a follow-up article to an already posted article. The PageFollowupQuote command will copy the text of the original article into the editor. The PageFollowupQuoteHeaders command will copy the text and all headers of the original article into the editor. The editing procedure is the same as when posting an article with the Post ('w') command.

Use the PageReplyQuote ('r'), PageReply ('R') or PageReplyQuoteHeaders ('^E') command to reply direct through mail to the author of an already posted article. The PageReplyQuote command will copy the text of the original article into the editor. The PageReplyQuoteHeaders command will copy the text and all headers of the original article into the editor. The editing procedure is the same as when posting an article with the Post ('w') command. After saving and exiting the editor you are asked if you wish to abort sending the article via PostAbort ('a'), edit the article again via PostEdit ('e') or send the article to the author via PostSend ('s').

When posting a followup to an article or replying direct to the author of an article via email the text of the article can be quoted. The beginning of the quoted text can contain information about the quoted article (e.g., Name and the Message-ID of the article). To allow for different situations certain information from the article can be used in the quoted string. The following variables are expanded if found in the tinrc variables mail_quote_format, news_quote_format or xpost_quote_format:

%A	Address (Email)
%D	Date (uses date_format)
%F	Full address (%N <%A>)
%G	Groupname
%M	Message-ID
%N	Fullname of author
%C	Firstname of author
%I	Initials of author
e.g.,
mail_quote_format=On %D in %G you wrote:
news_quote_format=In %M, %F wrote:
would expand to:
On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:
In <abcINN123@example.org>, Joe Bar <joe@example.org> wrote:
The quoted text section of an article is marked by a preceding quote string at the beginning of each quoted line. The default quote string is set to '>_'. The default can be changed by setting the tinrc variable quote_chars to ones own preference. (Note that '_' underline is used to represent a space).

The command interface to GroupMail, PageMail, PostMail or ThreadMail ('m'), Pipe ('|'), Print ('o'), PageRepost or GroupRepost ('x') and GroupSave, PageSave or ThreadSave ('s' and GroupAutoSave, PageAutoSave or ThreadAutoSave 'S') articles is the same for ease of use.

Auto-saving with *AutoSave ('S') is a special case and operates only on marked articles. They will processed without any further prompting according to the default save parameters defined in tinrc or by any attributes set for the current group.

Otherwise, the initial prompt will ask you to select which article, thread, hot (auto-selected), regular expression pattern, tagged articles you wish to mail, pipe etc.

Tagged articles must have already been tagged with a *Tag ('t') command. All tagged articles can be untagged by a *Untag ('U') untag command.

If a regular expression pattern is selected you are asked to enter a pattern (e.g., to match all articles subject lines containing 'net News' you enter "net News"). Any articles that match the entered expression will be mailed, piped etc. See also the wildcard tinrc variable for advanced pattern matching options.

Various expansion characters are recognized when entering the directory and file to save to. Environment variables (prefixed with '$') and user home directories (prefixed by '~' or '~username') can be specified. Environment variables can themselves contain other special characters.

To save articles to a mailbox enter '=<mailbox name>' when asked for the save filename. If you enter just '=' then articles will be saved to a mailbox with the name of the current newsgroup (eg, alt.sources). See maildir.

To save in savedir/<news.group.name>/<filename> format enter '+<filename>'. See savedir. Like '+' %G is expanded to the current news.group.name but without savedir prefixed. %P is expanded to the news.group.name with all '.' replaced by '/'.

If saving multiple files at once the filename (if not referring to a mailbox) will be extended by ".num" where "num" is at least 3 digit number counting up from 1. Environment variables are allowed within a filename (e.g., $SOURCES/dir/filename).

When saving articles you can specify whether the saved files should be post processed. A default process type can be set via post_process_type.

tin allows new/unread news articles to be mailed (''-M'' and ''-N'' option) or saved (''-S'' option) in batch mode for later reading. Useful when going on holiday and you don't want to return and find that expire has removed a whole load of unread articles. Best to run via cron(8) everyday while away, after which you will be mailed a report of which articles were mailed/saved from which newsgroups and the total number of articles mailed/saved. Articles are saved in a private news structure under your savedir directory (default is ${TIN_HOMEDIR:-"$HOME"}/News). Be careful of using this option if you read a lot of groups because you could overflow your file system.

When using ''-S'' together with a given directory to save to (''-s'' option), the same directory must be specified when reading the articles by ''-R''.

If you only want to save some of your groups use the batch_save tinrc variable. Set to ON or OFF in tinrc to enable/disable saving of all groups and then use the batch_save attribute to fine tune which groups you want to have saved. For example, if you want to save most of your groups, then set batch_save to ON in tinrc and selectively turn off the ones you don't want using attributes.

(mail any unread articles in newsgroups specified in file newsrc.mail to the local user iain and mark them as read)
(save any unread articles in newsgroups specified in file newsrc.save and mark them as read)
(read any articles saved by tin -S)

A range is simply a group of items marked using the SetRange ('#') key. Certain tin commands will operate on a range if one exists rather than just the current item. A range is an expression of the form <min>–<max>, e.g. 10–15 will highlight items 10 through 15 on the current screen. Other than absolute numeric positions, '.' can be used in place of the current cursor position and '$' can be used to mean the highest number available. Currently the only commands that understand ranges are GroupMarkThdRead ('K'), MarkArtUnread ('z') and MarkThdUnread ('Z').

Several places in tin allow you to specify a list of newsgroups. These include command-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE mechanism. The scope= attributes file tag and the filter file group= tag also use the same syntax. tin interprets this variable similarly to rn(1). It contains a list of patterns, separated by commas and possibly prefixed with exclamation points. An exclamation point negates the meaning of a match on this pattern, and can be used to cancel certain matches. Some examples:

alt.config,news.*,!news.test

Matches alt.config and everything in the 'news' hierarchy except news.test

See the explanation for the $AUTOSUBSCRIBE variables for further examples.

tin will recognize a signature in either ${TIN_HOMEDIR:-"$HOME"}/.signature or ${TIN_HOMEDIR:-"$HOME"}/.Sig. If ${TIN_HOMEDIR:-"$HOME"}/.signature exists, then the signature will be pulled into the editor for mail commands only. A signature in ${TIN_HOMEDIR:-"$HOME"}/.signature will not be pulled into the editor for posting commands since inews(1) will append the signature itself.

A signature in ${TIN_HOMEDIR:-"$HOME"}/.Sig will be pulled into the editor for both posting and mailing commands.

The following is an example of a .Sig file:

NAMES  Joe Bar <joe@example.org>
SNAIL  Musterweg 12, 99999 Notreal, Germany

tin also has the capability to generate random signatures on a per newsgroup basis if so desired. The way to accomplish this is to specify the default signature or the group attribute sigfile as a directory. If for example the sigfile path is /usr/iain/.sigs and .sigs is a directory then tin will select a random signature from any file that is in the directory .sigs (note: one signature per numbered file). A random signature can also consist of a fixed part signature that can contain your name, address etc. followed by the random sig. The fixed part of the random sig is read from the file $HOME/.sigfixed.

The look of the Selection, Group and Thread level can be customized via format strings. These format strings define the content and the position of each element on the screen. Variables are used within the format strings as placeholders. The following variables are available:


%D	date
%F	from, name and/or address
%G	newsgroup name
%I	initials
%L	line count
%M	message-id
%R	number of responses in thread
%S	score
%T	thread tree
%U	unread count
%d	newsgroup description
%f	newsgroup flag
%m	article marks
%n	current group/thread/article number
%s	subject
%%	%

Not all variables can be used in each level. The following table provides an overview:


	select_format	group_format	thread_format
%D		X	X
%F		X	X
%G	X
%I		X	X
%L		X	X
%M		X	X
%R		X
%S		X	X
%T			X
%U	X
%d	X
%f	X
%m		X	X
%n	X	X	X
%s		X
%%	X	X	X

Defaults for the format strings:


select_format:	"%f %n %U  %G  %d"
group_format:	"%n %m %R %L  %s  %F"
thread_format:	"%n %m  [%L]  %T  %F"

show_description controls whether the newsgroup description is shown or not. The description can also be toggled with SelectToggleDescriptions ('d').

The information displayed with '%F' depends on the value of show_author. GroupToggleSubjDisplay resp. ThreadToggleSubjDisplay ('d') switches through all available options.

For date representation '%D' uses date_format. It is possible to specify a different date format in round brackets (e.g. '%(%d %b %y %H:%M)D'). See date_format for more details.

The length of each item (except '%%') can be defined with a positive number after the '%'. The following example displays the score in the thread level 10 characters wide: '%10S'.

If the newsgroup name is displayed together with the newsgroup description, the width of the newsgroup name can be controlled via an optional comma separated second value (e.g. '%60,20G'). It is valid to omit the first value (e.g. ('%,20G')). If no second value is given, tin uses a default value of 32.

Some variables do have a default width which may lead to truncation. Truncation for variables which contain only numbers happens by dividing the value with a sufficient power of ten and adding a SI suffix to the result, that is the variable holds a value of 54321 and the width for the variable is 4 the result will be "54 k". If that's undesired you have to specify a larger width manually, e.g. '%6n'. Here is an overview of the defaults:


Variable	width
%I	 3
%L	 4
%M	10
%R	 3
%S	 6
%U	 5
%n	 4

If no length is given for '%D', the length is determined by the format string for the date and the date of the current day. If the date format string contains weekdays or months names it may happen that the date is longer than determined in the first pass. In this case, the date is truncated before display. This occurs, for example, if the current month is May and the article to which the date is displayed was posted in December. In such cases it might useful to determine the maximum length manually and specify the length in the format string.

In case the format string contains '%G' and '%d' and no length are given, tin determines the longest newsgroup name and uses this length for '%G'. The remaining space will used for '%d'.

When the format string contains the specifier '%F' and '%s' resp. '%T' and no length are given, '%F' will use one third and '%s' resp. '%T' will use two third of the available space.

In addition, a minimum screen width can be defined for each item (except '%%'). In this case, the item will only be displayed when the screen is wider than specified. This comes in handy to not overload a small screen but have maximum information on a large screen. The minimum screen width has to be specified by a positive number preceded by an '>'. In the following example tin will display the score only if the screen is wider than 100 characters: '%>100S'.

If both the length and the minimum screen width should be specified for an item, the length must be the first parameter and the minimum screen width must be the second one. The following example displays the score with a length of 10 characters only if the screen is wider than 100 characters: '%10>100S'.

tin can be pretty much be navigated by using the four cursor keys. The left arrow key goes up a level, the right arrow key goes down a level, the up arrow key goes up a line and the down arrow key goes down a line.

The following newsgroups provide useful information concerning news software:
—news.software.readers (info. about news user agents tin, rn, nn, slrn etc.) —news.software.nntp (info. about NNTP) —news.answers (Frequently Asked Questions (FAQ) about many different themes)

Many prompts within tin offer a default choice that the cursor is positioned on. By pressing '<CR>' the default value is taken. Most prompts can be aborted by pressing '<ESC>'.

When tin is run in an xterm(1x) it will resize itself each time the xterm(1x) is resized.

tin will reread the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file at set intervals (reread_active_file_secs) to show any newly arrived news.

If you find large number of new newsgroups cluttering up your screen, pressing SelectToggleReadDisplay ('r') will make them go away.

If the environment variable $TERM is set to xterm(1x), then button pressing can be used to select groups and articles. In this discussion, the buttons are assumed to be assigned conventionally (i.e., Button1 is the left button).

In general (i.e., for the group, thread and article menus),

enters next (lower) level if you click on an article, otherwise pages down.
returns to the previous (upper) level if you click on an article, otherwise pages up.
positions on the article line under mouse cursor, or pages down if you've clicked outside the list of articles.

In the group selection menu, if the mouse is pointing at a group then:

moves to and selects the group pointed at, just like SelectReadGrp ('<CR>').
quits the program, just like Quit ('q').
moves to the group pointed at.

In the article menu, if the mouse is pointing at an article (or thread) then:

reads the article pointed at, just like GroupReadBasenote ('<CR>'), or the thread, just like GroupListThd ('l').
exits the menu, catching up on the group if you have group_catchup_on_exit set in your configuration, just like Quit ('q').
moves to the article (or thread) pointed at.

In the thread menu, if the mouse is pointing at an article then:

reads article pointed at, just like ThreadReadArt ('<CR>').
exits the menu, catching up on the thread if you have thread_catchup_on_exit set in your configuration, just like Quit ('q').
moves to the article pointed at.

In other menus and areas button pressing reverts back to usual cut and paste of xterm(1x), but after one click of any button.

If your news server supports NOV index files (see newsoverview(5), most modern installations will) and you have a fast connection to your news server then this section can be ignored.

If your news server doesn't support NOV index files or you have a very slow connection to your news server then tin can cache the index for each newsgroup if cache_overview_files is set to ON. Note that this cache can use up large amounts of disk space if you read a lot of groups and/or high traffic groups.

Each user creates/updates his/her own index files that are stored in ${TIN_INDEX_NEWSDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.news/. If you are reading via NNTP then the news server name will be appended to keep the indexes for different servers separate. If you are reading off the local spool and local overview files already exist then turning on caching will have no effect. Likewise unless you see significant delays entering a group when reading via NNTP then turning on caching will have little or no effect.

Entering a group the first time tends to be slow because the index file must be built from scratch. To alleviate the slowness start tin to create all index files for the groups you subscribe to with tin -u -v and go for a coffee. Subsequent readings of a group will only need to do incremental updating of the index file and will be much faster as only new articles will need to be cached.

As indexing might take some time you may want to run tin from the system batcher cron(8) with the ''-u'' option:

30 6 * * * /usr/local/bin/tin -u

If you are low on local disk space you should consider to manually purge cached data for groups you are not reading anymore with something like:

find ${TIN_INDEX_NEWSDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.news* \
-type f -name "[0-9]*.[0-9]" -atime +28 | xargs rm -f

For a detailed description see tin(5).

$MAILCAPS
~/.mailcap
/etc/mailcap
/usr/etc/mailcap
/usr/local/etc/mailcap
/etc/mail/mailcap

/etc/news/server

${TIN_HOMEDIR:-"$HOME"}/.cancelsecret

${TIN_HOMEDIR:-"$HOME"}/.mime.types
/etc/mime.types
/etc/tin/mime.types

${TIN_HOMEDIR:-"$HOME"}/.newsauth

${TIN_HOMEDIR:-"$HOME"}/.newsrc

${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc

${TIN_HOMEDIR:-"$HOME"}/.signature
${TIN_HOMEDIR:-"$HOME"}/.Sig

${TIN_HOMEDIR:-"$HOME"}/.sigfixed

${TIN_HOMEDIR:-"$HOME"}/.tin/.inputhistory

${TIN_INDEX_MAILDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.mail/

${TIN_INDEX_NEWSDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.news${NNTPSERVER:+"-$NNTPSERVER"}/

${TIN_INDEX_SAVEDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.save/

${TIN_HOMEDIR:-"$HOME"}/.tin/active.mail

${TIN_HOMEDIR:-"$HOME"}/.tin/active.save

/etc/tin/attributes
${TIN_HOMEDIR:-"$HOME"}/.tin/attributes

${TIN_HOMEDIR:-"$HOME"}/.tin/filter

/etc/tin/keymap${${LC_ALL:-"${LC_CTYPE:-"${LC_MESSAGES:-"$LANG"}"}"}:+".${LC_ALL:-"${LC_CTYPE:-"${LC_MESSAGES:-"$LANG"}"}"}"}

${TIN_HOMEDIR:-"$HOME"}/.tin/keymap${${LC_ALL:-"${LC_CTYPE:-"${LC_MESSAGES:-"$LANG"}"}"}:+".${LC_ALL:-"${LC_CTYPE:-"${LC_MESSAGES:-"$LANG"}"}"}"}

${TIN_HOMEDIR:-"$HOME"}/.tin/mailgroups

${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable

${TIN_HOMEDIR:-"$HOME"}/.tin/posted

${TIN_HOMEDIR:-"$HOME"}/Mail/posted

${TIN_HOMEDIR:-"$HOME"}/.tin/postponed.articles

${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/newsgroups

${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/serverrc

/etc/tin/tinrc
${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc

/etc/tin/tin.defaults

/usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo

${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}

${TIN_LIBDIR:-NEWSLIBDIR}/active.times

${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups

${TIN_LIBDIR:-NEWSLIBDIR}/organization

${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt

${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions

Define this variable if you want to specify command-line options that tin should be started with to save typing them each time it is started. The contents of the environment variable are added to the front of the command-line options before it is parsed therefore allowing an option specified on the command-line to override the same option specified in the environment.
Define this variable if you do not want the .tin directory in $HOME/. E.g., if you want all tin's private files in /tmp/.tin you would set $TIN_HOMEDIR to /tmp.
Define this variable if you do not want the .news directory in ${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's news index files in /tmp/.news you would set $TIN_INDEX_NEWSDIR to /tmp.
Define this variable if you do not want the .mail directory in ${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's mail index files in /tmp/.mail you would set $TIN_INDEX_MAILDIR to /tmp.
Define this variable if you do not want the .save directory in ${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's save index files in /tmp/.save you would set $TIN_INDEX_SAVEDIR to /tmp.
Define this variable if you want to override the NEWSLIBDIR path that was compiled into the tin binary, default is /usr/lib/news. If tin is running in NNTP mode setting this variable has no effect.
Define this variable if you want to override the SPOOLDIR path that was compiled into the tin binary, default is /var/spool/news. If tin is running in NNTP mode setting this variable has no effect.
Define this variable if you want to override the NOVROOTDIR path that was compiled into the tin binary, default is SPOOLDIR (see above). If tin is running in NNTP mode setting this variable has no effect.
Define this variable if you want to override the OVERVIEW_FILE filename that was compiled into the tin binary, default is .overview. If tin is running in NNTP mode setting this variable has no effect.
Define this variable if you want to override the NEWSLIBDIR/active path that was compiled into the tin binary. If tin is running in NNTP mode setting this variable has no effect. If $TIN_LIBDIR is set it is prepended to $TIN_ACTIVEFILE.
The default NNTP server to remotely read news from. This variable only needs to be set if the ''-r'' command-line option is specified and the file /etc/news/server does not exist. The ''-g'' command line option overrides $NNTPSERVER.
The NNTP TCP-port to read news from. This variable only needs to be set if the TCP-port is not 119 (the default). The ''-p'' command-line option overrides $NNTPPORT.
Set the article header field ''Distribution:'' to the contents of the variable instead of the system default.
Set the ISO to ASCII charset decoding table character to use in decoding an article text. Values can range from -1 to 6.
-1
no conversion
0
universal table for many languages
1
single-spacing universal table
2
table for Danish, Dutch, German, Norwegian and Swedish
3
table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO 646 variant
4
table with RFC1345 codes in brackets
5
table for printers that allow overstriking with backspace
6
table for IBM PC character set (code page 437)
Set the article header field ''Organization:'' to the contents of the variable instead of the system default. If reading news on an Apollo DomainOS machine the environment variable $NEWSORG has to be used instead of $ORGANIZATION.
DomainOS specific, same as $ORGANIZATION on other OSs (see above).
Set the article header field ''Reply-To:'' to the return address specified by the variable. This is useful if you wish to receive replies at a different address.
Overrides the full name given in the gecos-field in /etc/passwd, see also mail_address.
Same as $NAME.
Pathname of the user's home directory. See environ(5) for more info.
This variable has precedence over the default mailer that is used in all mailing operations within tin.
Full path to the user's mailbox.
This variable has precedence over the default editor (i.e., vi(1)) that is used in all editing operations within tin (e.g., posting, replying, follow-ups, ...). Evaluation order is ${VISUAL:-"${EDITOR:-vi}"}. See environ(5) for more info.
If $VISUAL is unset, then this variable is looked up for a default editor. If $EDITOR and $VISUAL are both unset, tin uses the systems default editor (i.e. vi(1)) on UNIX-systems). See environ(5) for more info.
A new group is checked against the list of patterns; if it matches, tin subscribes the user to the group without further query. See the section "NEWSGROUP LISTS & WILDCARDS" for an explanation of the valid syntax. For example, setting

AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*

will automatically subscribe the user to all new groups in the comp.os.unix hierarchy, and all talk groups other than talk.politics groups (which will be queried for as usual). Of course this does not work if tin is started with the ''-X'' command-line switch.

Is handled like the $AUTOSUBSCRIBE variable, but groups matching the list are unsubscribed from without further query. For example, setting

AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*

will automatically unsubscribe the user from all new alt.flame groups and all groups starting with u (university groups) other than UK groups (which will be queried for as usual).

A pathname of a directory made available for tin to create temporary files.
This variable can be used to override the default path search for mailcap(5) files. See also tin(5).
Set this variable to disable the use of metamail(1) or a replacement (e.g. metamutt).
MIME character set used if not configured via the tinrc variable mm_charset.
Set this variable to point to ispell(1) or a replacement and its cmd-line options.
Define any additional options that you wish to pass to your pgp(1) or gpg(1) program.
Override the name of the pgp(1) directory in $HOME that holds your keys etc..
Override the name of the gpg(1) directory in $HOME that holds your keys etc..
This variable determines the locale(5) category for character handling functions. Usually it determines the character classes for pattern matching character classification and case conversion. Currently this is not true for tin (which temporary unsets $LC_CTYPE right before any match is done to avoid confusion). It's value should be of the form language[_territory][.codeset][@modifier]. See environ(5) for more information.
Formats of informative and diagnostic messages and interactive responses. It's value should be of the form language[_territory][.codeset][@modifier]. See locale(5) and environ(5) for more information.
Date and time formats. It's value should be of the form language[_territory][.codeset][@modifier]. See locale(5) and environ(5) for more information.
This variable overrides the value of the $LANG variable and any other $LC_ variable. It's value should be of the form language[_territory][.codeset]. See locale(5) and environ(5) for more information.
This variable determines the locale(5) category for any category not specifically selected with a variable starting with $LC_. It's value should be of the form language[_territory][.codeset]. See environ(5) for more information.
This variable defines a priority list for translations. Whenever a translation is not available in the language selected via $LC_ALL or $LANG the next language from the list is tried. It's value should be of the form language:language[:language]. See environ(5) for more information.
A decimal integer > 0 used to indicate the user's preferred width in column positions for the terminal screen or window. If this variable is unset or null, the implementation determines the number of columns, appropriate for the terminal or window. When $COLUMNS is set, any terminal-width information implied by $TERM will be overridden. Users and portable applications should not set $COLUMNS unless they wish to override the system selection and produce output unrelated to the terminal characteristics.
A decimal integer > 0 used to indicate the user's preferred number of lines on a page or the vertical screen or window size in lines. A line in this case is a vertical measure large enough to hold the tallest character in the character set being displayed. If this variable is unset or null, the implementation determines the number of lines, appropriate for the terminal or window. When $LINES is set, any terminal-height information implied by $TERM will be overridden. Users and portable applications should not set $LINES unless they wish to override the system selection.
The type of terminal in use. This is used when looking up termcap sequences. See environ(5) for more information.
Display name, pointing to the X server; required for xface.
Used for determining terminal's X window id; required for xface. Should be set by the terminal emulator.
The pathname of the user's login shell. Used to set default_shell_command.
The pathname of the user's dir to put non-essential run time files into.

tin handles a couple of signals:

Terminate gracefully.
Terminate gracefully.
Terminate gracefully but do not restore terminal (tty).
Write out ${TIN_HOMEDIR:-"$HOME"}/.newsrc-file.

If tin is started in debug mode (''-D n'') it will create world readable files in $TMPDIR which may contain the users NNTP password in cleartext. On multiuser-systems $TMPDIR should be set to a safe location before starting tin in debug mode (e.g. TMPDIR=$HOME tin -D 1).

tin does conform to the Base Definitions volume of IEEE Std 1003.1-2008, Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax Guidelines).

Regular expression support is provided by the PCRE library package pcre(3), which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England.
<ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/>

CNews NNTPd, noffle(1) (<= V1.0-pre5) and NewsCache (<= V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h and recompile.
Before mailing a bug-report to <tin-bugs@tin.org> please check if you are using the latest (stable) release, and if not, please upgrade first! Have a look at the doc/TODO file for known bugs. If you still think you've found a bug, please use the BugReport ('R') function and write in English. Please do NOT enclose a core-file in your bug-report until we request it.

tin is based on the tass(1) newsreader that was developed by Rich Skrenta and posted to alt.sources in March 1991; its first version was released on August 23rd 1991. tass(1) itself was heavily influenced by notesfiles a public domain UNIX version of PLATO Notes, developed at the University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version overview see
<http://www.tin.org/history.html>.

author of tass(1) v3.2 which this newsreader used as its base.
author of envarg.c environment variable reading routine.
author of sigfile.c random signature generation routines.
author of langinfo.c, charset.c and iso2asc.txt ISO-8859-1 documentation.
author of strftime.c date formatting routine.
author of wildmat.c pattern matching and parsdate.y date parsing routines.
author of curses.c from the elm(1) mailreader.
author of getline.c emacs(1) style editing routine.
for adding pgp(1) (Pretty Good Privacy) support.
for pcre(3) (Perl-compatible regular expression library).
for snprintf(3) and vsnprintf(3) fallbacks.

elm(1), emacs(1), gpg(1), inews(1), ispell(1), lp(1), lpr(1), metamail(1), noffle(1), perl(1), perlre(1), pgp(1), rn(1), sendmail(1), shar(1), slrnface(1), tass(1), unshar(1), uudecode(1), vi(1), xterm(1x), heapsort(3), iconv(3), iconv_open(3), nl_langinfo(3), pcre(3), pcrepattern(3), qsort(3), snprintf(3), strftime(3), vsnprintf(3), wildmat(3), environ(5), locale(5), mailcap(5), mbox(5), mmdf(5), newsoverview(5), tin(5), cron(8), RFC1345, RFC1524, RFC2045, RFC2046, RFC2047, RFC2048, RFC2231, RFC2980, RFC3977, RFC4155, RFC4643, RFC5322, RFC5536, RFC5537, RFC6048

December 24th, 2020 2.4.5