TIN(1)
โจ TIN(1) โจ โ Usenet newsreader ๐
okay bestie, gather round ๐ซถ this is the manual page for tin and rtin, aka your full-screen Usenet newsreader. it's giving iconic, it's giving old-school internet royalty ๐ and we're gonna read every single line together. no skimming, no cap.
๐ธ NAME ๐ธ
tin, rtin โ Usenet newsreader ๐ฆ
๐ SYNOPSIS ๐
tin [[-h|-H|-V] | [[-a] [-dlnq|-Q] [-ACkrTzxX]] [[-R|-S] -s News_dir]
[-cuvZ] [-4|-6] [-o|-w|-N|-M address] [-D debug_level] [-F filter_file]
[-G article_limit] [-f newsrc_file] [-g server[:port]] [-i
proto_article] [-J tinrc_file] [-L Message-ID] [-m Mail_dir] [-p port]
[-t timeout] [-I index_dir] [newsgroup[,...]]]
๐ DESCRIPTION ๐
tin is a full-screen, easy-to-use Usenet newsreader. she can read news locally (like in /var/spool/news) or remotely โ that's the rtin vibe, or tin -r โ via an NNTP (Network News Transport Protocol, RFC 3977) or NNTPS (RFC 8143) server. and she'll automatically use those NOV newsoverview(5)-style index files if they're available locally or via the NNTP [X]OVER command (RFC 2980, RFC 3977). slay โจ
tin has four separate levels of operation: Selection level, Group level, Thread level and Article level. use the Help (h) command to see a list of commands available at whatever level you're in. iykyk ๐
on startup, tin will show a list of the newsgroups found in ${TIN_HOMEDIR:-"$HOME"}/.newsrc. an arrow โ or a highlighted bar will point to the first newsgroup. move to a group using the terminal arrow keys (terminal dependent, bestie) or Down (j) and Up (k). use PgUp/PgDn (also 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. so handy fr fr ๐ธ
๐ช EXIT STATUS ๐ช
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.
๐ OPTIONS ๐
-4โ Force connecting via IPv4 to the remote NNTP server. Only available when built with IPv6 support. ๐-6โ Force connecting via IPv6 to the remote NNTP server. Only available when built with IPv6 support. ๐-aโ Toggle ANSI color (default is off). turn that glow on, bestie ๐-Aโ Force authentication on initial connect. Only available when reading via NNTP. See also${TIN_HOMEDIR:-"$HOME"}/.newsauthintin(5). ๐-cโ Create/update index files for every group in${TIN_HOMEDIR:-"$HOME"}/.newsrcor file specified by the-foption and mark all articles as read. ๐งน-Cโ Use COMPRESS NNTP extension (RFC 8054) if available. See alsonntp_read_timeout_secs,-tand the "SECURITY" and "BUGS" section. ๐๏ธ-dโ Don't load newsgroup descriptions and server's message of the day (interactive mode). ๐-Ddebug-level โ Enter debug-level, the levels can specified via number (should be avoided as it will be removed in the future) or name (case insensitive) as listed below. Use comma to give multiple levels, any combinations are allowed (e.g.,-D GNKSA,2,NNTP). If removal is requested it will be performed at startup and on normal termination (that is the files are only available while tin is running). ๐1โNNTP,NNTPS2โFILTER,ARTS4โNEWSRC,BITMAP8โTHREADING,REFS16โMEMORY,MALLOC32โATTRIBUTES64โMISC,GNKSA,ACTIVE127โALL,EVERYTHING128โREMOVE,DELETE
For NNTP-level -v controls the verbosity of the output. Depending on the debug-level various files may be written to $TMPDIR and/or on screen output may be given. See also the "SECURITY" section! ๐จ
-ffile โ Use the specified file of subscribed to newsgroups in place of${TIN_HOMEDIR:-"$HOME"}/.newsrcor a file specified via${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable. ๐-Ffile โ Use the specified filter file instead of${TIN_HOMEDIR:-"$HOME"}/.filter. ๐ง-gserver[:port] โ Use theserver[:port]and newsrc specified in${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable. Only available when reading via NNTP. If you want to give a port with a plain IPv6 address, the address must be enclosed in square brackets. ๐-Garticle-limit โ Limit the number of articles/group to retrieve from the server. If article-limit is> 0not more than the last article-limit articles/group are fetched from the server. If article-limit is< 0tin will start fetching articles from your first unread minus absolute value of article-limit. Default is0, which means no limit. ๐ข-hโ Help listing all command-line options. ๐-Hโ Brief introduction to tin that is also shown the first time it is started. ๐-iproto_article โ Import (append) a proto article to the${TIN_HOMEDIR:-"$HOME"}/.tin/postponed.articlesfile. The proto article then can be posted via Postponed (O,^O) or-wor even-o. The proto article should not be MIME encoded and have at least the following headers:From:,Subject:andNewsgroups:. Be aware that if-iis used in conjunction with-oall pending postponed articles will be posted, not just the one given with-i. ๐-Idir โ 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 andcache_overview_filesis turned off. ๐๏ธ-Jfile โ Use the specified tinrc file instead of${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. โ๏ธ-kโ Skip the certificate verification step for NNTPS connections and proceed without checking. This option implies-T. See also the "SECURITY" section. โ ๏ธ-lโ Get number of articles per group from the${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}file. If reading via NNTP this is done with theLISTcommand (RFC 3977). 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 viaLIST) and then check the article count via NNTPGROUPcommand (RFC 3977)-ln. If reading via NNTP andLIST COUNTS(RFC 6048) is available that is used instead as it gives more accurate article counts. ๐-LMessage-ID โ Show the message with the given Message-ID if available. Only available when reading via NNTP. ๐-mdir โ Mailbox directory to use. Default is${TIN_HOMEDIR:-"$HOME"}/Mail. ๐ฌ-Muser โ Mail unread articles to specified user for later reading. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS". ๐-nโ 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 speed up when connecting via a slow line, but tin may not be able to detect which groups are moderated. See also-l. ๐โโ๏ธ-Nโ Mail unread articles to yourself for later reading. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS". ๐ฅ-oโ Quick post all postponed articles and exit. In order for this to be really quick, it should be used with-nif possible. ๐-pport โ Port to use if reading via NNTP (default is119or563if NNTPS is enabled, see-T). This also overrides the environment variables$NNTPPORTand$NNTPSPORTif set. Only available when reading via NNTP. ๐-qโ Don't check for new newsgroups and skip loading the servers message of the day. ๐คซ-Qโ Quick start. Start tin as quickly as possible. Currently this is equivalent to-dnq. See also the-Cand-Gcommand-line options. โก-rโ Read news remotely from the default NNTP server specified in the environment variable$NNTPSERVERor contained in the file/etc/nntpserver. ๐-Rโ Read news saved by the-Soption. ๐-sdir โ Save/read articles to/in directory. Default is${TIN_HOMEDIR:-"$HOME"}/News. ๐พ-Sโ Save unread articles for later reading by the-Roption. For more information read section "AUTOMATIC MAILING AND SAVING NEW NEWS". ๐ฆ-ttimeout โ Override thenntp_read_timeout_secssetting. Default is120seconds, allowed maximum is16383. โณ-Tโ Enable NNTPS (NNTP over TLS). This also overrides the environment variable$NNTPSPORTif set. Only available when reading via NNTP. ๐-uโ Create/update index files for every group in${TIN_HOMEDIR:-"$HOME"}/.newsrcor file specified by the-foption. This option is disabled if tin retrieves its index files via an NNTP server andcache_overview_filesis turned off. ๐๏ธ-vโ Verbose mode for-c,-D,-M,-N,-S,-u,-Vand-Zoptions. Can be used multiple times to increase verbosity. ๐ฃ๏ธ-Vโ Print version information and compilation options. ๐ท๏ธ-wโ Quick mode to post an article to a group and then exit. This option implies-d. In order for this to be really quick, it should be used with-nif possible. โ๏ธ-xโ No-posting mode. You cannot post articles if you use this option. ๐ซ-Xโ No overwrite mode.${TIN_HOMEDIR:-"$HOME"}/.newsrcand files in${TIN_HOMEDIR:-"$HOME"}/.tinwill not be overwritten but may be created if they don't exist. Should be used with-xif possible. ๐ก๏ธ-zโ 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. ๐-Zโ vibe-check if there's any new/unread news and then bail out with the appropriate exit status. Slap-von there too and it prints how many unread articles are sitting in each group. Exit codes are:0= no news,1= something went wrong ๐ญ,2= new/unread news exists. Chef's kiss for scripting, fr fr. ๐ซถ
Okay so tin can also switch up its own options on the fly via the OptionMenu (M) command. Any changes you make get written to ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. Wanna know more? Go peek at the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" and also tin(5). โจ
A list of groups can be dropped after all the other command-line options, which is lowkey iconic if you wanna yank in or subscribe to a hand-picked subset of the active newsgroups. The patterns tin gets? They're explained in "NEWSGROUP LISTS & WILDCARDS".
If you name a single group, or a wildcard that only matches one group, bestie you're going straight into that group. Anything else and the normal group selection screen shows up โ except all your matching groups are hanging out in there too, like you'd yanked just those ones in. ๐
With the -w flag, a given group-name becomes the default group to post to. Specify more than one group, or a wildcard? Only the first group โ or the first group that matches โ gets used.
Heads up: the moment you use SelectYankActive (y) to yank in all active groups, or SelectToggleReadDisplay (r) to flip the read/unread status, your command-line groups are gone. Use SelectSyncWithActive (Y) to reread the${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}file and get them back. ๐
NB: with the -n flag, if you're reading via NNTP it can happen that only unsubscribed groups in the ${TIN_HOMEDIR:-"$HOME"}/.newsrc file (or the newsrc-file you gave with the -f command-line switch, or via ${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable) can be matched. Not me finding out the hard way ๐
Command-line options have higher priority than attributes and tinrc options. So a command-line option wins over configured values โ with one single exception: if a port is given for the newsserver in ${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable, that port overrides any port given on the command-line. Periodt. Also, the order of command-line options doesn't matter at all. If they're mutually exclusive, the one with the highest priority gets chosen and a warning may pop up. ๐
๐ USAGE ๐
๐ NEWS ADMINISTRATION ๐
Maintaining Netnews on large networks of machines can be a pretty time-consuming job โ ask me how I know, I discovered it the hard way when I got handed the job of maintaining our news system and news users. ๐ญ
A user starting tin for the very first time can be automatically subscribed to a list of newsgroups that the news administrator deems appropriate. That subscriptions file should be created in your news lib directory โ i.e. ${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions โ and it should be world readable. And if you read news via NNTP, then your news server has to support the LIST SUBSCRIPTIONS command. It's part of the NNTP List Extensions (RFC 6048) and all modern servers should understand it. Slay. โจ
๐ฆ SCREEN FORMAT ๐ฆ
tin has four separate levels of operation: Selection level, Group level, Thread level and Article level. Four levels, one icon. ๐
At the Selection level the title displays (the name of the news server โ with a "[T]"- or "[k]"-suffix if reading via NNTPS (insecurely) โ and) the number of subscribed groups (containing new unread articles). The newsgroups show up in the middle of the screen, usually with the number of unread articles on the same line right in front of them, but that 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. Explanation time, bestie:
uโ this group is unsubscribed. Wanna see only your subscribed groups? Use the SelectToggleReadDisplay (r) or SelectYankActive (y) toggle keys.Mโ this is a moderated group. Any posts you make have to be approved by the group administrator before they go public.tinwill ask for confirmation before you post to a moderated group.Nโ this is a new newsgroup, created since you last usedtin. New newsgroups are not subscribed to by default (though, see the$AUTOSUBSCRIBE/$AUTOUNSUBSCRIBEenvironment variables). Subscribe to it the normal way if you want it to keep appearing in your Selection Menu. Just ignore new newsgroups and they'll be gone next time you starttinโ but then you'll have to yank in all the groups to find them in a later session. ๐Dโ this group no longer exists. If you don't wanna see it anymore, unsubscribe from it the normal way. This flag only appears if you setstrip_bogusto"Mark with D on selection screen"in the Options Menu.Xโ you may no longer make posts to this group. Often a group gets superseded by a more appropriately named one.=โ this group has been renamed and you may no longer post to it. If you do, you'll get 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 depend on configuration and on whether show_only_unread_arts is currently active or not. Some numbers could be missing if the specific option isn't enabled. It might also contain an M, X or = (see above; may not 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's 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 the section "FILTERING ARTICLES"), it's marked with art_marked_selected in front of the total number of articles in the thread. 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 it can be customized via thread_format:
-> 1 [ 7] What is this funny tree in the thre 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". ๐จ
๐ COMMON MOVING KEYS ๐
This is the table of the common keys for moving around all levels within tin. No cap. ๐น๏ธ
- Beg. of list/article โ
Homeon ANSI/vt100,FirstPage (^)on other terminals - End of list/article โ
Endon ANSI/vt100,LastPage ($)on other terminals - Page Up โ
PgUpon ANSI/vt100,PageUp (u, ^U or ^B)on other terminals - Page Down โ
PgDnon ANSI/vt100,PageDown (^D or ^F or <SPACE>)on other terminals - Line Up โ
Up arrowon ANSI/vt100,Up (k or ^P)on other terminals - Line Down โ
Down arrowon ANSI/vt100,Down (j or ^N)on other terminals
๐ธ COMMON EDITING COMMANDS ๐ธ
An emacs(1) style editing package lets you edit input strings with zero stress. And there's a history list so you can reuse previously entered strings like it's nothing. Besides the cursor keys, these commands are available while you're 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 there are 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. ๐ญ
โญ GLOBAL COMMANDS โญ
These commands are available at all 4 menu levels and always have the same effect. Iconic behaviour tbh.
- ShellEscape
'!'โ shell escape. ShellEscape by itself launches a shell; ShellEscape <command> runs an external <command>. This facility may have been disabled by the System Administrator. ๐ - ToggleColor
'&'โ toggle use of ANSI color. - RedrawScr
'^L'โ redraw the current screen. - ScrollUp
'<'โ scroll screen up by one line. - ScrollDown
'>'โ scroll screen down by one line.
Postponed O, ^O
Bestie, this is the "I'll deal with it later" button ๐ โ it reloads a postponed article.
Heads up tho: if your system is being weird and blocks the Postponed key, you have to quote it first by pressing ^V (CTRL-V). Sneaky little workaround, no cap.
The postpone-menu offers these actions:
- PromptYes (
y) โ reload and spawn editor ๐๏ธ - PostponeOverride (
Y) โ post the article (without spawning editor) - PostponeAll (
A) โ post all postponed articles (without spawning editor) - PromptNo (
n) โ skip this article - Quit (
q) โ quit the postponed menu
Real talk: currently there is no "simple" way to delete a postponed article from the postponed-file. You have to do this whole little ritual instead: reload it with Postponed, enter the editor with PromptYes (y), quit the editor, discard the posting with Quit (^O,y,q). Iconic? no. Works? yes. โจ
See also the -o command-line switch.
Help h
Help screen of all the commands available on whatever menu you're currently on. You can use SearchSubjF (/), SearchSubjB (?) and SearchRepeat (\) to search on this screen. Quit (q) takes you back to the menu. ๐
ToggleHelpDisplay H
Toggles the display of the help mini menu at the bottom of the screen, plus the posting etiquette that shows up after composing an article (beginner_level). ๐ธ
DisplayPostHist W
Lists the articles posted by user โ the date posted, the newsgroup and the subject all get listed. Peep the "POSTING HISTORY LISTING" section for more. ๐
Version v
Prints tin version information. ๐
๐ฆ NEWSGROUP SELECTION COMMANDS ๐ฆ
4โ select group 4, bestie.
MarkAncientArtRead ^E
Mark all articles in the current group older than a given time in days, or a date string formatted according to RFC 5322, as read. โณ
SelectResetNewsrc ^R
Reset ${TIN_HOMEDIR:-"$HOME"}/.newsrc file.
โ ๏ธ This will destroy all records of which articles have been read, so use this carefully. I'm serious, bestie, be careful. ๐ญ
SetRange #
Choose a range of articles to be affected by the next command. See the "RANGES" section for the tea. ๐
SelectSortActive .
Sort the list of newsgroups. ๐ค
SearchRepeat \
Repeat the previous search. ๐
SearchSubjF /
Search for a group by name and description (if displayed). ๐
SearchSubjB ?
Backward search through the group names and descriptions. โฌ๏ธ
SelectReadGrp ^J, <CR>
Read current group. ๐
SelectEnterNextUnreadGrp <TAB>, n
Enter next group with unread news. Will wrap around to the beginning of the group selection list looking for unread groups. ๐
Catchup c
Make current group as all read [after confirmation] and move to the next group in the group selection list. โ
CatchupNextUnread C
Mark current group as all read [after confirmation] and enter the next unread group in the group selection list. โ
SelectToggleDescriptions d
Toggle display to show just the group name, or the group name and the group descriptions. ๐
EditFilter E
Edit the filter file and reload it afterward. ๐งน
SelectGoto g
Choose a new group by name. This command can be used to access any group, even those not currently yanked in. ๐ช
ToggleInfoLastLine i
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. โน๏ธ
ToggleInverseVideo I
Toggle inverse video. ๐จ
ConnectionInfo J
Show details about current connection. ๐
LookupMessage L
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 (RFC 2980, RFC 3977) or XPAT (RFC 2980). ๐ต๏ธ
SelectMoveGrp m
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. ๐
OptionMenu M
User configurable options menu (for more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"). โ๏ธ
SelectNextUnreadGrp N
Positions the cursor on the next group with unread articles in it. ๐ฏ
Quit q
Quit tin โ ask the user to confirm if confirm_choice is set accordingly. ๐
QuitTin Q
Quit tin โ don't ask the user to confirm. ๐จ
SelectToggleReadDisplay r
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. ๐
BugReport R
Mail a bug report or comment to <tin-bugs@tin.org>. This is the best way of getting bugs fixed and features added/changed. ๐
SelectSubscribe s
Subscribe to current group. ๐
SelectSubscribePat S
Subscribe to groups matching user specified pattern. See the section "NEWSGROUP LISTS & WILDCARDS" for the types of pattern that tin understands. โจ
SelectUnsubscribe u
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. ๐๏ธ
SelectUnsubscribePat U
Unsubscribe to groups matching user specified pattern. See the section "NEWSGROUP LISTS & WILDCARDS" for the types of pattern that tin understands. โจ
Post w
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 the -o command-line switch) or discard it via Quit (q). ๐ฎ
SelectQuitNoWrite X
Quit tin without saving any changes to the configuration. ๐ซ
SelectYankActive y
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. ๐ชฃ
SelectSyncWithActive Y
Reread the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file to see if any new news has arrived since starting tin. ๐ก
SelectMarkGrpUnread z, Z
Mark all articles in the current group as unread. ๐ค
๐ GROUP INDEX COMMANDS ๐
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.
MenuFilterSelect ^A
Auto select article(s) using a menu. Read the section "FILTERING ARTICLES" for more information. ๐๏ธ
MarkAncientArtRead ^E
Mark all articles in the current group older than a given time in days, or a date string formatted according to RFC 5322, as read. โณ
MenuFilterKill ^K
Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more information. ๐
MarkFeedRead ^X
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. โ
MarkFeedUnread ^W
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. ๐ค
SetRange #
Choose a range of articles to be affected by the next command. See the section "RANGES" for more information. ๐
LastViewed -
Re-enter the last message that was viewed. โช
SearchRepeat \
Repeat the previous search. ๐
SearchSubjF /
Search forward for specified subject. ๐
SearchSubjB ?
Search backward for specified subject. ๐
GroupSelThd *
Select current thread for later processing. ๐งต
GroupDoAutoSel +
Selects all threads in current group. It is a shortcut for calling GroupSelPattern with a pattern of *. โก
GroupToggleThdSel .
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. ๐
GroupSelThdIfUnreadSelected ;
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. ๐
GroupSelPattern =
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 reuse the last pattern that was entered. ๐ฏ
GroupReverseSel @
Reverse all selections on all articles. ๐
GroupUndoSel ~
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 |
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. ๐ฐ
QuickFilterSelect '['โ Auto-select article(s) with a single key (after confirmation, bestie ๐ ). The defaults for selection come from these four tinrc config variables:default_filter_select_case,default_filter_select_expire,default_filter_select_globalanddefault_filter_select_header. Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for the full explanation of these variables, and "FILTERING ARTICLES" for more info on filtering. โจQuickFilterKill ']'โ Kill article(s) with a single key (after confirmation ๐). The defaults for killing come from these four tinrc config variables:default_filter_kill_case,default_filter_kill_expire,default_filter_kill_globalanddefault_filter_kill_header. Read the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for the full explanation of these variables, and "FILTERING ARTICLES" for more info on filtering. ๐GroupReadBasenote '^J' '<CR>'โ Read current article. That's it. That's the vibe. ๐GroupNextUnreadArtOrGrp '<TAB>'โ View next unread article or group. Slay. ๐ฆSearchAuthF 'a'โ Author forward search. This searches for articles with a specific''From:''line. ๐SearchAuthB 'A'โ Author backward search. Otherwise, seeSearchAuthF ('a')above. ๐SearchBody 'B'โ Search the body of all articles in group (ngl, can be slow ๐ญ). You can abort the search usingQuit ('q'). ๐Catchup 'c'โ Mark all articles as read (after confirmation) then return to the group selection list. Move cursor to next group. โCatchupNextUnread 'C'โ Mark all articles as read (after confirmation) and enter the next group with unread news. ๐ฅGroupToggleSubjDisplay 'd'โ Cycle the display of the author through all the possible options for the tinrc variableshow_author. ๐GroupCancel 'D'โ 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'. โ ๏ธEditFilter 'E'โ Edit the filter file and reload it afterward. ๐งGroupGoto 'g'โ Choose a new group by name. This command can be used to access any group, even those not currently yanked in. ๐GroupToggleGetartLimit 'G'โ Toggle article/group limit. ๐๏ธToggleInfoLastLine 'i'โ Display the subject of the first article in the current thread in the last line. ๐ฌToggleInverseVideo 'I'โ Toggle inverse video. ๐ConnectionInfo 'J'โ Show details about current connection. ๐กGroupMarkThdRead 'K'โ 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. ๐ท๏ธGroupListThd 'l'โ Open the thread under the current cursor position. ๐งตLookupMessage 'L'โ Look up article by''Message-ID:''. If not reading via NNTP or the server neither supports[X]HDR (RFC 2980, RFC 3977)norXPAT (RFC 2980), only the IDs in the current group are searched. ๐GroupMail 'm'โ 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. ๐งOptionMenu 'M'โ User configurable options menu (for more information see section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"). โ๏ธGroupNextGroup 'n'โ Go to next group. โก๏ธGroupNextUnreadArt 'N'โ Go to the next unread article. โญ๏ธPrint 'o'โ 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. ๐จ๏ธGroupPrevGroup 'p'โ Go to previous group. โฌ ๏ธGroupPrevUnreadArt 'P'โ Go to previous unread article. โฎ๏ธQuit 'q'โ Return to previous level. ๐ชQuitTin 'Q'โ Quit tin โ don't ask the user to confirm. ๐GroupToggleReadUnread 'r'โ Toggle the display between all articles and unread articles. ๐BugReport 'R'โ Mail a bug report or comment to<tin-bugs@tin.org>. This is the best way of getting bugs fixed and features added/changed. ๐GroupSave 's'โ 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. ๐พGroupAutoSave 'S'โ Save marked articles automatically without further prompting. ๐คGroupTag 't'โ Toggle tag-status of current article / thread forGroupMail ('m') / Pipe ('|') / Print ('o') / GroupSave ('s') / GroupRepost ('x'). ๐ท๏ธGroupTagParts 'T'โ Automatically tag/untag all the parts of the current multi-part message in order. ๐งฉGroupToggleThreading 'u'โ 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). ๐งตGroupUntag 'U'โ Untag all articles that were tagged. โPost 'w'โ Post an article to the current group. If posting fails for some reason, you'll get the chance to edit the article again viaPostEdit ('e'), postpone it for later processing viaPostPostpone ('o')(see also''-o''command-line switch) or discard it viaQuit ('q'). โ๏ธGroupRepost 'x'โ 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. ๐ซGroupMarkUnselArtRead 'X'โ 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. PressingGroupMarkUnselArtRead ('X')again will toggle back to the way it was before. SeeGroupUndoSel ('~')command for clearing the toggle effect, leaving the group will also clear the toggle effect and make the changes permanent. ๐MarkArtUnread 'z'โ Mark current article as unread. ๐MarkThdUnread 'Z'โ 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. ๐
โจ THREAD LISTING COMMANDS โจ
4โ Select article 4 within thread. ๐ขMenuFilterSelect '^A'โ Auto select article(s) using a menu. Read the section "FILTERING ARTICLES" for more information. ๐๏ธMenuFilterKill '^K'โ Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more information. ๐๏ธMarkFeedRead '^X'โ 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. โMarkFeedUnread '^W'โ 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. ๐SetRange '#'โ Choose a range of articles to be affected by the next command. See the section "RANGES" for more information. ๐LastViewed '-'โ Re-enter the last message that was viewed. ๐SearchRepeat '\'โ Repeat the previous search. ๐SearchSubjF '/'โ Search forward for specified subject. ๐SearchSubjB '?'โ Search backward for specified subject. ๐ThreadSelArt '*'โ Select current thread for later processing. ๐งตThreadToggleArtSel '.'โ Toggle selection of current article. ๐ThreadReverseSel '@'โ Reverse article selections. ๐ThreadUndoSel '~'โ Undo all selections on current thread. โฉ๏ธPipe '|'โ 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. ๐คThreadReadArt '^J' '<CR>'โ Read current article within thread. ๐ThreadReadNextArtOrThread '<TAB>'โ View next unread article within thread. โญ๏ธSearchAuthF 'a'โ 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. ๐SearchAuthB 'A'โ Author backward search. Otherwise, seeSearchAuthF ('a')above. ๐SearchBody 'B'โ Search the body of all articles in group (can be slow). You can abort the search usingQuit ('q'). ๐Catchup 'c'โ Mark thread as read (after confirmation) and return to the group index page. Move cursor to next thread. โCatchupNextUnread 'C'โ Mark thread as read (after confirmation) and enter the next thread containing unread news. ๐ฅThreadToggleSubjDisplay 'd'โ Cycle the display of the author through all the possible options for the tinrc variableshow_author. ๐ThreadCancel 'D'โ 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'. โ ๏ธEditFilter 'E'โ Edit the filter file and reload it afterward. ๐งThreadFollowupQuote 'f'โ Post a followup to the current article with a copy of the article included. ๐ฌThreadFollowup 'F'โ Post a followup to the current article without a copy of the article included. ๐ฌToggleInfoLastLine'i'โ puts the subject of the current article riiight there in the last line. like, the actual bottom line of your terminal. so handy bestie โจToggleInverseVideo'I'โ flip the inverse video on/off. yes, the whole vibe inverts ๐ConnectionInfo'J'โ shows you the details about the current connection. nosy in the best way ๐ฆThreadMarkArtRead'K'โ marks the article as read and bounces you to the next unread one. if a range of articles is set, it marks the range as read instead of just the current article. and when there are tagged articles hanging around, it hits you with a prompt asking how to proceed. iykyk ๐LookupMessage'L'โ looks up an article byMessage-ID:. if you're not reading via NNTP, or the server supports neither[X]HDR(RFC 2980, RFC 3977) norXPAT(RFC 2980), then only the IDs in the current group get searched. lowkey limited but it is what it is ๐ThreadMail'm'โ mails the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to someone. head to the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for the full tea ๐ซถPrint'o'โ sends the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to the printer. yes, an actual printer, in this economy ๐ญ. more deets in "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"Quit'q'โ return to the previous level. just one step back bestie, no drama ๐ธQuitTin'Q'โ quit tin entirely, and it will not ask the user to confirm. it's giving main character exit, no goodbyes ๐BugReport'R'โ mails a bug report or a comment to<tin-bugs@tin.org>. fr fr this is the best way of getting bugs fixed and features added/changed, so if you love it, tell them ๐ฅฐThreadSave's'โ saves the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles. the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" has the lore ๐ThreadAutoSave'S'โ saves the marked articles automatically, no further prompting. silent, efficient, iconic โจThreadTag't'โ toggles the tag status of the current article, so you can mail, pipe, print, save or repost it later. collecting articles like they're stickers ๐ThreadTagParts'T'โ automatically tags/untags all the parts of the current multi-part message, in order. so satisfying when it lines up ๐ThreadUntag'U'โ untags all the tagged threads. clean slate, fresh start ๐งPost'w'โ posts an article to the current group. if posting fails for some reason, you get another shot: edit the article again viaPostEdit('e'), postpone it for later processing viaPostPostpone('o') (see also the'-o'command-line switch), or discard it viaQuit('q'). no pressure, you got options ๐ซถMarkArtUnread'z'โ marks the current article in the thread as unread. if a range of articles is set, it marks the range as unread instead of the current article. and when tagged articles are present, a prompt asks how to proceed. ๐MarkThdUnread'Z'โ marks all articles in the thread as unread. whole thread, back to unread, periodt ๐
๐ธ ARTICLE VIEWER COMMANDS ๐ธ
0โ read the first (base) article in this thread.4โ read response 4 in this thread.MenuFilterSelect'^A'โ auto selects article(s) using a menu. the section "FILTERING ARTICLES" has the whole story ๐ฅPageReplyQuoteHeaders'^E'โ replies through mail to the author of the current article, with a copy of the article and all headers included. citation game strong ๐ฉPagePGPCheckArticle'^G'โ performspgp(1)/gpg(1)operations on the article. heads up: this expects inline pgp (RFC 9580) and not MIME pgp (RFC 3156). read the spec bestie ๐PageToggleRaw'^H'โ toggles the display mode between raw (including all headers) and cooked. ๐ณMenuFilterKill'^K'โ kills article(s) using a menu. see "FILTERING ARTICLES" for the details ๐PageToggleTabs'^T'โ toggles the TAB width between 4 and 8 characters. pick your fighter ๐ธPageFollowupQuoteHeaders'^W'โ posts a followup to the current article with a copy of the article with all headers included.PageToggleTex2iso'"'โ toggles TeX to ISO decoding for the current article. the default behavior comes from thetex2iso_convvariable in the tinrc file. โจPageToggleAllHeaders'*'โ toggles the display of all headers vs. the headers listed innews_headers_to_display. ๐PageArticleInfo'''โ detailed MIME information of the article. the receipts, if you will ๐งพPageToggleRot'%'โ toggles ROT-13 decoding for this article. retro cipher moment ๐ฅPageToggleInlineData'('โ toggles the display of data sections outside of MIME, likeuuencodedoryencdata. the default behavior comes from thehide_inline_datavariable in the tinrc file. ๐ซถPageReveal')'โ okay so the form feed 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 form feed 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, and scrolling up will hide it again. no spoilers bestie ๐ซฃLastViewed'-'โ re-enters the last message that was viewed. like a little back button for your attention span ๐SearchRepeat'\'โ repeats the previous search. lazy girl's best friend, honestly ๐SearchSubjF'/'โ forward search the text of this article.SearchSubjB'?'โ backward search the text of this article.PageSkipIncludedText':'โ skips to the end of the next quoted text-block in this article. quoted text is everything which matchesquote_regex,quote_regex2orquote_regex3. bye to the wall of quotes ๐PageTopThd'<'โ go to the first article in the current thread.PageBotThd'>'โ go to the last article in the current thread.PageToggleHighlight'_'โ toggles word highlighting on/off. โจPageToggleVerbatim','โ cycles through the various options ofverbatim_handling. ๐Pipe'|'โ pipes the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles into a command. see "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more ๐ซถQuickFilterSelect'['โ auto selects article(s) with a single key. the defaults used for selection are set based upon these four tinrc config variables:default_filter_select_case,default_filter_select_expire,default_filter_select_globalanddefault_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 on filtering. one key, big power ๐QuickFilterKill']'โ kills article(s) with a single key. the defaults used for killing are based upon these four tinrc config variables:default_filter_kill_case,default_filter_kill_expire,default_filter_kill_globalanddefault_filter_kill_header. read "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for the full explanation of those variables, and "FILTERING ARTICLES" for the filtering tea. ๐PageNextThd'^J''<CR>'โ go to the next base article.PageNextUnread'<TAB>'โ go to the next unread article. if the tinrc variablegoto_next_unreaddoesn't containPageNextUnread, then this key will first page through the current article. ๐ฆSearchAuthF'a'โ author forward search.SearchAuthB'A'โ author backward search.SearchBody'B'โ searches the body of all articles in the group (can be slow ๐). you can abort the search usingQuit('q').Catchup'c'โ marks the current thread as read [after confirmation] and returns to the previous menu. moves the cursor to the next item. ๐CatchupNextUnread'C'โ marks the rest of the current thread as read [after confirmation] and enters the next thread with unread articles. โจPageCancel'D'โ cancels (deletes) or supersedes (overwrites) 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'. big moves, use responsibly ๐ฅPageEditArticle'e'โ edits the current article. this is restricted to mailgroups and saved news. ๐ซถEditFilter'E'โ edits the filter file and reloads it afterward. ๐งPageFollowupQuote'f'โ posts a followup to the current article with a copy of the article included.PageFollowup'F'โ posts a followup to the current article without including a copy of the article. clean and unfussy ๐PageFirstPage'g'โ go to the start of the article.PageLastPage'G'โ go to the end of the article.ToggleInfoLastLine'i'โ displays the subject of the current article in the last line. โจToggleInverseVideo'I'โ toggles inverse video.ConnectionInfo'J'โ shows details about the current connection. ๐ธPageKillThd'K'โ marks the rest of the thread as read and moves onto the next unread thread. ๐PageListThd'l'โ shows the thread menu that the current article is a part of. see the family tree ๐ณLookupMessage'L'โ looks up an article byMessage-ID:. if you're not reading via NNTP, or the server supports neither[X]HDR(RFC 2980, RFC 3977) norXPAT(RFC 2980), then only the IDs in the current group get searched. ๐PageMail'm'โ mails the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to someone. see "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more. ๐ฉOptionMenu'M'โ the user configurable options menu (for more information see the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"). your settings, your rules ๐PageNextArt'n'โ go to the next article.PageNextUnreadArt'N'โ go to the next unread article.Print'o'โ sends the current article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles to the printer. see "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more. ๐ญPagePrevArt'p'โ go to the previous article.PagePrevUnreadArt'P'โ go to the previous unread article.Quit'q'โ return to the previous level.QuitTin'Q'โ quit tin โ don't ask the user to confirm. no takebacks bestie ๐PageReplyQuote'r'โ replies through mail to the author of the current article with a copy of the article included. ๐ซถPageReply'R'โ reply by mail to whoever wrote the article you're looking at, and no, you don't drag the original article along with you. just the reply, bestie ๐PageSave's'โ save the current article / thread / the auto-selected (hot) ones / articles matching a pattern / tagged articles. the whole deets live in the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" ๐พPageAutoSave'S'โ save your marked articles automatically, no further prompting, it just goes. slay.PageTag't'โ toggle the tag status of the current article so you can mail, pipe, print, save or repost it. tagging is literally the group-chat @ mention of Usenet ๐ท๏ธPageGroupSel'T'โ bounce back up to group selection level.PageGotoParent'u'โ go to the parent article. yes, the article has a parent, it's giving family tree ๐ณPageViewUrl'U'โ show a list of all the URLs chilling in the current article. more in the section "URL LISTING" ๐PageViewAttach'V'โ show a list of the current article's attachments. more in the section "ATTACHMENT LISTING" ๐Post'w'โ post an article to the current group. and if posting fails for whatever reason (rude), you get another shot: edit it again withPostEdit('e'), postpone it for later processing withPostPostpone('o') (also peep the'-o'command-line switch), or just yeet it withQuit('q'). โจPageRepost'x'โ repost an already-posted article / thread / auto-selected (hot) articles / articles matching pattern / tagged articles into another newsgroup (or several). super useful for reposting from global to local newsgroups.
bestie, do not use this to crosspost your own articles. that's not the vibe. ๐ซ
MarkArtUnread'z'โ mark the article as unread.MarkThdUnread'Z'โ mark the whole current thread as unread.
โจ URL LISTING โจ
PageViewUrl ('U') pulls up a list of every URL in the current article. on top of the usual moving keys, you've got these:
UrlSelect'^J''<CR>'โ the current URL gets prompted and opened using theurl_handler.'<ESC>'or giving no input at all skips the URL. no pressure ๐SearchSubjF'/'โ URL forward search.SearchSubjB'?'โ URL backward search.SearchRepeat'\'โ repeat the previous search.ShellEscape'!'โ shell escape.ToggleInfoLastLine'i'โ toggle showing the current URL in the last line.Help'h'โ help screen of commands available.ToggleHelpDisplay'H'โ toggle the display of the help mini menu at the bottom of the screen and the posting etiquette after composing an article (beginner_level).
๐ ATTACHMENT LISTING ๐
PageViewAttach ('V') shows you a list of attachments on the current article. on top of the usual moving keys, here's what you can do:
AttachPipe'p'โ pipe the attachment into a command.AttachSave's'โ save the current attachment / tagged attachments to disk.AttachSelect'^J''<CR>'โ view the attachment.AttachTag't'โ tag one or more attachments for saving.AttachTagPattern'='โ prompts you for a pattern to match. every attachment whose name/description or content type/transfer encoding matches that pattern gets tagged. โจAttachToggleTagged'@'โ reverse the tagging of all attachments.AttachUntag'U'โ untag every tagged attachment.SearchSubjF'/'โ attachment forward search.SearchSubjB'?'โ attachment backward search.SearchRepeat'\'โ repeat the previous search.GlobalPipe'|'โ pipe the attachment into a command. heads up: this uses the raw attachment, no decoding is done. no cap.ShellEscape'!'โ shell escape.ToggleInfoLastLine'i'โ toggle showing the name/description of the current attachment in the last line.Help'h'โ help screen of commands available.ToggleHelpDisplay'H'โ toggle the display of the help mini menu at the bottom of the screen and the posting etiquette after composing an article (beginner_level).
๐ POSTING HISTORY LISTING ๐
DisplayPostHist ('W') shows you a list of every article you've posted before, all stored in ${TIN_HOMEDIR:-"$HOME"}/.tin/posted. here's what it shows you: a time stamp in "dd-mm-yy"-format, a single letter telling you which action kicked off the message, the group names (possibly shortened, see also abbreviate_groupname) or a mail address the message was sent to, and the subject of the message. on top of the usual moving keys, you get:
PostedArticlesSelect'^J''<CR>'โ the article with the currentMessage-ID:gets opened, if it's available. quick note though: this requires that theMessage-ID:of the article was recorded in${TIN_HOMEDIR:-"$HOME"}/.tin/posted, which may not always be the case. if you're using NNTP and the internal inews (inews_progset to"--internal") and either the server proposes aMessage-ID:during the POST (RFC 3977) command, or tin is built to generateMessage-ID:, then this should be the case. with an external inews (and reading from local spool) it is not.SearchSubjF'/'โ URL forward search.SearchSubjB'?'โ URL backward search.SearchRepeat'\'โ repeat the previous search.ShellEscape'!'โ shell escape.ToggleInfoLastLine'i'โ toggle showing the currentMessage-ID:in the last line.Help'h'โ help screen of commands available.ToggleHelpDisplay'H'โ toggle the display of the help mini menu at the bottom of the screen and the posting etiquette after composing an article (beginner_level).
๐ GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES ๐
okay so at startup, tin reads in the configuration files (also see tin(5)). they're full of variables that configure how tin behaves. if it exists, the global config file, /etc/tin/tinrc, gets read first. after that, your own config file gets read from ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. the global one is iconic for handing system-wide defaults to new users who don't have a private tinrc yet.
you can configure all these variables yourself by editing ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc directly. most of them can also be set in the GLOBAL OPTIONS MENU, which you reach by pressing OptionMenu ('M') at any level. it lets you customize how tin behaves. the options get saved to ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc when you exit tin โ so don't edit that file directly while tin is running, bestie, that's how you get chaos. ๐ญ
in the options menu, use the cursor keys the normal way to move around. use ConfigSelect ('^J' or '<CR>') to 'open' the option you wanna change. you'll need to enter a new value, or use '<SPACE>' to toggle through the available options. ConfigSelect saves the new value; '<ESC>' aborts without saving your changes. ๐ซถ
same as the other menus, RedrawScr ('^L') redraws 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 gives you access to the attributes menu for the current group via the ConfigToggleAttrib ('<TAB>') command. press ConfigToggleAttrib again and you toggle back to the options menu. more info in the section "ATTRIBUTES MENU AND GROUP ATTRIBUTES".
the ConfigScopeMenu ('S') command brings up the scopes menu. more info in the section "SCOPES MENU".
and finally, the ConfigServerrcMenu ('s') command brings up the serverrc menu, where you can change values from ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/serverrc. more info in the section "SERVERRC MENU".
here's the full list of every available variable, bestie. the name in round brackets is the name of the corresponding setting in ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc. ๐
- Abbreviate long newsgroup names (
abbreviate_groupname) โ 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. - Add posted articles to filter (
add_posted_to_filter) โ if ON, add posted articles which start a new thread to filter for highlighting follow-ups. Default is ON. - Insert
User-Agent:-header (advertising) โ turn ON advertising in header (User-Agent:). Default is ON. - Skip multipart/alternative parts (
alternative_handling) โ if ON, strip multipart/alternative messages automatically. Default is ON. - Character to show deleted articles (
art_marked_deleted) โ the character used to show that an article was deleted. Default is'D'. - Character to show inrange articles (
art_marked_inrange) โ the character used to show that an article is in a range. Default is'#'. - Character to show returning arts (
art_marked_return) โ the character used to show that an article will return as an unread article when the group is next entered. Default is'-'. - Character to show selected articles (
art_marked_selected) โ the character used to show that an article/thread is auto-selected (hot). Default is'*'. - Character to show recent articles (
art_marked_recent) โ the character used to show that an article/thread is recent (not older than X days). See alsorecent_time. Default is'o'. - Character to show unread articles (
art_marked_unread) โ the character used to show that an article has not been read. Default is'+'. - Character to show read articles (
art_marked_read) โ the character used to show that an article was read. Default is' '. - Character to show killed articles (
art_marked_killed) โ the character used to show that an article was killed. Default is'K'.kill_levelmust be set accordingly. - Character to show read selected arts (
art_marked_read_selected) โ the character used to show that an article was hot before it was read. Default is':'.kill_levelmust be set accordingly. - Ask before using MIME viewer (
ask_for_metamail) โ if ON, tin will ask before using a MIME viewer (metamail_prog) to display MIME messages. this only happens if a MIME viewer is set. Default is OFF. attachment_formatโ Format string for the Attachment level. It's the format string tin uses for Attachment level representation. Peep the section "CUSTOMIZING THE SCREEN FORMAT" for the full tea. Default is"%t%s%e%c%d". โจauto_cc_bccโ Send you a cc and/or bcc automatically. Like, automatically put your name in the''Cc:''(1) or''Bcc:''(2) field or to both (3) fields when mailing an article. Default is'No'(0). ๐auto_list_threadโ List thread using right arrow key. If ON automatically list thread when entering it using right arrow key. Default is ON. ๐ฅauto_reconnectโ Reconnect to server automatically. Default is OFF. ๐ซถbatch_saveโ Save articles in batch mode. 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. ๐ฆbeginner_levelโ Show mini menu & posting etiquette. 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. ๐ผcache_overview_filesโ Cache NNTP overview files locally. 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" andgetart_limit. Default is OFF. ๐๏ธcompress_overview_filesโ Compress locally cached NNTP overview files. If ON, locally cached NNTP overview files (cache_overview_files) are saved in compressed form (RFC 1952). Useful to reduce local disk space used. Default is OFF. ๐๏ธcancel_lock_algoโ Hash algorithm for cancel-locks. Use this hash algorithm for cancel-locks (RFC 8315). Only available when built with cancel-lock support.nonedisables the generation of cancel-locks. Valid values arenone,sha1,sha256andsha512. Default issha1. See also${TIN_HOMEDIR:-"$HOME"}/.cancelsecretintin(5). ๐catchup_read_groupsโ Catchup read groups when quitting. If set ON the user is asked when quitting if all groups read during the current session should be marked read. Default is OFF. ๐โโ๏ธcol_backโ Standard background color. Standard background color. ๐จcol_extquoteโ Color of quoted text from external sources. Color of quoted text from external sources. ๐col_fromโ Color of sender (From:). Color of sender (From:). ๐คcol_headโ Color of article header lines. Color of header-lines. ๐ฐcol_helpโ Color of help text. Color of help pages. ๐col_invers_bgโ Color for inverse text (background). Color of background for inverse text. ๐col_invers_fgโ Color for inverse text (foreground). Color of foreground for inverse text. ๐col_messageโ Color of status messages. Color of status messages in last line. ๐ฌcol_markdashโ Color of highlighting with _dash_. Color of words emphasized like_this_. See alsoword_h_display_marksandword_highlight. โcol_markslashโ Color of highlighting with /slash/. Color of words emphasized like/this/. See alsoword_h_display_marksandword_highlight. โcol_markstarโ Color of highlighting with stars. Color of words emphasized like*this*. See alsoword_h_display_marksandword_highlight. โญcol_markstrokeโ Color of highlighting with -stroke-. Color of words emphasized like-this-. See alsoword_h_display_marksandword_highlight. โcol_minihelpโ Color of mini help menu. Color of mini help menu. ๐col_newsheadersโ Color of actual news header fields. Color of actual news header fields. ๐งcol_normalโ Standard foreground color. Standard foreground color. ๐๏ธcol_quoteโ Color of quoted lines. Color of quoted lines. ๐ฌcol_quote2โ Color of twice quoted line. Color of twice quoted lines. ๐ฌcol_quote3โ Color of >=3 times quoted line. Color of >=3 times quoted lines. ๐ฌcol_responseโ Color of response counter. Color of response counter. This is the text that says "Response x of y" in the article viewer. ๐ขcol_signatureโ Color of signatures. Color of signatures. โ๏ธcol_score_negโ Color of negative score. Color of negative score. ๐col_score_posโ Color of positive score. Color of positive score. ๐col_urlsโ Color of urls highlight. Color of urls highlight. ๐col_verbatimโ Color of verbatim blocks. Color of verbatim blocks. ๐col_subjectโ Color of article subject lines. Color of article subject. ๐col_textโ Color of text lines. Color of text-lines. ๐col_titleโ Color of help/mail sign. Color of help/mail sign. ๐ท๏ธconfirm_choiceโ Which actions require confirmation. 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 iscommands & 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 (withGroupMarkUnselArtRead('X') command) articles as read. โ
date_formatโ Format string for display of dates. Format string used for date representation. A description of the different format options can be found instrftime(3). tin usesstrftime(3)when available and supports most format options in its fallback code. Default is"%a, %d %b %Y %H:%M:%S". ๐default_art_searchโ (no description in the manual, bestie, it's just vibing here) ๐ซฅdefault_author_searchโ (no description, just the name) ๐ซฅdefault_config_searchโ The last article/author/config option that was searched for. ๐default_filter_daysโ Default is28. ๐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 todefault_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. ๐''Subject:''(case sensitive)''Subject:''(ignore case)''From:''(case sensitive)''From:''(ignore case)''Message-ID:''& full''References:''line''Message-ID:''& last''References:''entry only''Message-ID:''entry only''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 todefault_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. ๐''Subject:''(case sensitive)''Subject:''(ignore case)''From:''(case sensitive)''From:''(ignore case)''Message-ID:''& full''References:''line''Message-ID:''& last''References:''entry only''Message-ID:''entry only''Lines:''
default_goto_groupโ (no description, just the name) ๐ซฅdefault_group_searchโ (no description, just the name) ๐ซฅdefault_mail_addressโ (no description, just the name) ๐ซฅdefault_move_groupโ (no description, just the name) ๐ซฅdefault_patternโ (no description, just the name) ๐ซฅdefault_pipe_commandโ (no description, just the name) ๐ซฅdefault_post_newsgroupsโ (no description, just the name) ๐ซฅdefault_post_subjectโ (no description, just the name) ๐ซฅdefault_range_groupโ (no description, just the name) ๐ซฅdefault_range_selectโ (no description, just the name) ๐ซฅdefault_range_threadโ (no description, just the name) ๐ซฅdefault_repost_groupโ (no description, just the name) ๐ซฅdefault_save_fileโ (no description, just the name) ๐ซฅdefault_save_modeโ (no description, just the name) ๐ซฅdefault_select_patternโ (no description, just the name) ๐ซฅdefault_shell_commandโ (no description, just the name) ๐ซฅdefault_subject_searchโ (no description, just the name) ๐ซฅdont_break_wordsโ Don't break words when wrapping. Do not break long lines inside a word. This applies to the body except for verbatim blocks. See alsowrap_column. Default is OFF. โ๏ธdraw_arrowโ Draw โ instead of highlighted bar. Allows groups/articles to be selected by an arrow 'โ' if set ON or by a highlighted bar if set OFF. Default is OFF. โก๏ธeditor_formatโ Invocation of your editor. The format string used to create the editor start command with parameters. Default is'%E +%N %F'with%E=Editor,%N=Linenumberand%F=Filename(e.g.,/bin/vi +7 .article). See also$VISUALand$EDITORunder "ENVIRONMENT". โ๏ธextquote_handlingโ Detection of external quotes. If ON quotes from external sources will be detected. Default is OFF. ๐extquote_regexโ Regex used to show external quotes. A regular expression that will be applied when reading articles. All matching lines are shown incol_extquote. Ifextquote_regexis blank, then tin uses a built-in default. ๐งฉforce_screen_redrawโ Force redraw after certain commands. Specifies whether a screen redraw should always be done after certain external commands. Default is OFF. ๐getart_limitโ Number of articles to get. Ifgetart_limitis > 0 not more than the lastgetart_limitarticles/group are fetched from the server. Ifgetart_limitis < 0 tin will start fetching articles from your first unread minus absolute value ofgetart_limit. Note that settinggetart_limitto anything except 0 disablescache_overview_files. Default is 0, which means no limit. ๐ฅgroup_catchup_on_exitโ Catchup group using left key. If ON catchup group when leaving with the left arrow key. Default is ON. โฌ ๏ธgroup_formatโ Format string for the Group level. Format string tin uses for Group level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is"%n %m %R %L %s %F". ๐goto_next_unreadโ Go to the next unread article with. Which keys tin should accept to jump to the next unread article. Possible is any combination ofPageDownandPageNextUnread. WhenPageDownis set, tin jumps to the next article at the end of the current one. WhenPageNextUnreadis set, tin jumps immediately to the next article whenPageNextUnread('<TAB>') is pressed. Default isPageNextUnread. โญ๏ธ
Display none mime data as an attachment (hide_inline_data)
Okay bestie, this one is about hiding big ugly blobs of encoded data and swapping them for a cute lil tag line instead. ๐
- Set it to
'Nothing'(0) and you get the raw data in all its unfiltered glory. No hiding, no shame. - Set it to
'Complete UU/YENC'(1) and sections of uuencoded or yenc data get shown with a single tag line showing the size and filename โ much the same as a MIME attachment. - Set it to
'Any UU/YENC'(2) and literally any line that looks like uuencoded or yenc data gets folded into a tag line. This is useful when uuencoded or yenc data is split across more than one article, but heads up: it can also lead to false positives. ๐ - Set it to
'Inline PGP'(4) and any inline PGP data is hidden. - Set it to
'Shar'(8) and shar-archives are hidden. This should be used with care as it may hide other shell snippets and any following text as well. ๐ญ
You can also toggle this whole setting in the article viewer via PageToggleUue ('('). Default is 'Nothing' (0).
The possible values are:
0 Nothing
1 Complete UU/YENC
2 Any UU/YENC
4 Inline PGP
5 Complete UU/YENC & Inline PGP
6 Any UU/YENC & Inline PGP
8 Shar
9 Complete UU/YENC & Shar
10 Any UU/YENC & Shar
12 Inline PGP & Shar
13 Compl. UU/YENC & PGP & Shar
15 Hide all
Regex used to hide matching lines (hideline_regex)
A regular expression to hide matching lines in pager. Could be used to hide excessive quoting, e.g. via '^>\s?>\s?>'. If left blank, no lines will be hidden. โจ
This option does not affect lines within verbatim blocks, and it is applied aftertrim_article_bodyandsuppress_soft_hyphens. Order matters, bestie.
External inews (inews_prog)
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 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.
Use interactive mail reader (interactive_mailer)
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, ...).
1means include headers2means don't include headers (olduse_mailreader_i=ONoption)0turns off usage
This option has to suit mailer_format. Default is 0.
Use inverse video for page headers (inverse_okay)
If ON use inverse video for page headers and URL highlighting. Default is ON. ๐
Keep failed arts in ~/dead.articles (keep_dead_articles)
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. ๐ (yes, your failures get archived, it's giving preservation)
Keep expired filter rules in file (keep_expired_filters)
If ON keep expired filter rules in the file, but no longer evaluate them. Default is OFF.
Filter which articles (kill_level)
This option controls the processing and display of articles that are killed. There are 3 options:
0Kill only unread arts โ this is the 'traditional' behavior of tin. Only unread articles are killed once only by marking them read. As filtering only happens on unread articles withkill_levelset to0,art_marked_killedandart_marked_read_selectedare only shown once. When you reenter the group the mark will be gone.1Kill 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 withart_marked_killed.2Kill 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).
Use 8-bit characters in mail headers (mail_8bit_header)
Allows 8-bit characters unencoded in the header of mail message. Default is OFF.
Turning it ON is effective only ifmail_mime_encodingis also set to8bit. Leaving it OFF is safe for most users and compliant to Internet Mail Standard (RFC 5322 and RFC 2047). ๐
Mail address (mail_address)
User's mail address (and full name), if not username@host. This is used when creating articles, sending mail and when pgp(1) / gpg(1) signing (RFC 9580).
MIME encoding in mail messages (mail_mime_encoding)
MIME encoding of the body in mail message, if necessary (8bit, base64, quoted-printable, 7bit). Default is quoted-printable. โจ
Quote line when mailing (mail_quote_format)
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
If the article has multiple addresses, only the first is evaluated. Default is "In article %M you wrote:"
Format of the mailbox (mailbox_format)
Select one of the following mailbox-formats: MBOXO (default, except on SCO), MBOXRD or MMDF (default on SCO). See mbox(5) and RFC 4155 for more details on MBOXO and MBOXRD and mmdf(5) for more details about MMDF. ๐
Mail directory (maildir)
The directory where articles/threads are to be saved in mbox(5) format. This feature is mainly for use with the mutt(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.
Invocation of your mail command (mailer_format)
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
mutt -H %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. ๐
Mark saved articles/threads as read (mark_saved_read)
If ON mark articles that are saved as read. Default is ON. โ
Viewer program for MIME articles (metamail_prog)
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.
ThePageViewAttach('V') command can always be used to manually view any attachments. See alsoask_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 supportsiconv(3)orucnv_*(), this option is disabled and you should usemm_network_charsetinstead. ๐ฆ
MM_NETWORK_CHARSET (mm_network_charset)
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) or ucnv_*().
If none of these functions are 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.
Attribute of highlighting with _dash_ (mono_markdash)
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.
Attribute of highlighting with /slash/ (mono_markslash)
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.
Attribute of highlighting with stars (mono_markstar)
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.
Attribute of highlighting with -stroke- (mono_markstroke)
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. ๐
Display these header fields (or *) (news_headers_to_display)
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. โญ
news_headers_to_not_displayโ Do not display these header fields. It's literally the exact opposite ofnews_headers_to_display, like a mirror ๐ช. Say you thoughtX-headers were A Good Thing(tm) but also thought Alan and Pape were miscreants... well bestie, you'd do something like this:
news_headers_to_display=X- news_headers_to_not_display=X-Alan X-Pape
Not defining anything at all turns this option off. Periodt. ๐
news_quote_formatโ Quote line when following up. The format of the quote line you get when posting/following up an article. The expansion chars are:%A=Address,%D=Date,%F=Fullname+Address,%G=Groupname,%M=Message-ID,%N=Fullname,%C=Firstname,%I=Initials. Heads up: if the article has multiple addresses, only the first one gets evaluated. Default is"%F wrote:". ๐nntp_read_timeout_secsโ NNTP read timeout in seconds. How many seconds to wait for a response from the server. Default is120. Setting it to0means no timeout, no cap, live your truth. But be careful ๐ซฃ: if you use the-Coption together with a low value fornntp_read_timeout_secs, you may hit a timeout (and get disconnected in batch mode) when connecting to large servers or entering large groups โ because the timer starts when the command is sent to the server, and the server needs a hot sec to compress that big ol' response. So don't set it too small. fr fr.normalization_formโ Unicode normalization form. The normalization form tin should use to normalize Unicode input. The possible values are:0โ None: no normalization1โ NFKC: Compatibility Decomposition, followed by Canonical Composition2โ NFKD: Compatibility Decomposition3โ NFC: Canonical Decomposition, followed by Canonical Composition4โ NFD: Canonical Decomposition5โ NFKC_CF: Compatibility Decomposition, followed by Canonical Composition and Case Folding
Some normalization modes are only available if the library tin uses to do the normalization supports them. NFC should be used if possible (RFC 5198). โจ
page_mime_formatโ Format string for the display of mime header at Article level. The format string tin uses for mime header at Page level. Peep the section "CUSTOMIZING THE SCREEN FORMAT". Default is"[-- %T%S%*n%z%*l%!c%!d%*e --]".page_uue_formatโ Format string for the display of uue header at Article level. The format string tin uses for uue header at Page level. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is"[-- %T%S%*n%I%!d%*e --]".page_yenc_formatโ Format string for the display of yenc header at Article level. The format string tin uses for yenc header at Page level. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is"[-- %*N%!d%I [%F%G]%V%W%X --]".pos_first_unreadโ Go to first unread article in group. IfON, the cursor goes to the first unread article in the group; otherwise it goes to the last article. Default isON. ๐post_8bit_headerโ Use 8-bit characters in news headers. Allows 8-bit characters unencoded in the header of a news article, and if you set this it also disables the generation of MIME-headers when they'd usually be required. Default isOFF. It only gets enacted ifpost_mime_encodingis also set to8bit. In a number of local hierarchies where 8-bit characters are used, using unencoded (raw) 8-bit characters in the header is acceptable and sometimes even recommended โ so you need to check the convention adopted in the local hierarchy you care about to figure out what to do with this andpost_mime_encoding. iykyk ๐ธpost_mime_encodingโ MIME encoding in news messages. MIME encoding of the body in a news message, if necessary. The options are8bit,base64,quoted-printable,7bit. Default is8bit, which leads to no encoding at all. Heads up:base64andquoted-printableare usually undesired on usenet.post_process_viewโ View post-processed files. IfON, tin will start an appropriate viewer program to display any files that were post processed and uudecoded. The program is determined using themailcap(5)file. Default isON. ๐ฆpost_process_typeโ Post process saved articles. This specifies whether to perform post processing on saved articles. โ ๏ธ Because the shell archive may contain commands you may not want to be executed, be careful when extracting shell archives. The allowed values are:0โ No (default), no post processing is done.1โ Shell archives, unpacking of multi-partshar(1)files only.2โ Yes, binary attachments and data will be decoded and saved.
posted_articles_fileโ Filename to be used for storing posted articles. Keep posted articles in the given file. If the given filename doesn't contain any expandable strings, it gets prefixed with${TIN_HOMEDIR:-"$HOME"}/Mail/. If no filename is set, then postings won't be saved. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more info on the various expansion characters. Default is'posted'. ๐print_headerโ Print all headers when printing. IfON, the full article header is sent to the printer. Otherwise only the''Subject:''and''From:''fields are output. Default isOFF.printerโ Printer program with options. The printer program with options that's used to print articles. The default islpr(1)for BSD machines andlp(1)for SysV machines. Ngl, printing from tin may have been disabled by the System Administrator. ๐process_only_unreadโ Process only unread articles. IfON, only save/print/pipe/mail unread articles (tagged articles excepted). Default isOFF.prompt_followuptoโ Show empty Followup-To in editor. IfON, show an empty''Followup-To:''header when editing an article. Default isOFF.quote_charsโ Characters used as quote-marks. The character used in quoting included text to article followups and mail replies. The'_'character represents a blank character and gets replaced with' 'when read, and%Iis replaced by the author's initials. If the article has multiple addresses, only the first is evaluated. Default is'>_'. โจquote_styleโ Quoting behavior. 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, andquote_charscan be compressed when quoting multiple times (for example,'> > >'gets turned into'>>>'). The default is to compress quotes, and to quote empty lines.
When you're viewing an article in raw mode ('^H'), and you follow up or reply to it, the signature will be quoted even if it otherwise wouldn't be. And if show_signatures is off, then the signature will never be quoted. No exceptions. ๐
quote_regexโ Regex used to show quoted lines. A regular expression that gets applied when reading articles. All matching lines are shown incol_quote. Ifquote_regexis blank, then tin uses a built-in default.quote_regex2โ Regex used to show twice quoted l. A regular expression that gets applied when reading articles. All matching lines are shown incol_quote2. Ifquote_regex2is blank, then tin uses a built-in default.quote_regex3โ Regex used to show >= 3 times q.l. A regular expression that gets applied when reading articles. All matching lines are shown incol_quote3. Ifquote_regex3is blank, then tin uses a built-in default.recent_timeโ Article recentness time limit. If set to0, this feature is deactivated. Otherwise it means the number of days. Default is2.render_bidiโ Render BiDi. IfON, tin does the rendering of bi-directional text. IfOFF, tin leaves the rendering of bi-directional text to the terminal. Default isOFF.reread_active_file_secsโ Interval in seconds to reread active. The news${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}file gets reread at regular intervals to show if any new news has arrived. Default is1200. Setting this to0disables this feature entirely. ๐ซถsavedirโ Directory to save arts/threads in. Directory where articles/threads are saved. Default is${TIN_HOMEDIR:-"$HOME"}/News.scope_marked_globalโ Character to show global scopes. The character used to show that a scope was read from the global attributes file. Default is'!'.scope_marked_global_matchโ Char to show global scope matches. The character used to show that a scope was read from the global attributes file and the current group matches. Default is':'.scope_marked_localโ Character to show local scopes. The character used to show that a scope was read from the local attributes file. Default is' '.scope_marked_local_matchโ Char to show local scope matches. The character used to show that a scope was read from the local attributes file and the current group matches. Default is'*'.score_limit_killโ Score limit (kill). If the score of an article is below or equal to this value, the article gets marked as killed. ๐score_limit_selectโ Score limit (select). If the score of an article is above or equal to this value, the article gets marked as hot. ๐ฅscore_killโ Default score to kill articles. Score of an article which should be killed โ this must be<= score_limit_kill.score_selectโ Default score to select articles. Score of an article which should be marked hot โ this must be>= score_limit_select.scroll_linesโ Number of lines to scroll in pager. The number of lines that get scrolled up/down in the article pager when you use cursor-up/down. The default is1(line-by-line). Set to0to get traditional tin page-by-page scrolling. Set to-1to get page-by-page scrolling where the top/bottom line is carried over onto the next page โ this setting supersedesshow_last_line_prev_page=ON. Set to-2to get half-page scrolling โ this setting supersedesfull_page_scroll=OFF. ๐select_formatโ Format string for the Selection level. Format string tin uses for Selection level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is"%f %n %U %G %d".show_authorโ In group and thread level, show author by. Which info about the author should be shown. Default is2, the author's 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 author's full name part of the''From:''line are displayed (default).
3โ Address and Name,''Subject:''line & all of the''From:''line are displayed. ๐- Show description of each newsgroup (
show_description) โ If ON, show a short group description text after the newsgroup name at the group selection level. ๐ฆ The-dcommand-line flag will override the setting and turn descriptions off. The text used is taken from the${TIN_LIBDIR:-NEWSLIBDIR}/newsgroupsfile and, if supported (requires tin to be built with mh-mail-handling support), from${TIN_HOMEDIR:-"$HOME"}/.tin/mailgroupsfor mailgroups. Default is ON. โจ - Function for sorting articles (
sort_function) โ Function used for sorting articles. Default is0. ๐0โ Useqsort(3)for sorting.1โ Useheapsort(3)for sorting. This might be faster in large groups with long threads (somewhat presorted data). ๐ฅ
- Show help/mail sign in level titles (
show_help_mail_sign) โ Allows you to select whether tin shows a help indication, a new mail indication, both, or neither in the various level titles. Default is3. ๐0โ Don't show help or mail sign.1โ Show only help sign.2โ Show only mail sign if new mail, show only the mail sign, and only if new mail has arrived.3โ Show mail if new mail else help s., show mail sign if new mail has arrived otherwise show help sign.
- Show only unread articles (
show_only_unread_arts) โ If ON, show only new/unread articles; otherwise show all articles. Default is ON. ๐ญ - Show only groups with unread arts (
show_only_unread_groups) โ If ON, show only subscribed groups that contain unread articles. Default is OFF. ๐ - Display signatures (
show_signatures) โ If OFF, don't show signatures when displaying articles. Default is ON. ๐ - Display article info in pager (
show_art_info) โ Show additional information about the article at the page level. The article's score can be displayed in the lower left corner (see alsocol_score_negandcol_score_pos), and the article's language, if detectable, can be displayed in the page header to the right of the line count. If the language is prefixed by a'~'the value is guessed, if it is prefixed by a'+'the value is inherited. If possible, a language tag is converted to the name of the language. In this case, the tag is specified in round brackets after the name. Default is0. ๐ง0โ None, don't show article's score or language.1โ Article score, show only the article's score.2โ Article language, show only the article's language.3โ Score and language, show both, article's score and language.
- Prepend signature with
'\n-- \n'(sigdashes) โ If ON, prepend the signature with sigdashes. Default is ON. โญ - Create signature from path/command (
sigfile) โ 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,%Gcan be specified. This will be replaced by the name of the current newsgroup.--nonewill suppress any signature. Default is${TIN_HOMEDIR:-"$HOME"}/.Sig. ๐ - Add signature when reposting (
signature_repost) โ If ON, add signature to reposted articles. Default is ON. ๐ - Regex used to highlight /slashes/ (
slashes_regex) โ A regular expression that will be applied when reading articles. All matching words are shown incol_markslashormono_markslash. Ifslashes_regexis blank, then tin uses a built-in default. ๐ธ - Sort articles by (
sort_article_type) โ 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.
- Sort threads by (
sort_threads_type) โ 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.
- Spamtrap warning address parts (
spamtrap_warning_addresses) โ 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
- Regex used to highlight *stars* (
stars_regex) โ A regular expression that will be applied when reading articles. All matching words are shown incol_markstarormono_markstar. Ifstars_regexis blank, then tin uses a built-in default. ๐ - Strip blanks of end of lines (
strip_blanks) โ 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. ๐จ - Remove bogus groups from newsrc (
strip_bogus) โ Bogus groups are groups that are present in your${TIN_HOMEDIR:-"$HOME"}/.newsrcfile that no longer exist on the news server. There are 3 options.0means do nothing & always keep bogus groups.1means bogus groups will be permanently removed.2means 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 is0(Always Keep). ๐๏ธ - No unsubscribed groups in newsrc (
strip_newsrc) โ If ON, then unsubscribed groups will be permanently removed from your${TIN_HOMEDIR:-"$HOME"}/.newsrcfile. Default is OFF. โ๏ธ - Regex with Subject prefixes (
strip_re_regex) โ A regular expression to find Subject prefixes like"Re:"to remove. Ifstrip_re_regexis blank, thentin(1)uses a built-in default. ๐ - Regex with Subject suffixes (
strip_was_regex) โ A regular expression to find Subject suffixes like"(was:"to remove. Ifstrip_was_regexis blank, thentin(1)uses a built-in default. ๐ - Regex used to highlight -strokes- (
strokes_regex) โ A regular expression that will be applied when reading articles. All matching words are shown incol_markstrokeormono_markstroke. Ifstrokes_regexis blank, then tin uses a built-in default. ๐๏ธ - Wrap around threads on next unread (
wrap_on_next_unread) โ 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. ๐ - Display
"aas Umlaut-a (tex2iso_conv) โ If ON, show"aas Umlaut-a, etc. Default is OFF. This behavior can also be toggled in the article viewer viaPageToggleTex2iso('"'). ๐ญ - Thread articles by (
thread_articles) โ Defines which threading method to use. It's possible to set the threading type on a per group basis by setting the group attribute variablethread_artsto0โ4in the file${TIN_HOMEDIR:-"$HOME"}/.tin/attributes. (See also "ATTRIBUTES MENU AND 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:''.
- Catchup thread by using left key (
thread_catchup_on_exit) โ If ON, catchup group/thread when leaving with the left arrow key. Default is ON. โฌ ๏ธ - Format string for the Thread level (
thread_format) โ Format string tin uses for Thread level representation. See the section "CUSTOMIZING THE SCREEN FORMAT". Default is"%n %m [%L] %T %F". ๐ฅ๏ธ - Matchingness of a thread (
thread_perc) โ How closely the subjects must match for two threads to be considered part of the same thread. This is a percentage and the default is75%. ๐ - Score of a thread (
thread_score) โ How the total score of a thread is computed. Default is0, 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.
- CA certificate file (
tls_ca_cert_file) โ The name of file containing all trusted CA certificates used for NNTPS (RFC 8143) connections. If left empty, the system default will be used. ๐ - Transliteration (
translit) โ If ON, append//TRANSLITto the first argument oficonv_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. ๐ - How to treat blank lines (
trim_article_body) โ Allows you to select how tin treats blank lines in article bodies. Default is0. This option does not affect lines within verbatim blocks and is applied beforehideline_regex. ๐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 text blocks with one blank line.5โ Compact multiple and skip leading,4 + 1
- Compact multiple and skip trailing,
4 + 2- Compact mltpl., skip lead. & trai.,
4 + 3
- Compact mltpl., skip lead. & trai.,
- Suppress soft hyphens (
suppress_soft_hyphens) โ bestie, if this is ON, tin removes soft hyphens from non verbatim blocks of articles whenever they're shown in a UTF-8 locale. The character SOFT HYPHEN (U+00AD) is literally an invisible format character whose whole job is just to hint at a preferred intraword line break spot. But some terminal emulators out here being dramatic and rendering a space or a hyphen where the soft hyphen should be ๐. So flip this setting to make those articles look cute again. Default is OFF. - Regex used to highlight _underline_ (
underscores_regex) โ a regular expression that gets applied while reading articles. Every matching word shows up incol_markdashormono_markdash. Ifunderscores_regexis blank, tin just uses a built-in default. Periodt. - Remove
~/.articleafter posting (unlink_article) โ if ON, remove~/.articleafter posting. Default is ON. - Program that opens URLs (
url_handler) โ the program that gets run when you launch URLs in the article viewer withPageViewUrl('U'). The actual URL gets appended. Default isurl_handler.pl. - URL highlighting in message body (
url_highlight) โ enable highlighting URLs in the message body. Default is ON. - Use ANSI color (
use_color) โ if enabled, tin uses ANSI-colors. Default is OFF. - Use scroll keys on keypad (
use_keypad) โ Default is OFF. - Use mouse in xterm (
use_mouse) โ lets you enable/disable mouse button support in anxterm(1x). Default is OFF. - Use slrnface to show ''X-Face:''s (
use_slrnface) โ if enabled, tin usesslrnface(1)to interpret the ''X-Face:'' header. For this to do literally anything at all, tin has to be running in anxterm(1x)andslrnface(1)has to be in your$PATH. Default is OFF. - Use UTF-8 graphics (
utf8_graphics) โ use UTF-8 characters for the indicator ('โ'), thread/attachment tree and ellipsis ('...'). Default is0.0โ Don't use UTF-8 characters.1โ for ellipsis. Use UTF-8 characters for ellipsis.2โ for indicator and tree. Use UTF-8 characters for indicator and thread/attachment tree.3โ for ..., indicator and tree. Use UTF-8 characters for ellipsis, indicator and thread/attachment tree.
- Regex for begin of a verbatim block (
verbatim_begin_regex) โ a regular expression that tin will use to find the begin of a verbatim block. - Regex for end of a verbatim block (
verbatim_end_regex) โ a regular expression that tin will use to find the end of a verbatim block. - Detection and display of verbatim blocks (
verbatim_handling) โ lets you pick how tin treats verbatim blocks in article bodies. Default is1.0โ Don't detect verbatim blocks. Do nothing.1โ Detect and show verbatim blocks. Detect and show verbatim blocks, including begin and end marks.2โ Detect, hide begin and end marks. Detect and show verbatim blocks, hide begin and end marks.3โ Don't show verbatim blocks. Detect verbatim blocks and hide them completely.
- Wildcard matching (
wildcard) โ lets you select how tin matches strings. The default is0and uses thewildmat(3)notation, which is how this has traditionally been handled. Setting this to1lets you useperl(1)compatible regular expressionspcre(3)orpcre2(3)(see alsoperlre(1)andpcrepattern(3)orpcre2pattern(3)). You'll probably want to update your filter file if you use this regularly. NB: newsgroup names will always be matched using thewildmat(3)notation. - What to display instead of mark (
word_h_display_marks) โ should the leading and ending stars, slashes, strokes and dashes also be displayed, even when they're highlighting marks? ๐0โ no1โ yes, display mark2โ print a space instead
- Word highlighting in message body (
word_highlight) โ enable word highlighting. Seeword_h_display_marksfor the options available. Ifuse_coloris enabled, the colors specified incol_markdash,col_markslash,col_markstarandcol_markstrokeare used for word highlighting; otherwise the character attributes specified inmono_markdash,mono_markslash,mono_markstarandmono_markstrokeare used. Default is ON. - Page line wrap column (
wrap_column) โ sets the column at which a displayed article body should be wrapped. If this value is equal to0, it defaults to the current screen width. If this value is greater than your current screen width anddont_break_wordsis unset, the part off-screen is not displayed. So setting this option to a large value can be used to disable wrapping entirely โจ. 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 falls back to the current screen width). Default is0, wrapping at the current screen width. - Quote line when crossposting (
xpost_quote_format) โ format is the same as fornews_quote_format, and this one is used when answering to a crossposting to several groups with no ''Followup-To:'' set.
โจ ATTRIBUTES MENU AND GROUP ATTRIBUTES โจ
tin lets you set certain attributes on a per group basis, and honestly? iconic. 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 thescope=<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 you actually 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 seetin(5).
Attributes can also be changed from the attributes menu, which you can get to with 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 ๐
.
If the current scope corresponds exactly to the name of the current group, e.g. after switching to the attributes menu from the options menu using ConfigToggleAttrib ('<TAB>'), attributes that originate from the global attributes file (${TIN_LIBDIR:-NEWSLIBDIR}/attributes) are marked with '!' to the left of the attributes number. This is helpful for identifying such attributes and overriding them if necessary.
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.
๐ SCOPES MENU ๐
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 scope_marked_global ('!') to the left of the scope number, and scopes from the local attributes file are marked with scope_marked_local (' '). When the scopes menu is accessed from the group, thread, or article level, scopes where the current group matches are marked with scope_marked_global_match (':') for scopes from the global attributes file and with scope_marked_local_match ('*') for scopes from the local attributes file.
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. Note that delete (ScopeDelete), rename (ScopeRename) and move (ScopeMove) are not available for global scopes ๐ซ. ToggleHelpDisplay ('H') toggles the help mini menu at the bottom of the screen and posting etiquette after composing an article (beginner_level).
๐ฅ๏ธ SERVERRC MENU ๐ฅ๏ธ
The serverrc menu (accessible from the options menu with ConfigServerrcMenu ('s')) can be used to change the server specific settings which are stored in ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/serverrc. Changing the value of cache_overview_files, compress_overview_files or nntp_pipeline_limit becomes effective immediately for all groups visited after the change. Changing any other values, i.e. add_cmd_line_opts or disabled_nntp_cmds, does require a restart to take effect.
๐ฅ FILTERING ARTICLES ๐ฅ
When there's a subject or an author you're either very interested in, or find completely uninteresting, you can easily tell tin to auto-select or auto-kill articles that match rules you specify. This can be anything from the name of the author to the number of lines in an article. so versatile fr fr.
When tin starts up, the user's kill-file ${TIN_HOMEDIR:-"$HOME"}/.tin/filter or the file specified via ''-F'' is read (see also tin(5)). Each time a newsgroup is entered, the rules are applied and articles are killed or selected when they meet certain criteria.
The degree to which rules are applied depends 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://bzr.tin.org/doc/filtering>.
Note that there are two different ways to match strings (see the wildcard tinrc variable): via wildmats or via regular expressions. The latter is more complex but offers significantly more options. If you intend to change the matching type from one to the other, the rules in the filter file need to be changed manually first. For switching from wildmats to regexp there is a helper script w2r.pl(1) in the tools dir and online at <http://bzr.tin.org/tools/w2r.pl>.
Okay so lowkey important tea: regular expressions give you options that wildmats just don't have, and there's no helper script to switch you over. So if you decide to go regex, bestie, stay with regex. They're powerful and fast. Periodt. ๐
The on-screen filtering menu? You get to it by pressing MenuFilterKill ('^K') or MenuFilterSelect ('^A') at the Group and Article levels. It lets you kill or select an article that matches the current Subject: line, the From: line, or a string you typed in yourself. That user-entered string can be applied to the Subject:, From:, Message-ID:, References:, Xref: or Path: line of an article. The filter can be limited to just the current newsgroup, or it can apply to all newsgroups. Once you've entered it, you can abort the command and not save the new filter, edit the full filter file, or save the filter. Your call, queen. ๐
๐ฎ POSTING ARTICLES ๐ฎ
tin lets you post articles, follow-up to articles you already posted, and reply direct through mail to the author of an article. It's giving full correspondence main character energy. โจ
Use the Post ('w') command to post an article to a newsgroup. After you enter 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 you can enter the article. 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're 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). Choose wisely bestie ๐
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 article's subject line are all displayed. See the section "POSTING HISTORY LISTING" for more information. ๐
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're 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'). ๐ซถ
๐ธ CUSTOMIZING THE ARTICLE QUOTE STRING ๐ธ
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). If the article has multiple addresses, only the first is evaluated. 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 (usesdate_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 Tue, 21 Sep 1993 09:45:51 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 your 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. Consistency slay. โจ
Auto-saving with *AutoSave ('S') is a special case and operates only on marked articles. They will be 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 a 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.
โจ 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. Super useful when you're going on holiday and you don't want to come back and find that expire has removed a whole load of unread articles. ๐ญ Best to run via cron(8) every day while you're away, after which you'll 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 filesystem. ๐
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.
tin -M iain -c -f newsrc.mail
(mail any unread articles in newsgroups specified in
file newsrc.mail to the local user iain and mark
them as read)
tin -S -c -f newsrc.save
(save any unread articles in newsgroups specified in
file newsrc.save and mark them as read)
tin -R (read any articles saved by tin -S)
๐ฏ RANGES ๐ฏ
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. Entering '0' at the prompt undoes the previously entered range selection. Currently the only commands that understand ranges are GroupMarkThdRead ('K'), MarkArtUnread ('z') and MarkThdUnread ('Z'). That's the whole list, no cap. ๐
๐ฆ NEWSGROUP LISTS & WILDCARDS ๐ฆ
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. See wildmat(3) for details about the understood patterns. 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 and $AUTOUNSUBSCRIBE variables for further examples.
๐ INTERACTIVE SEARCH ๐
Depending on the setting of the wildcard tinrc variable there are currently a few limitations for interactive searches SearchSubjF ('/'), SearchSubjB ('?'), SearchAuthF ('a'), SearchAuthB ('A'), SearchBody ('B') and SearchRepeat ('\') one should be aware of. Heads up bestie ๐ซถ
- Wildmat searches automatically enclose the search string in asterisks (
'*'), simulating substring searches. This behavior is fixed and cannot be altered. - Regex searches automatically replace spaces (
' ') and/or tabs ('\t') in the search string with the'\s'meta-character, which matches any whitespace character. This behavior cannot be prevented. Also regex searches are case insensitive by default. To enforce case sensitivity, prefix the search pattern by one of the following:'(?^)'or'(?-i)'. - If Unicode normalization is available, search patterns are normalized according to the
normalization_formtinrcvariable.
๐ SIGNATURES ๐
okay so tin is gonna go looking for your signature in one of two places: ${TIN_HOMEDIR:-"$HOME"}/.signature or ${TIN_HOMEDIR:-"$HOME"}/.Sig. pick your fighter ๐
Here's the tea: if ${TIN_HOMEDIR:-"$HOME"}/.signature exists, that signature gets pulled into the editor for mail commands only. Why not posting too? Because inews(1) is gonna append the signature itself โ so a signature in ${TIN_HOMEDIR:-"$HOME"}/.signature will not be pulled into the editor for posting commands. no double-signature jumpscare, we simply don't do that ๐
A signature in ${TIN_HOMEDIR:-"$HOME"}/.Sig, though? That one gets pulled into the editor for both posting and mailing commands. slay. ๐ฆ
Here's a little example of what a .Sig file can look like, iconic honestly:
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 you're feeling chaotic. The way you accomplish this: specify the default signature, or the group attribute sigfile, as a directory. So 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's in the .sigs directory (note: one signature per numbered file ๐๏ธ).
And a random signature can also consist of a fixed part signature โ one that can contain your name, address, etc. โ followed by the random sig. That fixed part of the random sig is read from the file $HOME/.sigfixed. ๐
๐ CUSTOMIZING THE SCREEN FORMAT ๐
The look of the Selection, Group and Thread level can be customized via format strings, and these format strings define the content and the position of each element on the screen. Variables are used within the format strings as placeholders. Heads up: if the article has multiple addresses, only the first is evaluated. Here are all the variables you get:
%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, bestie โ here's the overview of who's allowed where:
%Dโgroup_format,thread_format%Fโgroup_format,thread_format%Gโselect_format%Iโgroup_format,thread_format%Lโgroup_format,thread_format%Mโgroup_format,thread_format%Rโgroup_format%Sโgroup_format,thread_format%Tโthread_format%Uโselect_format%dโselect_format%fโselect_format%mโgroup_format,thread_format%nโselect_format,group_format,thread_format%sโgroup_format%%โselect_format,group_format,thread_format
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, and you can also toggle that description with SelectToggleDescriptions ('d'). ๐ซถ
The info displayed with '%F' depends on the value of show_author. GroupToggleSubjDisplay resp. ThreadToggleSubjDisplay ('d') switches through all available options. cute, right?
For date representation, '%D' uses date_format. And yes, you can 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 '%'. So this next one 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')). And 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's an overview of the defaults:
%Iโ width3%Lโ width4%Mโ width10%Rโ width3%Sโ width6%Uโ width5%nโ width4
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. But โ ๏ธ if the date format string contains weekdays or months names, it may happen that the date is longer than determined in the first pass โ and in that 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 be 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 is given, tin determines the longest newsgroup name and uses this length for '%G'. The remaining space will be used for '%d'.
When the format string contains the specifier '%F' and '%s' resp. '%T' and no length is given, '%F' will use one third and '%s' resp. '%T' will use two third of the available space.
In addition, a minimum or a maximum screen width can be defined for each item (except '%%'). In this case, the item will only be displayed when the screen is wider resp. smaller 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 '>', and the maximum 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 or maximum screen width should be specified for an item, the length must be the first parameter and the minimum or maximum screen width must be the second one. This next example displays the score with a length of 10 characters only if the screen is wider than 100 characters: '%10>100S'. A second length can be specified for '%F' and '%s' resp. '%T', separated by a colon, which is used if the minimum or maximum screen width is not reached. If no length is specified after the colon, the item is displayed even if the minimum screen width is not reached, and the length is calculated as if no minimum (or maximum) screen width had been specified. So in this example tin will display the subject with a length of 60 characters if the screen is wider than 100 characters, otherwise a length of 40 characters is used: '%60>100:40s'. ๐
The look of the Attachment level and the mime, uue and yenc header at Page level can be customized too, via format strings. The following variables are available:
%Cโ Charset%cโ Like%Cbut with description%Dโ Line count%dโ Like%Dbut with description%Eโ Content encoding%eโ Like%Ebut with description%Fโ Current YENC part%fโ Like%Fbut with description%Gโ Total number of YENC parts%gโ Like%Gbut with description%Iโ Complete/incomplete UUE/YENC part indicator%Lโ Language%lโ Like%Lbut with description%Nโ Name%nโ Like%Nbut with description%Sโ Content subtype%sโ Like%Sbut with description%Tโ Content type%tโ Like%Tbut with description%Vโ Size of the current YENC part in bytes%vโ Like%Vbut with description%Wโ Total size of all YENC parts in bytes%wโ Like%Wbut with description%Xโ CRC checksum of current yenc part%xโ Like%Xbut with description%Zโ Size in bytes%zโ Like%Zbut with description%%โ%
Not all items can be used in each variable. Here's the overview of who goes where:
%Cโattachment_format,page_mime_format%cโattachment_format,page_mime_format%Dโattachment_format,page_mime_format,page_uue_format,page_yenc_format%dโattachment_format,page_mime_format,page_uue_format,page_yenc_format%Eโattachment_format,page_mime_format,page_uue_format,page_yenc_format%eโattachment_format,page_mime_format,page_uue_format,page_yenc_format%Fโpage_yenc_format%fโpage_yenc_format%Gโpage_yenc_format%gโpage_yenc_format%Iโpage_uue_format,page_yenc_format%Lโattachment_format,page_mime_format%lโattachment_format,page_mime_format%Nโpage_mime_format,page_uue_format,page_yenc_format%nโpage_mime_format,page_uue_format,page_yenc_format%Sโattachment_format,page_mime_format,page_uue_format,page_yenc_format%sโattachment_format,page_mime_format,page_uue_format,page_yenc_format%Tโattachment_format,page_mime_format,page_uue_format,page_yenc_format%tโattachment_format,page_mime_format,page_uue_format,page_yenc_format%Vโpage_yenc_format%vโpage_yenc_format%Wโpage_yenc_format%wโpage_yenc_format%Xโpage_yenc_format%xโpage_yenc_format%Zโattachment_format,page_mime_format,page_uue_format,page_yenc_format%zโattachment_format,page_mime_format,page_uue_format,page_yenc_format%%โattachment_format,page_mime_format,page_uue_format,page_yenc_format
By default, the string is not truncated. If it exceeds the screen width, it is wrapped. If the % sign is followed by an exclamation mark ('!') for uppercase letters, the element is omitted if there is not enough space. If the % sign is followed by an asterisk ('*') for a lowercase letter, the description is omitted if there is not enough space. And if the % sign is followed by an exclamation mark ('!') for a lowercase letter, the description is omitted first and then the content. The shortening is always from right to left โ first the description is omitted, and when no more description is displayed, the content is omitted. If %T and %S, %F and %G or %V and %W follow each other directly, a '/' will be inserted in between. And %Z will always have one decimal point and may have a one letter bi-suffix. ๐
Defaults for the format strings:
attachment_format: "%T%S%E%C%d"
page_mime_format: "[-- %T%S%*n%z%*l%!c%!d%*e --]"
page_uue_format: "[-- %T%S%*n%I%!d%*e --]"
page_yenc_format: "[-- %*N%!d%I [%F%G]%V%W%X --]"
๐ TIPS AND TRICKS ๐
okay bestie, plot twist: you can basically drive tin with just the four cursor keys. no cap. left arrow = go up a level, right arrow = go down a level, up arrow = go up a line, down arrow = go down a line. that's the whole vibe. ๐
and if you wanna learn stuff about news software, these newsgroups are literally the plug:
- 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)
so many prompts inside tin come with a default choice and the cursor is already sitting on it. hit <CR> and boom, default accepted, no typing required. and most prompts? you can bail out entirely by pressing <ESC>. ๐
when you run tin inside an xterm(1x), it resizes itself every single time the xterm(1x) resizes. it's giving adaptive. โจ
also tin will reread the ${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active} file at set intervals (reread_active_file_secs) so it can show off any newly arrived news. ๐ฅ
and if a giant pile of new newsgroups is cluttering up your screen like unread group-chat notifs? press SelectToggleReadDisplay (r') and watch them go away. iconic.
๐ฆ XTERM BUTTONS ๐ฆ
if the environment variable $TERM is set to xterm(1x), then guess what โ you can just click to select groups and articles. for this whole discussion we're assuming the buttons are assigned conventionally (i.e., Button1 is the left button).
in general (i.e., for the group, thread and article menus):
- Button1 (left) โ enters next (lower) level if you click on an article, otherwise pages down.
- Button2 (center) โ returns to the previous (upper) level if you click on an article, otherwise pages up.
- Button3 (right) โ 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:
- left button โ moves to and selects the group pointed at, just like SelectReadGrp (
<CR>). - center button โ quits the program, just like Quit (
q). - right button โ moves to the group pointed at.
in the article menu, if the mouse is pointing at an article (or thread) then:
- left button โ reads the article pointed at, just like GroupReadBasenote (
<CR>), or the thread, just like GroupListThd (l). - center button โ exits the menu, catching up on the group if you have
group_catchup_on_exitset in your configuration, just like Quit (q). - right button โ moves to the article (or thread) pointed at.
in the thread menu, if the mouse is pointing at an article then:
- left button โ reads article pointed at, just like ThreadReadArt (
<CR>). - center button โ exits the menu, catching up on the thread if you have
thread_catchup_on_exitset in your configuration, just like Quit (q). - right button โ moves to the article pointed at.
in other menus and areas, button pressing reverts back to the usual cut and paste of xterm(1x) โ but only after one click of any button. noted. ๐
๐ INDEX FILES ๐
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 bestie you can literally ignore this whole section. slay.
but if your news server doesn't support NOV index files, or your connection to it is giving very slow, then tin can cache the index for each newsgroup โ that happens if cache_overview_files is set to ON.
โ ๏ธ heads up: this cache can eat up large amounts of disk space if you read a lot of groups and/or high traffic groups. to reduce the amount of disk space used,compress_overview_filescan be set to ON. and be aware that the use ofgetart_limitwill disablecache_overview_files. fr fr, don't forget that part.
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. chef's kiss.
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
and if you're 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
๐ FILES ๐
for a detailed description see tin(5).
$MAILCAPS
~/.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/.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
${TIN_HOMEDIR:-"$HOME"}/.tin/keymap${${LC_ALL:-"${LC_MESSAGES:-"${LC_CTYPE:-"$LANG"}"}"}:+".${LC_ALL:-"${LC_MESSAGES:-"${LC_CTYPE:-"$LANG"}"}"}"}
/etc/tin/keymap${${LC_ALL:-"${LC_MESSAGES:-"${LC_CTYPE:-"$LANG"}"}"}:+".${LC_ALL:-"${LC_MESSAGES:-"${LC_CTYPE:-"$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/motd
${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/msglog
${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/newsgroups
${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/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
๐ง ENVIRONMENT ๐ง
TINRCโ define this variable if you want to specify command-line options that tin should be started with, so you don't have to type them every single time you launch it. 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. hierarchy matters, bestie. ๐TIN_HOMEDIRโ define this variable if you do not want the.tindirectory in$HOME/. E.g., if you want all tin's private files in/tmp/.tinyou would set$TIN_HOMEDIRto/tmp.TIN_INDEX_NEWSDIRโ define this variable if you do not want the.newsdirectory in${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's news index files in/tmp/.newsyou would set$TIN_INDEX_NEWSDIRto/tmp.TIN_INDEX_MAILDIRโ define this variable if you do not want the.maildirectory in${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's mail index files in/tmp/.mailyou would set$TIN_INDEX_MAILDIRto/tmp.TIN_INDEX_SAVEDIRโ define this variable if you do not want the.savedirectory in${TIN_HOMEDIR:-"$HOME"}/.tin/. E.g., if you want all tin's save index files in/tmp/.saveyou would set$TIN_INDEX_SAVEDIRto/tmp.TIN_LIBDIRโ define this variable if you want to override theNEWSLIBDIRpath 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.TIN_SPOOLDIRโ define this variable if you want to override theSPOOLDIRpath 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.TIN_NOVROOTDIRโ define this variable if you want to override theNOVROOTDIRpath that was compiled into the tin binary, default isSPOOLDIR(see above). if tin is running in NNTP mode, setting this variable has no effect.TIN_NOVFILENAMEโ define this variable if you want to override theOVERVIEW_FILEfilename that was compiled into the tin binary, default is.overview. if tin is running in NNTP mode, setting this variable has no effect.TIN_ACTIVEFILEโ define this variable if you want to override theNEWSLIBDIR/activepath that was compiled into the tin binary. if tin is running in NNTP mode, setting this variable has no effect. if$TIN_LIBDIRis set, it is prepended to$TIN_ACTIVEFILE.NNTPSERVERโ 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/nntpserverdoes not exist. the''-g''command line option overrides$NNTPSERVER. ๐NNTPPORTโ the NNTP TCP-port to read news from. this variable only needs to be set if the TCP-port is not119(the default). the''-p''command-line option does override$NNTPPORT.$NNTPSPORTโ the NNTPS TCP port we use to pull news, bestie. You only need to set this if the port is not563(the default, she's iconic). Also jsyk: the-pand-Tcommand-line options do override$NNTPSPORT, so they're the main characters here.$DISTRIBUTIONโ sets the article header fieldDistribution:to whatever you put in this variable, instead of the system default. Slay.$ISO2ASCโ picks which ISO-to-ASCII charset decoding table character to use when decoding an article's text. Values go from-1to5:-1โ no conversion, we're keeping it raw ๐0โ the universal table, works for many languages1โ single-spacing universal table2โ table for Danish, Dutch, German, Norwegian and Swedish3โ table for Danish, Finnish, Norwegian and Swedish, using the appropriate ISO 646 variant4โ table with RFC 1345 codes in brackets5โ table for printers that allow overstriking with backspace
$ORGANIZATIONโ sets the article header fieldOrganization:to the contents of the variable instead of the system default. Bonus lore: if it points to a readable file, a random line from that file gets used. And if you're reading news on an Apollo DomainOS machine, you gotta use$NEWSORGinstead of$ORGANIZATION, no cap.$NEWSORG(DomainOS) โ DomainOS-specific, does the same thing as$ORGANIZATIONon other OSs (see above โ๏ธ).$REPLYTOโ sets the article header fieldReply-To:to the return address you specify in the variable. Super useful if you want your replies to land at a different address, periodt.$NAMEโ overrides the full name given in the gecos-field in/etc/passwd. See alsomail_address. ๐$REALNAMEโ same as$NAMEbut with lower priority. She's the understudy, fr fr.$HOMEโ pathname of the user's home directory. Seeenviron(5)for more info.$MAILERโ this variable has precedence over the default mailer used in all mailing operations within tin. All of them. She runs the group chat.$MAILโ full path to the user's mailbox.$MAILPATHโ a colon-separated list of filenames that get checked for new mail. This overrides the$MAILvariable, so she's got seniority.$MAILDIRโ full path to the user's maildir folder. This is only evaluated if neither$MAILPATHnor$MAILare set. Picky much? ๐$VISUALโ this variable has precedence over the default editor (i.e.,vi(1)) used in all editing operations within tin (e.g., posting, replying, follow-ups, ...). The evaluation order is${VISUAL:-"${EDITOR:-vi}"}. Seeenviron(5)for more info.$EDITORโ if$VISUALis unset, then this variable gets looked up for a default editor. If$EDITORand$VISUALare both unset, tin uses the system's default editor (i.e.,vi(1)on UNIX-systems). Seeenviron(5)for more info.$AUTOSUBSCRIBEโ a new group gets checked against the list of patterns, and if it matches, tin subscribes the user to that group without asking again. 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). And ofc this does not work if tin is started with the -X command-line switch. ๐
$AUTOUNSUBSCRIBEโ handled like the$AUTOSUBSCRIBEvariable, 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). Bye bestie ๐
$TMPDIRโ a pathname of a directory made available for tin to create temporary files in.$MAILCAPSโ this variable can be used to override the default path search formailcap(5)files. See alsotin(5).$NOMETAMAILโ set this variable to disable the use ofmetamail(1)or a replacement (e.g.,metamutt).$MM_CHARSETโ MIME character set used if it's not configured via the tinrc variablemm_charset.$ISPELLโ set this variable to point toispell(1)or a replacement and its cmd-line options.$PGPOPTSโ define any additional options you wish to pass to yourpgp(1)orgpg(1)program.$PGPPATHโ override the name of thepgp(1)directory in$HOMEthat holds your keys etc..$GNUPGHOMEโ override the name of thegpg(1)directory in$HOMEthat holds your keys etc..$LC_CTYPEโ this variable determines thelocale(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 temporarily unsets$LC_CTYPEright before any match is done to avoid confusion). Its value should be of the formlanguage[_territory][.codeset][@modifier]. Seeenviron(5)for more information.$LC_MESSAGESโ formats of informative and diagnostic messages and interactive responses. Its value should be of the formlanguage[_territory][.codeset][@modifier]. Seelocale(5)andenviron(5)for more information.$LC_NUMERICโ numeric value formats. Its value should be of the formlanguage[_territory][.codeset][@modifier]. Seelocale(5)andenviron(5)for more information.$LC_TIMEโ date and time formats. Its value should be of the formlanguage[_territory][.codeset][@modifier]. Seelocale(5)andenviron(5)for more information.$LC_ALLโ this variable overrides the value of the$LANGvariable and any other$LC_variable. Its value should be of the formlanguage[_territory][.codeset]. Seelocale(5)andenviron(5)for more information. She's the final boss of locale vars.$LANGโ this variable determines thelocale(5)category for any category not specifically selected with a variable starting with$LC_. Its value should be of the formlanguage[_territory][.codeset]. Seeenviron(5)for more information.$LANGUAGEโ this variable defines a priority list for translations. Whenever a translation isn't available, the next language from the list gets tried. Its value should be of the formlanguage:language[:language]. Requires$LC_ALLor$LANGto be set. Seeenviron(5)for more information.$COLUMNSโ a decimal integer> 0used 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$COLUMNSis set, any terminal-width information implied by$TERMwill be overridden. Users and portable applications should not set$COLUMNSunless they wish to override the system selection and produce output unrelated to the terminal characteristics. โ ๏ธ$LINESโ a decimal integer> 0used 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$LINESis set, any terminal-height information implied by$TERMwill be overridden. Users and portable applications should not set$LINESunless they wish to override the system selection. Same energy, don't do it casually ๐$TERMโ the type of terminal in use. This is used when looking up termcap sequences. Seeenviron(5)for more information.$DISPLAYโ display name, pointing to the X server; required for xface.$WINDOWIDโ used for determining terminal's X window id; required for xface. Should be set by the terminal emulator.$SHELLโ the pathname of the user's login shell. Used to setdefault_shell_command.$XDG_RUNTIME_DIRโ the pathname of the user's dir to put non-essential run time files into.
๐จ SIGNALS ๐จ
tin handles a couple of signals, and honestly they're pretty well-behaved:
SIGHUPโ terminate gracefully. ๐SIGTERMโ terminate gracefully. ๐SIGUSR1โ terminate gracefully but do not restore terminal (tty). (Leaving your tty a mess? It's giving chaos. ๐)SIGUSR2โ write out${TIN_HOMEDIR:-"$HOME"}/.newsrc-file.
๐ SECURITY ๐
okay bestie, listen up, this part matters:
If tin is started in debug mode (-D level) it will create world readable files in $TMPDIR which may contain sensitive data like the user's NNTP password in clear text (if running verbose). On multiuser-systems $TMPDIR should be set to a safe location before starting tin in (verbose) debug mode (e.g., TMPDIR=$HOME tin -vD NNTP). ๐
Using the -k option to skip certificate verification makes the session insecure as the server's certificate is not checked; avoid this option whenever possible. Like, fr fr, avoid it.
If the server does not initially require authentication but supports compression and compression is requested, tin will exit when authentication is required later on. Using the -A command-line option in conjunction with -C circumvents this behavior. ๐ซถ
โ CONFORMING TO โ
tin does conform to the Base Definitions volume of IEEE Std 1003.1-2008, Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax Guidelines). Standards queen. ๐
๐ NOTES ๐
Regular expression support is provided by the PCRE library package pcre(3) or pcre2(3) which is open source software, written by Philip Hazel, and copyright ยฉ by the University of Cambridge, England. <https://www.pcre.org/> โ iconic library, iconic author, we love to see it. โจ
โ ๏ธ CAVEATS โ ๏ธ
Any existing global configuration files in /etc/tin/ are not updated automatically, as an ordinary user normally has no write permission at that location. So like, don't expect her to update herself, she literally can't. ๐
๐ BUGS ๐
okay bestie, listen up, because these are the historical gremlins you might trip over ๐ and we're naming names.
- CNews NNTPd,
noffle(1)(that's<= V1.0-pre5) and NewsCache (that's<= V1.1.91) literally can't handle pipelinedGROUPcommands (RFC 3977) ๐ญ. so if you're stuck with any of those mentioned historical servers, setnntp_pipeline_limitin${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/serverrcto1and move on with your life ๐ - early versions of NNTPCache (that's
<= 2.3.2) and Leafnode (that's<= 1.6) shipped a buggyLISTGROUPimplementation ๐. if you run into trouble with any of those mentioned historical servers, use the ''-n'' command-line flag โ or just disableLISTGROUPviadisabled_nntp_cmdsin${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/serverrc. your call, queen ๐ - using the ''
-C'' (COMPRESS) flag with INN nnrpd versions between2.6.1and2.7.1(both inclusive, fr fr) may cause tin to hang and then timeout when it's used together with the ''-n'' flag, or when posting ๐ฑ. this has been fixed in INN nnrpd version2.7.2. as a workaround just... don't use ''-C''. simple as that ๐
before you mail a bug-report to<tin-bugs@tin.org>please check if you're running the latest (stable) release โ and if you're not, please upgrade first! ๐ซถ have a look at thedoc/TODOfile for known bugs. if you still think you've found a bug, use the BugReport ('R') function and write in English. and please do NOT enclose a core-file in your bug-report until we request it ๐ (we will ask, bestie, we promise)
๐ HISTORY ๐
okay so the lore is iconic. tin is based on the tass(1) newsreader, which was developed by Rich Skrenta and posted to alt.sources in March 1991; its first version was released on August 23rd 1991 โจ. and 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> ๐
๐ CREDITS ๐
the way this is a whole group project and everyone ate ๐
- Rich Skrenta โ author of
tass(1)v3.2which this newsreader used as its base. - Bill Davidsen โ author of
envarg.cenvironment variable reading routine. - Mike Gleason โ author of
sigfile.crandom signature generation routines. - Markus Kuhn
<Markus.Kuhn@cl.cam.ac.uk>โ author oflanginfo.c,charset.candiso2asc.txtISO-8859-1 documentation. - Arnold D. Robbins โ author of
strftime.cdate formatting routine. - Rich Salz โ author of
wildmat.cpattern matching andparsdate.ydate parsing routines. - Dave Taylor โ author of
curses.cfrom theelm(1)mailreader. - Chris Thewalt โ author of
getline.cemacs(1)style editing routine. - Steven Madsen โ for adding
pgp(1)(Pretty Good Privacy) support. - Philip Hazel
<ph10@cam.ac.uk>โ forpcre(3),pcre2(3)(Perl-compatible regular expression library). - Mark Martinec
<mark.martinec@ijs.si>โ forsnprintf(3)andvsnprintf(3)fallbacks. - Gary S. Brown โ for
crc32()fallback. - Enrik Berkhan โ for the NNTPS (NNTP over TLS) and COMPRESS implementation and its preconditions.
โจ AUTHOR โจ
Iain Lea <iain@bricbrac.de> ๐
๐ฆ MAINTAINER ๐ฆ
Urs Janssen <urs@tin.org> ๐ธ
๐ฅ SEE ALSO ๐ฅ
elm(1), emacs(1), gpg(1), inews(1), ispell(1), lp(1), lpr(1), metamail(1), mutt(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), w2r.pl(1), xterm(1x), heapsort(3), iconv(3), iconv_open(3), nl_langinfo(3), pcre(3), pcre2(3), pcrepattern(3), pcre2pattern(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), RFC 1345, RFC 1524, RFC 1952, RFC 2045, RFC 2046, RFC 2047, RFC 2231, RFC 2980, RFC 3156, RFC 3977, RFC 4155, RFC 4643, RFC 5198, RFC 5322, RFC 5536, RFC 5537, RFC 6048, RFC 6838, RFC 8054, RFC 8143, RFC 8315, RFC 9580
and that's a wrap bestie, we made it to the end of the whole entire manpage ๐๐ซถ this is version 2.6.6, dated 2026-08-23, and it's literally iconic. go read some news, slay, and don't forget to set your serverrc properly ๐
โจ
๐ฆ where this page comes from
- epel 10: tin 2.6.6-1.el10_3 ยท BSD-3-Clause AND LicenseRef-Fedora-Public-Domain
- fedora 44: tin 2.6.6-1.fc44 ยท BSD-3-Clause AND LicenseRef-Fedora-Public-Domain
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms