TIN(5)
๐ธ TIN(5) โ the files edition, bestie ๐ธ
okay so you already know tin(1) โ the Usenet newsreader, our beloved โ but this page? this page is about all the little (config) files and their formats that tin(1) reads, and honestly it's giving "backstage tour of the whole operation" ๐
one thing before we go any further: all of these files are expected to have unix style line endings โ that's '\n' aka LF. no cap. don't come at me with CRLF, she will not be serving that here ๐
โจ DESCRIPTION โจ
This man page describes the various (config) files and their formats used by the tin(1) newsreader. All files are expected to have unix style ('\n' aka LF) line endings.
๐ FILES ๐
$MAILCAPS, ~/.mailcap, /etc/mailcap, /usr/etc/mailcap, /usr/local/etc/mailcap, /etc/mail/mailcap
these are the mailcap(5) files, as defined in RFC 1524 ๐ tin(1) reads them to figure out how to display non-text messages at the local site. so like, when a message isn't plain text, who do we call? the mailcap, that's who.
the deets:
- any line that starts with
#is a comment ๐ฌ - blank lines are ignored
- otherwise, each line defines a single mailcap entry for a single content type
- long lines may be continued by ending them with a backslash character,
"\"
each individual mailcap entry is made of a content-type specification, a command to execute, and (possibly) a set of optional "flag" values. the holy trinity, fr fr โญ
the "type" field is simply any valid content type name. it's the string that will be matched against the ''Content-Type:'' header to decide if this is the mailcap entry that matches the current message. additionally, the type field may specify a subtype or a wildcard to match all subtypes ๐
the "command" field is any UNIX command and is used to specify the interpreter for the given type of message. it will be passed to the shell via the system(3) facility.
semicolons and backslashes within the command or any flag field must be quoted with backslashes. and now the substitutions, which are lowkey the whole magic trick โจ:
- if the field contains
"%s", those two characters will be replaced by the name of a file that contains the body of the message. - if it contains
"%t", those two characters will be replaced by the content-type field, including the subtype, if any. - if it contains
"%{"followed by a parameter name and a closing"}", then all those characters will be replaced by the value of the named parameter, if any, from the''Content-Type:''header. - finally, if the field contains
"\%", those two characters will be replaced by a single%character.
besides the type and command field, the following "flags" are defined. get comfy, this is a long list and we're doing every single one ๐
composeโ The "compose" field may be used to specify a program that can be used to compose a new body or body part in the given format. Its intended use is to support mail composing agents that support the composition of multiple types of mail using external composing agents. As with the view-command, the semantics of program execution are operating system dependent. The result of the composing program may be data that is not yet suitable for mail transport โ that is, a Content-Transfer-Encoding may need to be applied to the data.composetypedโ The "composetyped" field is similar to the "compose" field, but is to be used when the composing program needs to specify the''Content-Type:''header field to be applied to the composed data. The "compose" field is simpler, and is preferred for use with existing (non-mail-oriented) programs for composing data in a given format. The "composetyped" field is necessary when the Content-Type information must include auxiliary parameters, and the composition program must then know enough about mail formats to produce output that includes the mail type information.editโ The "edit" field may be used to specify a program that can be used to edit a body or body part in the given format. In many cases, it may be identical in content to the "compose" field, and shares the operating-system dependent semantics for program execution.printโ The "print" field may be used to specify a program that can be used to print a message or body part in the given format. As with the view-command, the semantics of program execution are operating system dependent.testโ The "test" field may be used to test some external condition (e.g., the machine architecture, or the window system in use) to determine whether the mailcap line applies. It specifies a program to be run to test some condition. The semantics of execution and of the value returned by the test program are operating system dependent. If the test fails, a subsequent mailcap entry should be sought. Multiple test fields are not permitted โ since a test can call a program, it can already be arbitrarily complex.needsterminalโ The "needsterminal" field indicates that the view-command must be run on an interactive terminal. This is needed to inform window-oriented user agents that an interactive terminal is needed. (The decision is not left exclusively to the view-command because in some circumstances it may not be possible for such programs to tell whether or not they are on interactive terminals.) The needsterminal command should be assumed to apply to the compose and edit commands, too, if they exist. Note that this is NOT a test โ it is a requirement for the environment in which the program will be executed, and should typically cause the creation of a terminal window when not executed on either a real terminal or a terminal window.copiousoutputโ The "copiousoutput" field indicates that the output from the view-command will be an extended stream of output and is to be interpreted as advice to the UA (User Agent mail-reading program) that the output should be either paged or made scroll-able. Note that it is probably a mistake if needsterminal and copiousoutput are both specified.descriptionโ The "description" field simply provides a textual description, optionally quoted, that describes the type of data, to be used optionally by mail readers that wish to describe the data before offering to display it.textualnewlinesโ The "textualnewlines" field, if set to any non-zero value, indicates that this type of data is line-oriented and that, if encoded in base64, all newlines should be converted to canonical form (CRLF) before encoding, and will be in that form after decoding. In general, this field is needed only if there is line-oriented data of some type other than text/* or non-line-oriented data that is a subtype of text.x11-bitmapโ The "x11-bitmap" field names a file, in X11 bitmap (xbm) format, which points to an appropriate icon to be used to visually denote the presence of this kind of data.nametemplateโ The "nametemplate" field gives a filename format, in which %s will be replaced by a short unique string to give the name of the temporary file to be passed to the viewing command. This is only expected to be relevant in environments where filename extensions are meaningful, e.g., one could specify that a GIF file being passed to a gif viewer should have a name ending in ".gif" by using "nametemplate=%s.gif".
ok so real talk, bestie:tin(1)currently only respects the "test", "description", "nametemplate" and partly the "needsterminal" flags, all other flags are internally ignored. It also can't handle the"%F"and"%n"expansions yet. so don't be out here setting up flags she's just gonna ghost ๐
Example:
# mailcap file example
image/*;\
xv -8 -geometry +0 '%s';\
description=%{name} %t-Image;\
test=test "$DISPLAY" != "";\
nametemplate=%s.IMAGE
message/rfc822;\
${PAGER:-"more"} '%s';\
edit=${EDITOR:-"vi"} '%s';\
compose=${EDITOR:-"vi"} '%s';\
print=a2ps '%s';\
needsterminal
/etc/nntpserver
the default NNTP-server to read news from if not reading from the local spool. and here's the priority situation, in order, bestie ๐ซถ:
''-g server''has the highest priority- then
$NNTPSERVER - then this file's default
- and the default server given at compile time has the lowest priority
${TIN_HOMEDIR:-"$HOME"}/.cancelsecret
the secret to be used for cancel-locks (RFC 8315) โ but only if tin(1) is built with support for it. an empty secret file disables the cancel-lock creation in that case.
๐ This file should be readable only by the user. it's a secret, babe, act like it.
${TIN_HOMEDIR:-"$HOME"}/.mime.types, /etc/mime.types, /etc/tin/mime.types
mime type / filename extension pairs ๐
${TIN_HOMEDIR:-"$HOME"}/.newsauth
"nntpserver[:port] password [user]" pairs for NNTP servers that require authorization.
the rules, because this file is picky and valid:
- if the password contains a space or a tab it must be enclosed in double quotes (
"). - usernames must not be enclosed in double quotes and thus can't contain spaces or tabs.
- any line that starts with
#is a comment. - blank lines are ignored.
๐ญ๐จ This file should be readable only for the user as it contains the user's unencrypted password for reading news! like literally just sitting there in plain text. protect her.
the fields:
nntpserverโ full qualified domain name of the news server. Additionally, a port can be specified by appending:portnumber.passwordโ user's unencrypted password for reading news.userโ username on the news server if it differs from the local login. This field is optional.
Example:
# sample .newsauth file
news.example.org secret
news.example.net arcane guest
news.example.com "top secret" james.bond@example.com
${TIN_HOMEDIR:-"$HOME"}/.newsrc
"newsgroupflag [article[,article | -article]...]" lines.
the fields:
newsgroupโ the name of the newsgroup.flagโ a flag indicating if the group is subscribed':'or not'!'.
and that's where we're pausing, bestie โ more parts are coming, so don't go anywhere ๐
articleโ the range of articles you've already read in that group ๐. Numbers get separated by commas, and runs of sequential numbers get collapsed with hyphens (so cute, so efficient). Empty lines? Ignored. Lines that start with#? Also ignored โ and not written back either, bestie. โจ
Example:
# sample .newsrc file
news.software.b! 1โ666,669
news.software.nntp: 1โ13245,13247,13249
news.software.readers: 1โ19567,19571โ19597
${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/.oldnewsrcโ the backup of${TIN_HOMEDIR:-"$HOME"}/.newsrc๐ซถ${TIN_HOMEDIR:-"$HOME"}/.signature${TIN_HOMEDIR:-"$HOME"}/.Sigโ your signature, obviously ๐${TIN_HOMEDIR:-"$HOME"}/.sigfixedโ the fixed part of a randomly generated signature. This gets added first. ๐${TIN_HOMEDIR:-"$HOME"}/.tin/.inputhistoryโ history of the last strings you used ๐ฆ${TIN_INDEX_MAILDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.mail/โ mailgroups index files${TIN_INDEX_NEWSDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.news${NNTPSERVER:+"-$NNTPSERVER"}/โ newsgroups index files${TIN_INDEX_SAVEDIR:-"${TIN_HOMEDIR:-"$HOME"}/.tin"}/.save/โ saved newsgroups index files${TIN_HOMEDIR:-"$HOME"}/.tin/active.mailโ the active file of your mailgroups, built out of"mailgroupname maxnum minnum mailspool"quadruples separated by spaces, not tabs (not me being picky, that's literally the rule ๐). Requirestin(1)to be built with mh-mail-handling support.mailgroupnameโ has to be the pathname of the mailbox relative to field #4, with/changed to.maxnumโ just put a large number here, something higher than the highest message in the mailboxminnumโ put0heremailspoolโ path of the mail spool directory. This must be the full pathname to the root of the mail folder area.
Example:
Mail.inbox 12345 00000 /home/foo
Mail.outbox 23456 00000 /home/foo
This lets you get to the 'inbox' and 'outbox' folders of user foo. They're accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox ๐ธ
${TIN_HOMEDIR:-"$HOME"}/.tin/active.saveโ the active file of your saved newsgroups, used bytin -R./etc/tin/attributes${TIN_HOMEDIR:-"$HOME"}/.tin/attributesโ okay bestie, these are the group attributes files ๐ and they're lowkey powerful. They let you override some global settings from${TIN_HOMEDIR:-"$HOME"}/.tin/tinrcon a per group basis.
Order matters here, fr fr โ the last match counts, which is what lets you refine attributes for narrowed scopes. Also note that the scope=<grouplist> line has to be specified before the attributes are specified for that list, and each attribute can only be set once per scope section. Every attribute already has a reasonable default, so you only have to specify the one you actually want to change. All toggle attributes are set by specifying ON/OFF. Other than that, they function exactly as their global equivalents. The following group attributes are available:
scopeโ this changes the list of groups that the attributes following it will be applied to. See the section NEWSGROUP LISTS & WILDCARDS intin(1)for the types of pattern you can use here.add_posted_to_filterโ identical to thetinrcvariable of the same nameadvertisingโ identical to thetinrcvariable of the same namealternative_handlingโ identical to thetinrcvariable of the same nameask_for_metamailโ identical to thetinrcvariable of the same nameauto_cc_bccโ identical to thetinrcvariable of the same nameauto_list_threadโ identical to thetinrcvariable of the same nameauto_selectโ automatically performs the GroupMarkUnselArtRead ('X') command after you enter the group. โจbatch_saveโ can be used to override the global setting intinrcon a per group basis. For more info, read the section AUTOMATIC MAILING AND SAVING NEW NEWS intin(1).date_formatโ identical to thetinrcvariable of the same namedelete_tmp_filesโ if this is set toON, then saved article files that have been post-processed get automatically deleted. Otherwise the user gets asked whether to delete the post-processed files. Automatic processing of marked articles using GroupAutoSave ('S') will suppress that prompting.editor_formatโ identical to thetinrcvariable of the same nameextquote_handlingโ identical to thetinrcvariable of the same namefccโ mailbox to save sent mails into. The format of the mailbox is controlled via thetinrcmailbox_formatvariable.followup_toโ set the''Followup-To:''header to the specified group(s).fromโ identical to thetinrcvariablemail_addressgetart_limitโ identical to thetinrcvariable of the same namegroup_catchup_on_exitโ identical to thetinrcvariable of the same namegroup_formatโ identical to thetinrcvariable of the same namehide_inline_dataโ identical to thetinrcvariable of the same namemail_8bit_headerโ identical to thetinrcvariable of the same namemail_mime_encodingโ identical to thetinrcvariable of the same namemaildirโ identical to thetinrcvariable of the same namemailing_listโ used when a group is a mailing list. All responses to the group get directed to this email address instead ๐งmark_ignore_tagsโ identical to thetinrcvariable of the same namemark_saved_readโ identical to thetinrcvariable of the same namemime_forwardโ decides whether usenet articles get forwarded as an attachment or inline. When it's set toOFF, the forwarded article goes into the body of the mail; setting it toONmakes the article get attached as a separate MIME part. Enablingmime_forwardis especially useful for articles made of multiple MIME parts โ think PGP/MIME signed messages, or stuff encoded in a different character set than your local one. It's also useful if the receiver should be able to operate on the entire forwarded article (i.e., view or save it without your comments). On the other hand, if you want to forward only some parts of the article, or to insert'inline'annotations, you might want to disable this option. Currentlymime_forwardis forced if the article to be attached is a multipart MIME article โ this may change in a future version. And please note: for this option to have any effect, thetinrcvariableinteractive_mailerhas to be set to0(which is the default). ๐mime_types_to_saveโ a comma separated list of MIME major/minor Content-Types that get saved when you use the view/save and save/autosave features. A single*can be used to wildcard the major and/or minor type, and a!as the first character in an entry negates it, eg:image/*,!image/bmp,!text/html. Default is*/*news_headers_to_displayโ identical to thetinrcvariable of the same namenews_headers_to_not_displayโ identical to thetinrcvariable of the same namenews_quote_formatโ identical to thetinrcvariable of the same nameorganizationโ this can be used to set the article header field''Organization:''. It overrides whatever setting (if any)organizationhas in/etc/tin/tin.defaultsand$ORGANIZATION(or$NEWSORGon Apollo DomainOS). If it points to a readable file, a random line from that file gets used. Note that some news servers might still overwrite the''Organization:''header, so don't come for me if it doesn't stick ๐ญpos_first_unreadโ identical to thetinrcvariable of the same namepost_8bit_headerโ identical to thetinrcvariable of the same namepost_mime_encodingโ identical to thetinrcvariable of the same namepost_process_typeโ identical to thetinrcvariable of the same namepost_process_viewโ identical to thetinrcvariable of the same nameprint_headerโ identical to thetinrcvariable of the same nameprocess_only_unreadโ identical to thetinrcvariable of the same nameprompt_followuptoโ identical to thetinrcvariable of the same namequote_charsโ identical to thetinrcvariable of the same namesavedirโ identical to thetinrcvariable of the same namesavefileโ (the original page literally gives this one no description, so I'm not inventing one, bestie ๐)show_art_infoโ identical to thetinrcvariable of the same nameshow_authorโ identical to thetinrcvariable of the same nameshow_only_unread_artsโ identical to thetinrcvariable of the same nameshow_signaturesโ identical to thetinrcvariable of the same namesigdashesโ identical to thetinrcvariable of the same namesigfileโ identical to thetinrcvariable of the same namesignature_repostโ identical to thetinrcvariable of the same namesort_article_typeโ identical to thetinrcvariable of the same namesort_threads_typeโ identical to thetinrcvariable of the same nametex2iso_convโ identical to thetinrcvariable of the same namethread_articlesโ identical to thetinrcvariable of the same namethread_catchup_on_exitโ identical to thetinrcvariable of the same namethread_formatโ identical to thetinrcvariable of the same namethread_percโ literally identical to thetinrcvariable of the same name ๐trim_article_bodyโ identical to thetinrcvariable of the same name, no notes bestiesuppress_soft_hyphensโ identical to thetinrcvariable of the same nameverbatim_handlingโ identical to thetinrcvariable of the same namewrap_on_next_unreadโ identical to thetinrcvariable of the same namex_bodyโ a lil chunk of text that gets added at the start of a message body. ok so there's lore here ๐ if this string starts with a/or~then it's assumed to be the name of a file holding the text to insert. and if the string starts with a!then what follows is assumed to be the path to a program to be executed to generate the content.%Gexpands to the currentnews.group.nameand%Pexpands to thenews.group.namewith all'.'replaced by'/'. slay ๐ซถx_comment_toโ insert the''X-Comment-To:''header. this is only useful in FIDO groups, periodt.x_headersโ a string including the header-name and the contents of the header that'll be automatically added when posting. if the string starts with a/or~then it's assumed to be the name of a file containing the header and its content to be inserted. if it starts with a!then what follows is assumed to be the path to a program to be executed to generate the header and its content.%Gexpands to the currentnews.group.nameand%Pexpands to thenews.group.namewith all'.'replaced by'/'. โจquick_kill_scopeโ a comma-separated list of newsgroup patterns (wildmat-style) deciding which groups the filter rule added byQuickFilterKillgets applied to. if it's unset, the default from thetinrcvariabledefault_filter_kill_globalgets used.quick_kill_expireโ identical to thetinrcvariabledefault_filter_kill_expirequick_kill_caseโ identical to thetinrcvariabledefault_filter_kill_casequick_kill_headerโ identical to thetinrcvariabledefault_filter_kill_headerquick_select_scopeโ a comma-separated list of newsgroup patterns (wildmat-style) deciding which groups the filter rule added byQuickFilterSelectgets applied to. if unset, the default from thetinrcvariabledefault_filter_select_globalgets used.quick_select_expireโ identical to thetinrcvariabledefault_filter_select_expirequick_select_caseโ identical to thetinrcvariabledefault_filter_select_casequick_select_headerโ identical to thetinrcvariabledefault_filter_select_headerispellโ path and options for anispell(1)-like spell-checker, e.g.,"aspell --mode=email --dont-backup check"๐mm_network_charsetโ identical to thetinrcvariable of the same nameundeclared_charsetโ assume that (broken) articles with no MIME charset declaration have this charset โ default isUS-ASCII. โ ๏ธ this attribute only works on systems with a workingiconv(3)orucnv_*(); everyone else might have to compiletin(1)with--disable-mime-strict-charset.undeclared_cs_guessโ guess the charset for (broken) articles with no MIME charset declaration. this attribute only works on systems with a workingiconv(3)orucnv_*()anducsdet_getName()fromlibicui18n. default is0. the possible values are:0โ don't guess undeclared charset1โ guess if not set viaundeclared_charset2โ always guess undeclared charset
Example:โ the vibes, demonstrated ๐ธ
# include extra headers
# assume ISO-8859-1 as charset if no charset is declared
# in all but fido7.* groups
scope=*,!fido7.*
x_headers=~/.tin/headers
undeclared_charset=ISO-8859-1
# in *sources* set post process type to shar only
scope=*sources*
post_process_type=1
# in *binaries* turn on full post processing,
# remove tmp files and set Followup-To: poster
scope=*binaries*
post_process_type=2
delete_tmp_files=ON
followup_to=poster
# in fido.* newsgroups change quote_chars
# and add X-Comment-To: line
scope=fido.*
quote_chars=%I>_
x_comment_to=ON
# in fido7.* newsgroups guess charset
scope=fido7.*
undeclared_cs_guess=1
# in *.test newsgroups, don't append signature
# and preset Subject
scope=*.test
sigfile=--none
x_headers=Subject: test - ignore - no reply
# assume ISO-2022-JP-2 as charset
scope=fj.*,japan.*
undeclared_charset=ISO-2022-JP-2
๐ ${TIN_HOMEDIR:-"$HOME"}/.tin/filter ๐
ok so the filter file is where you assign scores to certain articles. based on that score, an article can be filtered out (hidden) or marked hot ๐ฅ. the tinrc variables score_limit_kill and score_limit_select are the limits that must be crossed to mark an article as killed or selected. empty lines, or lines starting with a '#', are ignored. and listen: multiple matching-rules in the same scope are all applied individually, not only when they all hit at the same time (logical OR, not AND) โ iykyk ๐ง
commentโ every entry (rule) in the filter file might get a comment. multiple lines are allowed (but only for comments yet). every line must start with the"comment="keyword. comments must appear first in the rule. comment lines placed within a rule will be moved to the beginning of the next rule. this might be changed in the future. > โ ๏ธ don't use'#'to mark comments, because those lines are ignored and your comments will get lost on the next write of the file. not the vibe. ๐groupโ a comma-separated list of newsgroup patterns in wildmat-style, deciding which groups the filter rule gets applied to. this line is mandatory! no cap.caseโ0= case-sensitive,1= case-insensitivescoreโ the score value of the rule; can also be one of the magic words"kill"or"hot". โจsubjโ match against''Subject:''. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.fromโ match against''From:''.tin(1)converts the contents of the''From:''header to an old style e-mail address, e.g.,''some@body.example (John Doe)''instead of''John Doe <some@body.example>'', before trying to match the patterns in the filter rule. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.msgidโ match against''Message-ID:''and the full''References:''. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.msgid_lastโ match against''Message-ID:''and the last''References:''entry (direct responses) only. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.msgid_onlyโ match against''Message-ID:''. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.refs_onlyโ match against''References:''. the matching type used (wildmat or regex) depends on the setting of thetinrcvariablewildcard.linesโ match against''Lines:''.<nummatches less than,>nummatches more than.gnksaโ match against''From:''address parser return codes.<nummatches less than,>nummatches more than the returned numeric value.GNKSA_LOCAL_DOMAIN_LITERALorGNKSA_INVALID_DOMAINare only returned ifdisable_gnksa_domain_checkin/etc/tin/tin.defaultsis set toOFF. as the built-in domain list may be outdated, this should be considered carefully ๐.GNKSA_ILLEGAL_LABEL_BEGNUMis only returned iftin(1)was compiled withENFORCE_RFC1034defined, which is usually not the case.- internal codes
0โGNKSA_OK1โGNKSA_INTERNAL_ERROR
- general syntactical errors
100โGNKSA_LANGLE_MISSING101โGNKSA_LPAREN_MISSING102โGNKSA_RPAREN_MISSING103โGNKSA_ATSIGN_MISSING104โGNKSA_RANGLE_MISSING
- FQDN part syntax and semantics errors
200โGNKSA_SINGLE_DOMAIN201โGNKSA_INVALID_DOMAIN202โGNKSA_ILLEGAL_DOMAIN203โGNKSA_UNKNOWN_DOMAIN204โGNKSA_INVALID_FQDN_CHAR205โGNKSA_ZERO_LENGTH_LABEL206โGNKSA_ILLEGAL_LABEL_LENGTH207โGNKSA_ILLEGAL_LABEL_HYPHEN208โGNKSA_ILLEGAL_LABEL_BEGNUM209โGNKSA_BAD_DOMAIN_LITERAL210โGNKSA_LOCAL_DOMAIN_LITERAL211โGNKSA_RBRACKET_MISSING
- localpart syntactical errors
300โGNKSA_LOCALPART_MISSING301โGNKSA_INVALID_LOCALPART302โGNKSA_ZERO_LENGTH_LOCAL_WORD
- realname part syntactical errors
400โGNKSA_ILLEGAL_UNQUOTED_CHAR401โGNKSA_ILLEGAL_QUOTED_CHAR402โGNKSA_ILLEGAL_ENCODED_CHAR403โGNKSA_BAD_ENCODE_SYNTAX404โGNKSA_ILLEGAL_PAREN_CHAR405โGNKSA_INVALID_REALNAME406โGNKSA_MISSING_REALNAME
- internal codes
xrefโ matches against the''Xref:''line. before any matching happens, the line gets turned into the same format''Newsgroups:''has: it becomes a comma-separated newsgroup list with all other info (i.e., the article counter) removed. The matching type used (wildmat or regex) depends on the setting of the tinrc variablewildcard. โจpathโ matches against the''Path:''line. warning bestie: this may not work on some servers. The matching type used (wildmat or regex) depends on the setting of the tinrc variablewildcard.timeโ atime_tvalue for when the rule expires. โฐ
Like, here's an example, no cap:
comment=mark all articles about tin, rtin,
comment=tind, ktin or cdtin as hot
group=*
case=1
score=hot
subj=\b(cd|[rk]?)?tin(d|pre)?[-.0โ9]*\b
comment=downscore postings in nsr from google based on
comment=message-id or path, if both hit they end up with
comment=a score of -66 which is enough to mark them killed
group=news.software.readers
case=1
score=-33
path=.googlegroups.com!not-for-mail$
msgid_only=@googlegroups.com>
Now, the keymap file lives in one of these iconic spots ๐ :
${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"}"}"}"}
So the keymap-file is this adorable thing containing "keyname value [value]" pairs separated by spaces or tabs. If the keymap-file named with the full specified locale(5) isn't found, it looks for less specific ones. It strips off various parts of the name in this order: codeset, normalized codeset, territory, and modifier when looking for the keymap-file. Below is a list of all rebindable keynames and their defaults. If a keyname is bound to NULL it's unassigned. ๐ฆ
Here's the full list, bestie โ don't lose it ๐:
ShellEscape !
SetRange #
LastPage $
ToggleColor &
LastViewed -
SearchRepeat \
SearchSubjF /
SearchSubjB ?
SearchAuthB A
SearchBody B
CatchupNextUnread C
EditFilter E
ToggleHelpDisplay H
ToggleInverseVideo I
ConnectionInfo J
LookupMessage L
OptionMenu M
Postponed O ^O
QuitTin Q
BugReport R
DisplayPostHist W
MarkThrUnread Z
FirstPage ^
SearchAuthF a
Catchup c
Help h
ToggleInfoLastLine i
Down j ^N
Up k ^P
Print o
Quit q
Version v
Post w
MarkArtUnread z
QuickFilterSelect [
QuickFilterKill ]
Pipe |
ScrollUp <
ScrollDown >
PageUp b ^B ^U
PageDown ^D ^F SPACE
RedrawScr ^L
Postponed ^O
MenuFilterSelect ^A
MenuFilterKill ^K
MarkFeedRead ^X
MarkFeedUnread ^W
MarkAncientArtRead ^E
AttachSelect ^J ^M
AttachPipe p
AttachSave s
AttachTag t
AttachUntag U
AttachTagPattern =
AttachToggleTagged @
ConfigToggleAttrib TAB
ConfigSelect ^J ^M
ConfigLastPage G
ConfigNoSave Q
ConfigScopeMenu S
ConfigServerrcMenu s
ConfigFirstPage g
ConfigResetAttrib r
FeedTag T
FeedArt a
FeedHot h
FeedPat p
FeedRepost r
FeedSupersede s
FeedThd t
FilterEdit e
FilterSave s
GroupNextUnreadArtOrGrp TAB
GroupReadBasenote ^J ^M
GroupSelThd *
GroupDoAutoSel +
GroupToggleThdSel .
GroupSelThdIfUnreadSelected ;
GroupSelPattern =
GroupReverseSel @
GroupCancel D
GroupToggleGetartLimit G
GroupMarkThdRead K
GroupNextUnreadArt N
GroupPrevUnreadArt P
GroupAutoSave S
GroupTagParts T
GroupUntag U
GroupMarkUnselArtRead X
GroupToggleSubjDisplay d
GroupGoto g
GroupListThd l
GroupMail m
GroupNextGroup n
GroupPrevGroup p
GroupToggleReadUnread r
GroupSave s
GroupTag t
GroupToggleThreading u
GroupRepost x
GroupUndoSel ~
HelpLastPage G
HelpFirstPage g
PageReplyQuoteHeaders ^E
PagePGPCheckArticle ^G
PageToggleRaw ^H
PageNextUnread TAB
PageNextThd ^J ^M
PageToggleTabs ^T
PageFollowupQuoteHeaders ^W
PageToggleTex2iso "
PageToggleAllHeaders *
PageArticleInfo '
PageToggleRot %
PageToggleUue (
PageReveal )
PageSkipIncludedText :
PageTopThd <
PageBotThd >
PageCancel D
PageFollowup F
PageLastPage G
PageKillThd K
PageNextUnreadArt N
PagePrevUnreadArt P
PageReply R
PageAutoSave S
PageGroupSel T
PageViewUrl U
PageViewAttach V
PageToggleHighlight _
PageToggleVerbatim ,
PageEditArticle e
PageFollowupQuote f
PageFirstPage g
PageListThd l
PageMail m
PageNextArt n
PagePrevArt p
PageReplyQuote r
PageSave s
PageTag t
PageGotoParent u
PageRepost x
PgpEncSign b
PgpEncrypt e
PgpIncludekey i
PgpSign s
PostAbort a
PostContinue c
PostCancel d
PostEdit e
PostPGP g
PostIspell i
PostIgnore i
PostMail m
PostPostpone o
PostPost p y
PostSupersede s
PostSend s y
PostedArticlesSelect ^J ^M
PostponeOverride Y
PostponeAll A
PromptYes y Y
PromptNo n N
PProcNone n
PProcShar s
PProcYes y
SaveAppendFile a
SaveOverwriteFile o
SelectEnterNextUnreadGrp TAB n
SelectReadGrp ^J ^M
SelectResetNewsrc ^R
SelectSortActive .
SelectNextUnreadGrp N
SelectSubscribePat S
SelectUnsubscribePat U
SelectQuitNoWrite X
SelectSyncWithActive Y
SelectToggleDescriptions d
SelectGoto g
SelectMoveGrp m
SelectToggleReadDisplay r
SelectSubscribe s
SelectUnsubscribe u
SelectYankActive y
SelectMarkGrpUnread z Z
ScopeSelect ^J ^M
ScopeEditAttributesFile E
ScopeAdd a
ScopeDelete d
ScopeMove m
ScopeRename r
and here's the rest of that list of key bindings, bestie ๐
ThreadReadNextArtOrThread TAB
ThreadReadArt ^J ^M
ThreadSelArt *
ThreadToggleArtSel .
ThreadReverseSel @
ThreadCancel D
ThreadFollowup F
ThreadMarkArtRead K
ThreadAutoSave S
ThreadUntag U
ThreadToggleSubjDisplay d
ThreadFollowupQuote f
ThreadMail m
ThreadSave s
ThreadTag t
ThreadTagParts T
ThreadUndoSel ~
UrlSelect ^J ^M
๐ธ ${TIN_HOMEDIR:-"$HOME"}/.tin/mailgroups
This one's the cheat sheet of short descriptions for each mailgroup. (heads up: it only works if tin(1) was built with mh-mail-handling support, so if it's not doing anything, that's why ๐ญ). Every line is two tab-separated fields, like this: "mailgroupname one-line description".
mailgroupnameโ the name of the newsgroupdescriptionโ a short single-line description of the group
๐ ${TIN_HOMEDIR:-"$HOME"}/.tin/newsrctable
These are your "nntpserver[:port] newsrc [shortname [...]]" pairs, the ones you pair up with the -g command-line switch. The matching is case-insensitive, and any line starting with "#", ";" or " " counts as a comment. Ngl this only exists if you're reading via NNTP.
nntpserverโ the full qualified domain name of the news server. A plain IPv6 address has to be wrapped in square brackets. You can also tack on a port by appending:portnumber. โ ๏ธ Be aware that if a port is given it will override any port given with-gor-por implied by-Tor-kor set via$NNTPPORT. The string"default"or"*"acts as a wildcard to match any name, and a line like that should be placed last.newsrcโ the related newsrc. A file specified via-fhas a higher priority.shortnameโ nickname(s) for the nntpserver. Nicknames must not contain":"and must be unique.
Example, because examples ate fr fr:
# sample newsrctable file
news.tin.org .newsrc-tin.org tinorg
news.example.org /tmp/nrc-ex example ex
[::1]:1119 /tmp/localhost6โ1119 lh6
# catch all rules should go last
# with the more specific one on top
*:563 ~/.tin/newsrcs/${NNTPSERVER-localhost}:563/newsrc
* ~/.tin/newsrcs/${NNTPSERVER-localhost}/newsrc
โจ ${TIN_HOMEDIR:-"$HOME"}/.tin/posted
Your posting history, periodt. The file is written by tin(1) and used by the DisplayPostHist ('W') command. ๐ซ It should not be altered manually, bestie, hands off. Any line that starts with "#" is a comment. Blank lines are ignored. All other lines shall consist of at least four pipe-separated fields, starting with a time stamp "dd-mm-yy", a single letter indicating the action which initiated the message, a group name or a mail address the message was sent to, the subject of the message and optionally the messages Message-ID if known.
๐ ${TIN_HOMEDIR:-"$HOME"}/Mail/posted
A copy of all posted articles in mbox(5) format. The filename can be changed by setting posted_articles_file.
๐ ${TIN_HOMEDIR:-"$HOME"}/.tin/postponed.articles
The pool of postponed articles. This file is in mbox(5) format too. ๐
๐ฆ ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/motd
This file is a copy of the servers message of the day (MOTD) message. It is automatically created on startup except when using the -Q command-line option, and it gets unlinked on exit. It's giving very temporary main character energy ๐
๐ ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/msglog
The file where $NNTPSERVER related info- and error-messages get stored. It's overwritten on startup and meant for debugging. If something's acting up, this is your girl.
๐ง ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/newsgroups
A copy of the servers newsgroups file, which provides short descriptions of each newsgroup. It is automatically updated on startup except when using the -X or -q command-line option and an old copy exists. Each line consist of two tab-separated fields: "group.name one-line description".
group.nameโ is the name of the newsgroupone-line descriptionโ is a short single-line description of the group
๐ ${TIN_HOMEDIR:-"$HOME"}/.tin/$NNTPSERVER/serverrc
This is where $NNTPSERVER related data lives, stored as a list of "variable=value" pairs. Currently there are only a few variables, and some of them are not meant to be changed by the user. See also ConfigServerrcMenu ('s') in section "SERVERRC MENU" in tin(1).
versionโ Internal version number.add_cmd_line_optsโ Additional command-line options. Acts like$TINRCbut server specific. โ ๏ธ Be aware that the file is read after the command-line options and may override them. The allowed options are currently limited to-4,-6,-A,-C,-d,-G limit,-k,-n,-p port,-q,-Q,-t timeout,-Tand-x. The default is unset.disabled_nntp_cmdsโ A comma separated list of NNTP commands which should be avoided. This can be used to work around some buggy servers and usually should left blank. Switching off XHDR also switches off HDR and vice versa. The following commands can be disabled:AUTHINFO SASLCAPABILITIESCOMPRESS DEFLATEHDRLIST COUNTSLIST DISTRIB.PATSLIST DISTRIBUTIONSLIST HEADERSLIST MOTDLIST NEWSGROUPSLIST OVERVIEW.FMTLIST SUBSCRIPTIONSLISTGROUPNEWGROUPSNEXTOVERXHDRXOVERXPAT
nntp_pipeline_limitโ Number of pipelined NNTP commands to send. Set to1if server does not support pipelining. Default is50. Allowed maximum is256.cache_overview_filesโ Identical to the tinrc variable of the same name but overrides it. โ ๏ธ Be aware that the serverrc variable will not be promoted to the tinrc, but the tinrc variable will be promoted to the serverrc if changed in theOptionMenu('M').compress_overview_filesโ Identical to the tinrc variable of the same name but overrides it. โ ๏ธ Be aware that the serverrc variable will not be promoted to the tinrc, but the tinrc variable will be promoted to the serverrc if changed in theOptionMenu('M').motd_hashโ Internal hash of the servers MOTD, so displaying it can be skipped if it is unchanged.last_newnewsโ Internal timestamp used bytin(1)to keep track of new newsgroups on the server.
๐ /etc/tin/tinrc and ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc
At startup, tin(1) reads in the configuration file. This contains a list of "variable=value" pairs that can be used to configure the way tin(1) works. value strings are limited to 1022 chars and will be discarded if exceeding this limit. If it exists, the global configuration file, ${TIN_LIBDIR:-NEWSLIBDIR}/tinrc is read first. After that, the user's own configuration file ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc is read. The global file is useful for distributing system-wide defaults to new users who have no private tinrc yet (see also /etc/tin/tin.defaults).
abbreviate_groupnameโ IfONabbreviate 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 isOFF.add_posted_to_filterโ IfONadd posted articles which start a new thread to filter for highlighting follow-ups. Default isON.advertisingโ TurnONadvertising in header (User-Agent:). Default isON.alternative_handlingโ IfONstrip multipart/alternative messages automatically. Default isON.art_marked_deletedโ The character used to show that an article was deleted. Default is'D'.art_marked_inrangeโ The character used to show that an article is in a range. Default is'#'.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'-'.art_marked_selectedโ The character used to show that an article/thread is auto-selected (hot). Default is'*'.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'.art_marked_unreadโ The character used to show that an article has not been read. Default is'+'.art_marked_readโ The character used to show that an article was read. Default is' '.art_marked_killedโ The character used to show that an article was killed. Default is'K'.kill_levelmust be set accordingly.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)โ IfONtin(1)will ask before using a MIME viewer (metamail_prog) to display MIME messages. This only occurs if a MIME viewer is set. Default isOFF.attachment_formatโ the format stringtin(1)uses to show stuff at the Attachment level. Default is"%t%s%e%c%d". โจauto_cc_bccโ when you mail an article, this auto-drops your name into theCc:field (that's1), theBcc:field (that's2), or both (3). Default is'No'(0). ๐ซถauto_list_threadโ if it's ON, entering a thread with the right arrow key automatically lists the thread for you. Default is ON.auto_reconnectโ reconnect to the server all by itself. Default is OFF.batch_saveโ when it's ON, articles/threads get saved in batch mode whenever save-Sor mail-M,-Nis given on the command-line. Default is ON.beginner_levelโ ON means a lil mini menu of the most useful commands pops up at the bottom of the screen for each level, plus a short posting etiquette shows after you compose an article. Default is ON. ๐cache_overview_filesโ ON makes local copies of NNTP overview files, which can considerably speed up accessing large groups when you're on a slow connection. Default is OFF.compress_overview_filesโ ON saves those locally cached NNTP overview files (that'scache_overview_files, the one right above) in compressed form (RFC 1952). Great for saving local disk space. Default is OFF.cancel_lock_algoโ pick the hash algorithm for cancel-locks (RFC 8315). Only available when built with cancel-lock support, bestie.nonedisables the generation of cancel-locks entirely. Valid values arenone,sha1,sha256andsha512. Default issha1.catchup_read_groupsโ ON means you get asked on quit whether all the groups you read during the current session should be marked read. Default is OFF.
๐จ the color squad (col_*) ๐จ
okay so this is the whole glow-up section, every single one is a color setting, no skips:
col_backโ standard background colorcol_extquoteโ color of quoted text from external sourcescol_fromโ color of the sender (From:)col_headโ color of header-linescol_helpโ color of help pagescol_invers_bgโ color of the background for inverse textcol_invers_fgโ color of the foreground for inverse textcol_markdashโ color of words emphasized like_this_. See alsoword_h_display_marksandword_highlight.col_markslashโ color of words emphasized like/this/. See alsoword_h_display_marksandword_highlight.col_markstarโ color of words emphasized like*this*. See alsoword_h_display_marksandword_highlight.col_markstrokeโ color of words emphasized like-this-. See alsoword_h_display_marksandword_highlight.col_messageโ color of status messages in the last linecol_minihelpโ color of the mini help menucol_newsheadersโ color of the actual news header fieldscol_normalโ standard foreground colorcol_quoteโ color of quoted linescol_quote2โ color of twice quoted linescol_quote3โ color of >=3 times quoted linescol_responseโ color of the response counter. That's the text that says"Response x of y"in the article viewer.col_signatureโ color of signaturescol_score_negโ color of negative scorecol_score_posโ color of positive scorecol_urlsโ color of urls highlightcol_verbatimโ color of verbatim blockscol_subjectโ color of the article subjectcol_textโ color of text-linescol_titleโ color of help/mail sign
confirm_choiceโtin(1)can ask for manual confirmation to protect you ๐ก๏ธ. Available choices:commands: asks for confirmation before executing certain dangerous commands (e.g., Catchup (c)). Commands affected by this are marked in this manual with[after confirmation].quit: you'll be asked to confirm that you wish to exittin(1)when you use the Quit (q) command.select: asks for confirmation before marking all not selected (with GroupMarkUnselArtRead (X) command) articles as read.
Default is commands & quit.
date_formatโ the format string used for date representation. You can find a description of the different format options atstrftime(3).tin(1)usesstrftime(3)when available and supports most format options in his fallback code. Default is"%a, %d %b %Y %H:%M:%S".default_art_searchdefault_author_searchdefault_config_search
^ these three are the last article/author/config option that was searched for.
default_filter_daysโ Default is28.default_filter_kill_caseโ the default for quick (1 key) kill filter case. ON = filter case sensitive, OFF = ignore case. Default is OFF.default_filter_kill_expireโ the 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โ the 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โ the default for quick (1 key) kill filter header:0โSubject:(case sensitive)1โSubject:(ignore case)2โFrom:(case sensitive)3โFrom:(ignore case)4โMessage-ID:& fullReferences:line5โMessage-ID:& lastReferences:entry only6โMessage-ID:entry only7โLines:
default_filter_select_caseโ the default for quick (1 key) auto-selection filter case. ON = filter case sensitive, OFF = ignore case. Default is OFF.default_filter_select_expireโ the 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โ the 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โ the default for quick (1 key) auto-selection filter header:0โSubject:(case sensitive)1โSubject:(ignore case)2โFrom:(case sensitive)3โFrom:(ignore case)4โMessage-ID:& fullReferences:line5โMessage-ID:& lastReferences:entry only6โMessage-ID:entry only7โLines:
and now, the โจ name-only section โจ โ these next ones are listed with literally no blurb attached, so we're just naming them, no cap:
default_goto_groupdefault_group_searchdefault_mail_addressdefault_move_groupdefault_patterndefault_pipe_commanddefault_post_newsgroupsdefault_post_subjectdefault_range_groupdefault_range_selectdefault_range_threaddefault_repost_groupdefault_save_filedefault_save_modedefault_select_patterndefault_shell_commanddefault_subject_search
dont_break_wordsโ don't break long lines inside a word. This applies to the body, except for verbatim blocks. See alsowrap_column. Default is OFF.draw_arrowโ lets groups/articles be selected by an arrow'โ'if set ON, or by a highlighted bar if set OFF. Default is OFF.editor_formatโ the format string used to create the editor start command with parameters. Default is'%E +%N %F'with %E=Editor, %N=Linenumber and %F=Filename (e.g.,/bin/vi +7 .article). See also$VISUALand$EDITORunder "ENVIRONMENT" intin(1).extquote_handlingโ if ON, quotes from external sources will be detected. Default is OFF.extquote_regexโ a regular expression that gets applied when reading articles. All matching lines are shown incol_extquote. Ifextquote_regexis blank, thentin(1)uses a built-in default.force_screen_redrawโ specifies whether a screen redraw should always be done after certain external commands. Default is OFF.getart_limitโ ifgetart_limitis > 0, not more than the lastgetart_limitarticles/group are fetched from the server. Ifgetart_limitis < 0,tin(1)will start fetching articles from your first unread minus absolute value ofgetart_limit. Note that settinggetart_limitto anything except 0 disablescache_overview_files. Default is0, which means no limit.
bestie read that one twice, the "anything except 0 disables cache_overview_files" part is doing a LOT of work ๐
goto_next_unreadโ which keystin(1)should accept to jump to the next unread article. Possible is any combination ofPageDownandPageNextUnread. WhenPageDownis set,tin(1)jumps to the next article at the end of the current one. WhenPageNextUnreadis set,tin(1)jumps immediately to the next article when PageNextUnread ('<TAB>') is pressed. Default isPageNextUnread.group_catchup_on_exitโ if ON, catchup group when leaving with the left arrow key. Default is ON. ๐group_formatโ the format string for the Group level, bestie. Default is"%n %m %R %L %s %F". Here's everything you can sub in:%Dโ date%Fโ from, name and/or address%Iโ initials%Lโ line count%Mโ message-id%Rโ number of responses in thread%Sโ score%mโ article marks%nโ current thread number%sโ subject%%โ %
hide_inline_dataโ okay so this one is all about hiding the raw junk. If it's set to'Nothing'(0) then raw data is displayed, periodt. If it's set to'Complete UU/YENC'(1) then sections of uuencoded or yenc data get shown with a single tag line showing the size and filename (basically the same energy as a MIME attachment). If it's set to'Any UU/YENC'(2) then any line that looks like uuencoded or yenc data gets folded into a tag line โ super handy when uuencoded or yenc data is split across more than one article, but ngl it can also lead to false positives. If it's set to'Inline PGP'(4) then any inline PGP data is hidden. If it's set to'Shar'(8) then shar-archives are hidden โ and babe, use this one with care, 'cause it may hide other shell snippets and any following text as well. You can also toggle this setting in the article viewer viaPageToggleUue('('). Default is'Nothing'(0). The possible values are:0โ Nothing1โ Complete UU/YENC2โ Any UU/YENC4โ Inline PGP5โ Complete UU/YENC & Inline PGP6โ Any UU/YENC & Inline PGP8โ Shar9โ Complete UU/YENC & Shar10โ Any UU/YENC & Shar12โ Inline PGP & Shar13โ Compl. UU/YENC & PGP & Shar15โ Hide all
hideline_regexโ a regular expression to hide matching lines in the pager. Could be used to hide excessive quoting, e.g. via'^>\s?>\s?>'. If left blank, no lines will be hidden. Heads up: this option does not affect lines within verbatim blocks, and it's applied aftertrim_article_bodyandsuppress_soft_hyphens.inews_progโ path, name and options of the externalinews(1). If you're reading via NNTP the default value is"--internal"(that's the built-in NNTP inews), otherwise it's"inews -h". The article gets passed toinews_progon STDIN via'< article'.info_in_last_lineโ if ON, show the current group description or article subject in the last line (not in the global menu) โToggleInfoLastLine('i') toggles the setting. This facility is lowkey iconic 'cause the full width of the screen is available to display long subjects. Default is OFF.interactive_mailerโ if it's greater than 0, your mailreader gets invoked earlier for reply so you can use more of its features (e.g., MIME, pgp, ...).1means include headers,2means don't include headers (that's the olduse_mailreader_i=ONoption).0turns off usage. This option has to suitmailer_format. Default is0.inverse_okayโ if ON, use inverse video for page headers and URL highlighting. Default is ON.keep_dead_articlesโ if ON, keep all failed postings in${TIN_HOMEDIR:-"$HOME"}/dead.articlesbesides keeping the last failed posting in${TIN_HOMEDIR:-"$HOME"}/dead.article. Default is ON.keep_expired_filtersโ if ON, keep expired filter rules in the file, but no longer evaluate them. Default is OFF.kill_levelโ this option controls the processing and display of articles that are killed. There are 3 options, default is0(Kill only unread arts).0โ Kill only unread arts is the 'traditional' behavior oftin(1). Only unread articles are killed once only by marking them read. As filtering only happens on unread articles withkill_levelset to 0,art_marked_killedandart_marked_read_selectedare only shown once. When you reenter the group the mark will be gone.1โ Kill all arts & show withKwill 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.2โ Kill all arts and never show will process all articles in the group and therefore there is a processing overhead when using this option. Killed articles simply does not get displayed at all.
mail_8bit_headerโ allows 8-bit characters unencoded in the header of a 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โ user's mail address (and full name), if notusername@host. This is used when creating articles, sending mail and whenpgp(1)signing.mail_mime_encodingโ MIME encoding of the body in a mail message, if necessary (8bit,base64,quoted-printable,7bit). Default isquoted-printable.mail_quote_formatโ format of the 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:"mailbox_formatโ select one of the following mailbox-formats:MBOXO(default, except on SCO),MBOXRDorMMDF(default on SCO). Seembox(5)and RFC 4155 for more details on MBOXO and MBOXRD andmmdf(5)for more details about MMDF.maildirโ the directory where articles/threads are to be saved inmbox(5)format. This feature is mainly for use with themutt(1)mail program. It lets you save articles/threads/groups simply by giving'='as the filename to save to. Default is${TIN_HOMEDIR:-"$HOME"}/Mail.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_saved_readโ if ON, mark articles that are saved as read. Default is ON.mark_ignore_tagsโ when this is ON, theGroupMarkThdRead('K'),ThreadMarkArtRead('K'),MarkThdUnread('Z') at Group level andMarkArtUnread('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.metamail_progโ path, name and options of the externalmetamail(1)program used to view non-textual parts of articles. To use the built-in viewer, set it to--internal. This is the default value whenmetamail(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โ charset supported locally, which is also used for the MIME header (charset parameter and charset name in header encoding) in mail and news postings. IfMIME_STRICT_CHARSETis defined at compile time, text in a 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_CHARSETis used.US-ASCIIor the 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โ bestie, this is the charset used for posting and MIME headers, and it replacesmm_charset. ๐ Conversion betweenmm_network_charsetand your local charset (which gets figured out vianl_langinfo(3)) is done viaiconv(3)orucnv_*(). If neither of those functions exists on your system, this option is just disabled and you have to usemm_charsetinstead. ๐ญ Andmm_network_charsetis limited to only these 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 every value might work on your system, so peek at iconv_open(3) for the details. If it's not set, the value of the environment variable $MM_CHARSET is used. And if neither of those is defined, US-ASCII or the compile-time default gets used. ๐ฆ
mono_markdashโ the character attribute for words emphasized like_this_. Whether a given attribute actually works depends on your terminal, bestie. See alsoword_h_display_marksandword_highlight. Default is2(best highlighting). The possible values are:0โ normal1โ underline2โ best highlighting3โ reverse video4โ blinking5โ half bright6โ bold
mono_markslashโ the character attribute for words emphasized like/this/. Again, it depends on your terminal which attributes are usable. See alsoword_h_display_marksandword_highlight. Default is5(half bright). Same possible values asmono_markdash, bestie. โจmono_markstarโ the character attribute for words emphasized like*this*. Terminal-dependent again, as always. See alsoword_h_display_marksandword_highlight. Default is6(bold). Same possible values asmono_markdash. ๐ธmono_markstrokeโ the character attribute for words emphasized like-this-. Yeah yeah, terminal-dependent. See alsoword_h_display_marksandword_highlight. Default is3(reverse video). Same possible values asmono_markdash. ๐newnewsโ okay so these are internal timers thattin(1)uses to keep track of new newsgroups. ๐ซถ Do not change them unless you genuinely understand what they're for. No cap.news_headers_to_displayโ which news headers you wanna see, bestie. If you want to see all the headers, put an'*'as the value โ and heads up, that's the only way a wildcard can be used. If you enter'X-'as the value, you'll see all headers beginning with'X-'(likeX-AlanorX-Pape). You can list more than one by delimiting with spaces. Not defining anything turns this option off. ๐news_headers_to_not_displayโ same asnews_headers_to_displayexcept it means the opposite. ๐ An example of using both options might be if you thought'X-'headers were A Good Thing(tm), but thought Alan and Pape were miscreantsโฆ well then you'd do something like this:
news_headers_to_display=X-
news_headers_to_not_display=X-Alan X-Pape
Not defining anything turns this option off.
news_quote_formatโ the format of the quote line when you post or follow up an article. The expansions are:%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"%F wrote:".nntp_read_timeout_secsโ time in seconds to wait for a response from the server. โณ Default is120.normalization_formโ the normalization form that should be used 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 they're supported by the library tin(1) uses to do the normalization. NFC should be used if possible (RFC 5198). ๐
page_mime_formatโ the format stringtin(1)uses for the mime header at Page level. Default is"[-- %T%S%*n%z%*l%!c%!d%*e --]".page_uue_formatโ the format stringtin(1)uses for the uue header at Page level. Default is"[-- %T%S%*n%I%!d%*e --]".page_yenc_formatโ the format stringtin(1)uses for the yenc header at Page level. Default is"[-- %*N%!d%I [%F%G]%V%W%X --]".pos_first_unreadโ if ON, put the cursor at the first unread article in the group; otherwise it goes to the last article. Default is ON. ๐ฏpost_8bit_headerโ allows 8-bit characters unencoded in the header of a news article, and if it's set this also disables the generation of MIME-headers when they'd usually be required. Default is OFF. โ ๏ธ Only 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 of your interest to determine what to do with this andpost_mime_encoding. Iykyk.post_mime_encodingโ MIME encoding of the body in a news message, if necessary. 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โ if ON, thentin(1)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 is ON. ๐ฅpost_process_typeโ 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 following values are allowed: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โ keep posted articles in the given file. If the given filename doesn't contain any expandable strings, it will be prefixed with${TIN_HOMEDIR:-"$HOME"}/Mail/. If no filename is set, then postings will not be saved. See the section "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more info about the various expansion characters. Default is'posted'. ๐print_headerโ if ON, then the full article header is sent to the printer. Otherwise only the''Subject:''and''From:''fields are output. Default is OFF. ๐จ๏ธprinterโ the printer program (with options) that's used to print articles. The default islpr(1)for BSD machines andlp(1)for SysV machines. Heads up bestie: printing fromtin(1)may have been disabled by the System Administrator. ๐ญprocess_only_unreadโ if ON, only save/print/pipe/mail unread articles (tagged articles excepted). Default is OFF. ๐prompt_followuptoโ if ON, show an empty''Followup-To:''header when editing an article. Default is OFF.quote_charsโ the character used in quoting included text to article followups and mail replies. The'_'character represents a blank character and is replaced with' 'when read, and%Iis replaced by the author's initials. โ๏ธ If the article has multiple addresses, only the first is evaluated. Default is'>_'.quote_styleโ this bit coded integer value controls how articles are quoted when following up or replying to them. Any of the following options can be combined by adding all relevant values. Default is5, which means that quote characters are compressed and empty lines are quoted. ๐0โ Nothing special. Non-empty lines are quoted.1โ Compress quotes. Compress quote characters together when quoting multiple times (for example,'> > >'will be turned into'>>>'). This option is on by default.2โ Quote Signatures. This option is off by default. Signatures are always quoted regardless of this option when you're viewing an article in raw modePageToggleRaw('^H') and followup or reply to it. Signatures are never quoted regardless of this option whenshow_signaturesis off.4โ Quote empty lines. This option is on by default.
quote_regexโ a regular expression that will be applied when reading articles. All matching lines are shown incol_quote. Ifquote_regexis blank, thentin(1)uses a built-in default. ๐งquote_regex2โ a regular expression that will be applied when reading articles. All matching lines are shown incol_quote2. Ifquote_regex2is blank, thentin(1)uses a built-in default. ๐quote_regex3โ okay bestie, this is a regular expression that gets applied when reading articles. Every matching line is shown incol_quote3. Ifquote_regex3is blank, thentin(1)uses a built-in default. โจrecent_timeโ if you set it to0, this feature is deactivated; otherwise it means the number of days. Default is2. ๐๏ธrender_bidiโ ifON,tin(1)does the rendering of bi-directional text. IfOFF,tin(1)leaves the rendering of bi-directional text to the terminal. Default isOFF. ๐reread_active_file_secsโ the news${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}file is reread at regular intervals to show if any new news has arrived. Default is1200. Setting this to0will disable this feature. ๐savedirโ directory where articles/threads are saved. Default is${TIN_HOMEDIR:-"$HOME"}/News. ๐scope_marked_globalโ the character used to show that a scope was read from the global attributes file. Default is'!'.scope_marked_global_matchโ 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โ the character used to show that a scope was read from the local attributes file. Default is' '.scope_marked_local_matchโ 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โ if the score of an article is below or equal this value, the article gets marked as killed. ๐score_limit_selectโ if the score of an article is above or equal this value, the article gets marked as hot. ๐ฅscore_killโ score of an article which should be killed, this must be<= score_limit_kill.score_selectโ score of an article which should be marked hot, this must be>= score_limit_select.scroll_linesโ the number of lines that will be scrolled up/down in the article pager when using cursor-up/down. The default is1(line-by-line). Set to0to get traditionaltin(1)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โ the format string used for the Selection level. Default is"%f %n %U %G %d". The following substitutions are supported:%Gโ group name%Uโ unread count%dโ description%fโ group flag%nโ current group number%%โ %
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_authorโ which information about the author should be shown. Default is2, authors full name.0โ None, only the''Subject:''line will be displayed.1โ Address,''Subject:''line & the address part of the''From:''line are displayed.2โ Full Name,''Subject:''line & the authors full name part of the''From:''line are displayed (default).3โ Address and Name,''Subject:''line & all of the''From:''line are displayed.
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.
show_descriptionโ ifONshow a short group description text after newsgroup name at the group selection level. The''-d''command-line flag will override the setting and turn descriptions off. The text used is taken from the${TIN_LIBDIR:-NEWSLIBDIR}/newsgroupsfile and if supported (requirestin(1)to be built with mh-mail-handling support) from${TIN_HOMEDIR:-"$HOME"}/.tin/mailgroupsfor mailgroups. Default isON. ๐show_help_mail_signโ allows you to select whethertin(1)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_artsโ ifONshow only new/unread articles otherwise show all articles. Default isON. ๐show_only_unread_groupsโ ifONshow only subscribed groups that contain unread articles. Default isOFF.show_signaturesโ ifOFFdon't show signatures when displaying articles. Default isON.sigdashesโ ifONprepend the signature with sigdashes. Default isON.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 a file named.sigfixeddoes exist in that dir or${TIN_HOMEDIR:-"$HOME"}/.sigfixeddoes exist it will be prepended to the chosen signature (first match counts). 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. See also${TIN_HOMEDIR:-"$HOME"}/.sigfixed. ๐๏ธsignature_repostโ ifONadd signature to reposted articles. Default isON.slashes_regexโ a regular expression that will be applied when reading articles. All matching words are shown incol_markslashormono_markslash. Ifslashes_regexis blank, thentin(1)uses a built-in default.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_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_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
โญ stars_regex
A regex that gets applied the whole time you're reading articles, bestie. Every word that matches shows up in col_markstar or mono_markstar. And if stars_regex is blank? Chill, tin(1) just uses a built-in default. No thoughts, head empty, defaults loaded. โจ
๐ธ strip_blanks
Strips the blanks off the end of every line โ which speeds up the display when you're reading on a slow terminal or over a modem. Default is ON. Lowkey free performance, we love that. ๐
๐ strip_bogus
Okay so first: what even is a bogus group? It's a group sitting in your ${TIN_HOMEDIR:-"$HOME"}/.newsrc file that doesn't exist on the news server anymore. Gone. Deleted. Not returning your texts. And you get three ways to handle that:
0โ Do nothing & always keep bogus groups.1โ Bogus groups will be permanently removed.2โ Bogus groups will appear on the Group Selection Menu, prefixed with a'D'. This lets you unsubscribe from them as and when you wish.
Default is 0 (Always Keep). Hoarder energy, honestly. ๐ซถ
strip_newsrc
If this is ON, then unsubscribed groups get permanently removed from your ${TIN_HOMEDIR:-"$HOME"}/.newsrc file. Default is OFF. Periodt, no take-backs.
strip_re_regex
A regular expression for finding Subject prefixes like "Re:" so they can be removed. If strip_re_regex is blank, tin(1) uses a built-in default. ๐
strip_was_regex
Same vibe, but for Subject suffixes like "(was:" โ this regex finds them so they get removed. If strip_was_regex is blank, tin(1) uses a built-in default. ๐
strokes_regex
A regex that gets applied while reading articles. Every matching word is shown in col_markstroke or mono_markstroke. If strokes_regex is blank, tin(1) uses a built-in default. Not me matching words for the aestheticโฆ ๐
tex2iso_conv
Decode German style TeX umlaut codes to ISO. If ON, it shows "a as Umlaut-a, etc. Default is OFF.
Cute bonus: this behavior can also be toggled in the article viewer via PageToggleTex2iso ('"'). Yes, that's a double-quote key. Slay. ๐
thread_articles
This one defines which threading method to use. The choices are:
0โ Don't thread1โ Thread on Subject only2โ Thread on References only3โ Thread on References then Subject (default)4โ Thread multipart articles on Subject5โ Thread on Percentage Match of the Subjects
And plot twist: you can also set the threading type on a per group basis by setting the group attribute variable thread_articles to 0 โ 5 in the file ${TIN_HOMEDIR:-"$HOME"}/.tin/attributes. Main character customization fr. ๐ฆ
thread_format
The format string used for the Thread level. Default is "%n %m [%L] %T %F".
The following substitutions are supported:
%Dโ date%Fโ from, name and/or address%Iโ initials%Lโ line count%Mโ message-id%Sโ score%Tโ thread tree%mโ article marks%nโ current article number%%โ %
Build your own little thread aesthetic, bestie. It's giving โจpersonalizedโจ.
thread_perc
Defines how close the subjects have to match while threading by Percentage Match, for threads to be considered part of a single thread. The value lives in the range 0 to 100. The default is 75. Picky but not too picky, yk?
thread_catchup_on_exit
If ON, catchup the group/thread when you leave with the left arrow key. Default is ON. Left arrow said "I'm clocking out" and everything got caught up. ๐ช
thread_score
How the total score of a thread gets computed. Default is 0, the maximum score in this thread.
0โ Max, the maximum score in this thread.1โ Sum, the sum of all scores in this thread.2โ Average, the average score in this thread.
Math girlies rise. ๐งฎ
tls_ca_cert_file
The name of the file containing all trusted CA certificates used for NNTPS (RFC 8143) connections. If you leave it empty, the system default will be used. Security but make it chill. ๐
translit
If ON, append //TRANSLIT to the first argument of iconv_open(3) to enable transliteration. What does that even mean? It means that when a character can't 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. It's giving "close enough" ๐
trim_article_body
Lets you pick how tin(1) treats blank lines in article bodies. Default is 0.
Heads up: this option does not affect lines within verbatim blocks, and it's applied before hideline_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+16โ Compact multiple and skip trailing,4+27โ Compact mltpl., skip lead. & trai.,4+3
(Yes, option 3 really does say it twice up there. We don't ask questions, we just report the facts. ๐ญ)
suppress_soft_hyphens
If ON, remove soft hyphens (U+00AD) from non verbatim blocks when displaying articles. Default is OFF. Ghosting the soft hyphens, honestly deserved. ๐ป
underscores_regex
A regex that gets applied while reading articles. Every matching word is shown in col_markdash or mono_markdash. If underscores_regex is blank, tin(1) uses a built-in default. ๐
unlink_article
If ON, remove ${TIN_HOMEDIR:-"$HOME"}/.article after posting. Default is ON. Clean up after yourself bestie, we love a tidy queen. ๐งน
url_handler
The program that will be run when launching URLs in the article viewer using PageViewUrl ('U'). The actual URL gets appended. Default is url_handler.pl. Link clicker behavior activated. ๐
url_highlight
Enable highlighting URLs in the message body. Default is ON. Blue links are iconic, periodt. ๐
use_color
If enabled, tin(1) uses ANSI-colors. Default is OFF. Turn it on, the palette is chef's kiss. ๐
use_keypad
Use scroll keys on keypad. Default is OFF. Old school. Respect. โจ๏ธ
use_mouse
Allows the mouse button support in xterm(1x) to be enabled/disabled. Default is OFF. Clicks! In a terminal! We live in the future. ๐ฑ๏ธ
use_slrnface
If enabled, slrnface(1) will be used to interpret the ''X-Face:'' header. For this option to have any effect, tin(1) must be running in an xterm(1x) and slrnface(1) must be in your $PATH. Default is OFF.
Read that again: must be in anxterm(1x)and must be in your$PATH, or this does nothing. No vibes without the prerequisites. ๐
utf8_graphics
Use UTF-8 characters for the indicator ('โ'), thread/attachment tree and ellipsis ('...'). Default is 0.
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.
Pretty arrows AND pretty ellipsis? Level 3 is the whole package. โจ๐ฆ
verbatim_begin_regex
A regular expression that tin(1) will use to find the begin of a verbatim block. Default is #v+
verbatim_end_regex
A regular expression that tin(1) will use to find the end of a verbatim block. Default is #v-
verbatim_handling
Lets you pick how tin(1) treats verbatim blocks in article bodies. Default is 1.
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.
Choose your fighter. ๐ฅ
wildcard
Lets you pick how tin(1) matches strings. The default is 0 and it uses the wildmat(3) notation, which is how this has traditionally been handled. Setting this to 1 lets you use perl(1) compatible regular expressions pcre(3) or pcre2(3). (see also perlre(1) and pcrepattern(3) or pcre2pattern(3)).
You will probably want to update your filter file if you use this regularly.
NB: Newsgroup names will always be matched using the wildmat(3) notation. No exceptions, no cap. ๐งข
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
Pick your little punctuation policy. ๐
word_highlight
Enable word highlighting. See word_h_display_marks for the options available. If use_color is enabled, the colors specified in col_markdash, col_markslash, col_markstar and col_markstroke are used for word highlighting; else the character attributes specified in mono_markdash, mono_markslash, mono_markstar and mono_markstroke are used. Default is ON. Highlighting words is the main character behavior. ๐ฅ
wrap_column
Sets the column at which a displayed article body should be wrapped. Okay, this one has layers, so stay with me:
- If this value is equal to
0, it defaults to the current screen width. - If this value is greater than your current screen width and
dont_break_wordsis unset, the part off-screen is not displayed. So setting this option to a large value can be used to disable wrapping. - If this value is negative, the wrap margin is the current screen width plus the given value (as long as the result is still positive, otherwise it will fall back to the current screen width).
Default is 0, wrapping at the current screen width. ๐
wrap_on_next_unreadโ when this is ON, searching for the next unread article wraps around all the articles so it also finds unread stuff that came before. Turn it OFF and the search just... stops at the end of the thread list. No wrap, no going back. Default is ON. ๐ซxpost_quote_formatโ same format asnews_quote_format, but this one kicks in when you're replying to a crosspost to several groups and there's noFollowup-To:set. ๐ฏ
/etc/tin/tin.defaults
Yet another global config file, bestie, and it's also full of variable=value pairs. This one handles the more general options โ the ones that usually can't be controlled via ${TIN_LIBDIR:-NEWSLIBDIR}/tinrc and/or ${TIN_HOMEDIR:-"$HOME"}/.tin/tinrc, like resetting newslibdir (aka overriding the built-in default). โจ
domainnameโ sets a global domain name used inFromlines. ๐ฎorganizationโ defines the name of your organization.$ORGANIZATIONoverrides whatever you put here. ๐ผnewslibdirโ defines the default place for some configuration files. Common values are/usr/lib/news,/var/lib/news,/usr/local/lib/newsor/news/db.$TIN_LIBDIRoverrides any specified value. ๐๏ธbugaddressโ defines the email address users can send bug reports to using a built-in function. The default points to a developers mailing list located at tin.org. You might want to change this address to one of your local admins if you'd rather deal with your lusers' problems yourself. ๐ญ (no shade, we've all been there)inewsdirโ defines the directory containing theinews(1)executable. ๐ ๏ธmm_charsetโ default charset used in MIME'sContent-Type:header.$MM_CHARSEToverrides any specified value. ๐บpost_mime_encodingโ default encoding scheme used in MIME articles.8bitmight be the best value. ๐mail_mime_encodingโ default encoding scheme used in MIME letters.quoted-printableis a good choice here. โ๏ธdisable_gnksa_domain_checkโ allows unregistered top level domains. Since the list of valid TLDs is no longer actively maintained, the default was changed to ON starting withtin(1)version2.1.5. ๐disable_senderโ don't generate aSender:header. This only has an effect ifinews_progis set to--internal. ๐ซspooldirโ base of your newsspool (Bnews, Cnews and INN traditional spool style). Common values are/var/spool/news,/usr/spool/news,/news/spool.$TIN_SPOOLDIRoverrides any specified value. ๐overviewdirโ base of your NOV databasenewsoverview(5)(tradspool style; might be the same dir asspooldir). Common values are/var/spool/overview,/usr/spool/overview,/news/overview.$TIN_NOVROOTDIRoverrides any specified value. ๐overviewfileโ name of a single overview file. Common values are.overvieworover.view.$TIN_NOVFILENAMEoverrides any specified value. ๐overviewfmtfileโ full pathname of your newssystem'soverview.fmtfile. Usually it lives innewslibdirand is namedoverview.fmt, so you only have to change this setting if your configuration differs. ๐งพactivefileโ full pathname of your newssystem'sactivefile. Usually it lives innewslibdirand is namedactive, so you only have to change this setting if your configuration differs.$TIN_ACTIVEFILEoverrides any specified value. โกactivetimesfileโ full pathname of your newssystem'sactive.timesfile. Usually it lives innewslibdirand is namedactive.times, so you only have to change this setting if your configuration differs. ๐ฐ๏ธnewsgroupsfileโ full pathname of your newssystem'snewsgroupsfile. Usually it lives innewslibdirand is namednewsgroups, so you only have to change this setting if your configuration differs. ๐subscriptionsfileโ full pathname of your newssystem'ssubscriptionsfile. Usually it lives innewslibdirand is namedsubscriptions, so you only have to change this setting if your configuration differs. ๐ซถ
/usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo
translation into the language specified in $LC_ALL, $LC_MESSAGES or $LANG ๐
${TIN_LIBDIR:-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:-active}
This file lists the newsgroups that the local site receives. Each newsgroup should be listed only once. Each line specifies one group; within each newsgroup, articles get assigned unique names, which are monotonically increasing numbers. ๐ข
If an article is posted to newsgroups not mentioned in this file, those newsgroups are ignored. And if no valid newsgroups are specified, the article is rejected. ๐
Each line consists of four space-separated fields: "name highmark lowmark flags".
nameโ is the name of the newsgrouphighmarkโ is the highest article number that has been used in that newsgrouplowmarkโ is the lowest article number in the group; this number is not guaranteed to be accurate, and should only be taken to be a hint. Note that because of article cancellations, there may be gaps in the numbering sequence. If the lowest article number is greater than the highest article number, then there are no articles in the newsgroup. ๐ณ๏ธflagsโ can be one of those:yโ local postings are allowed โnโ no local postings are allowed, only remote ones ๐ซmโ the group is moderated and all postings must be approved ๐ก๏ธjโ articles in this group are not kept, but only passed on ๐xโ articles cannot be posted to this newsgroup โ=foo.barโ articles are locally filed into thefoo.bargroup ๐ฅ
tin(1) only tries to read the file if you read directly from the local spool. If you read news via NNTP, tin(1) uses the LIST (RFC 3977) or LIST COUNTS (RFC 6048) command instead. ๐ก
${TIN_LIBDIR:-NEWSLIBDIR}/active.times
This file provides a chronological record of when newsgroups are created. It's normally updated by the local news server (e.g., innd(8)) whenever a new group is created. Each line consists of three space-separated fields: "name time creator".
nameโ is the name of the newsgrouptimeโ is the time when the group was created, expressed as the number of seconds since the Epoch โณcreatorโ is the electronic mail address of the person who created the group
tin(1) only tries to read the file if you read directly from the local spool. If you read news via NNTP, tin(1) uses the NEWGROUPS (RFC 3977) command instead. ๐ก
${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups
This file provides short descriptions of each newsgroup. It's normally updated by the local news server (e.g., innd(8)) whenever a new group is created. Each line consists of two tab-separated fields: "group.name one-line description".
group.nameโ is the name of the newsgroupone-line descriptionโ is a short single-line description of the group
tin(1) only tries to read the file if you read directly from the local spool. If you read news via NNTP, tin(1) uses the LIST NEWSGROUPS (RFC 3977) command instead. ๐ก
${TIN_LIBDIR:-NEWSLIBDIR}/organization
This file might hold a default organization to be used in the Organization: header. $ORGANIZATION has a higher priority if set. ๐ข
${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt
This file specifies the organization of the news overview database (see also newsoverview(5)). The order of lines in this file is important โ it determines the order in which the fields will appear in the database. See also overview.fmt(5). tin(1) only tries to read the file if you read directly from the local spool. If you read news via NNTP, tin(1) uses the LIST OVERVIEW.FMT (RFC 3977) command instead. ๐
${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions
This file contains a list of newsgroups โ one per line โ which the client should subscribe to when the user has no ${TIN_HOMEDIR:-"$HOME"}/.newsrc for the news server. tin(1) only tries to read the file if you read directly from the local spool. If you read news via NNTP, tin(1) uses the LIST SUBSCRIPTIONS (RFC 6048) command instead. ๐
๐ SEE ALSO ๐
inews(1), ispell(1), lp(1), lpr(1), metamail(1), mutt(1), perl(1), perlre(1), pgp(1), rn(1), shar(1), slrnface(1), tin(1), xterm(1x), heapsort(3), iconv(3), iconv_open(3), nl_langinfo(3), pcre(3), pcre2(3), pcrepattern(3), pcre2pattern(3), qsort(3), strftime(3), system(3), active(5), mailcap(5), mbox(5), mmdf(5), newsoverview(5), overview.fmt(5), innd(8), RFC 1524, RFC 1952, RFC 2045, RFC 2046, RFC 2047, RFC 2231, RFC 2980, RFC 3977, RFC 4155, RFC 4643, RFC 5198, RFC 5322, RFC 5536, RFC 5537, RFC 6048, RFC 6838, RFC 8143, RFC 8315 ๐
and that's the whole page, bestie โ you made it to the end ๐ This one's from version 2.6.6, dated 2026-08-23, and it's the TIN(5) man page. Go forth and configure your newsreader like the main character you are ๐
โจ periodt.
๐ฆ 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