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.
Batch mode (''-Z''):
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 (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.
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.
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 have file permissions set to 0644. If you read news via NNTP, then your news server must support the LIST SUBSCRIPTIONS command. It is part of the Common NNTP Extensions (RFC2980) and all modern servers should understand it.
At the Selection level the title displays (the name of the
At the Selection level the title displays (the name of the newsserver and) the number of subscribed groups (containing new unread articles). The newsgroups are displayed in the middle of the screen with the number of unread articles displayed on the same line in front.
->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:
At the Group level the title contains the name of the group, the
At the Group level the title contains the name of the group, the number of conversation threads, the threading method, the limit of articles to get, the total number of articles, the number of hot articles, the number of recent articles and the number of killed articles. 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 in it it's marked with a 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.
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:
-> 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 RespNo 47 of 59 Urs Janssen <urs@akk.org> at Arbeitskreis Kultur und Kommunikati article-body
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 PageDown3 (<SPACE>)
Line Up Up arrow Up (k or ^P)
Line Down Down arrow Down (j or ^N)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.
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.
spam,delete,remove
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 (5).
When tin starts up the user's kill-file ${TIN_HOMEDIR-"$HOME"}/.tin/filter (see also (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.
The on-screen filtering menu is accessed by pressing '^K' 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:'' lines of an article. The kill description 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 kill description, edit the kill file or save the kill description.
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').
%A Address (Email) %D Date %F Full address (%N <%A>) %G Groupname %M Message-ID %N Fullname of author %C Firstname of author %I Initials of author
mail_quote_format=On %D in %G you wrote: news_quote_format=In %M, %F wrote:
On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote: In <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).MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES
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), regex 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 regex 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 default_maildir.
To save in savedir/<news.group.name>/<filename> format enter '+<filename>'. Environment variables are allowed within a filename (e.g., $SOURCES/dir/filename). See default_savedir.
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.
AUTOMATIC MAILING AND SAVING NEW NEWS
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(1) 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.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.
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.
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 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.
In general (i.e., for the group, thread and article menus),
In the group selection menu, if the mouse is pointing at a group then:
In the article menu, if the mouse is pointing at an article (or thread) then:
In the thread menu, if the mouse is pointing at an article then:
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 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 diskspace 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 form the system batcher cron(1) with the ''-u'' option:
30 6 * * * /usr/local/bin/tin -u
If you are low on local disk space you should consider using getart_limit to limit the size of cached indexes and also 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$MAILCAPS ${TIN_HOMEDIR-$HOME}/.mailcap /etc/mailcap /usr/etc/mailcap /usr/local/etc/mailcap /etc/mail/mailcap
/etc/nntpserver
${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
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.
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).