NAME
knews - Karl's threaded newsreader for X
SYNOPSIS
knews [ options ]
DESCRIPTION
Knews is a threaded newsreader with an X Window interface
that uses NNTP to get news. This manual is intended to
explain things that are not apparent from the interface, so
if you just want to get started, you probably don't need to
read this.
OPTIONS
In addition to the standard X Toolkit options knews accepts
the following options, which set various X resources. For
an explanation of what the resources do, see the sections on
resources and the config file.
You don't have to type out the entire name of the option, as
long as it is unique.
-nntpServer hostname
Sets the resource 'Knews.nntpServer' to 'hostname'.
This will cause knews to connect to this server on
startup.
+/-bell
Sets the resource 'Knews.bell' to True/False.
+/-separate
Sets the resource 'Knews.separateWindows' to
True/False.
+/-active
Sets the resource 'Knews.readActiveFile' to True/False.
+/-descriptions
Sets the resource 'Knews.retrieveDescriptions' to
True/False.
+/-fill
Sets the resource 'Knews.fillNewsrcFile' to True/False.
+/-keep
Sets the resource 'Knews.keepThreadInfo' to True/False.
-install
This will make knews install its own colormap.
-visual class
-depth bits
These will set the resources 'Knews.visualClass' and
'Knews.visualDepth'.
+/-icase
Will set the resource 'Knews.icaseRegexps' to
True/False.
THE THREAD TREE
The articles in a thread are displayed as nodes in a tree. A
border inside a node indicates that the article is unread, a
border outside a node indicates that the article is
'tagged', and a dashed branch in the tree indicates a change
of subject. By default, you can scroll around in the tree
with the middle mouse button. An empty box in the tree indi-
cates a 'fake' article, i.e. one that has expired on the
server, has not yet arrived or was posted in a different
newsgroup.
TAGGING ARTICLES
Articles in the thread tree can be tagged with the third
mouse button. Clicking on a subject with the third mouse
button causes the unread articles in that thread to be
tagged in preorder (depth first). Once you have tagged the
articles, you can mark then read/unread, save or pipe them
in order, and so on.
CLICKING ON URLS
Knews supports a simple form of clicking on URLs. It works
by selecting a piece of text in the article text window and
clicking on it with the middle mouse button. If there is no
selection, knews will make a crude guess as to what the URL
might be. The resource Knews.urlCommand must be set for
this to work, see the section on X resources for details.
DRAG AND DROP
The all groups list and the kill list can be reordered by
drag'n'drop. The default translation is the second mouse
button.
ABORT
You may abort the interaction with the NNTP server at any
time. This causes the connection to be closed, and a new one
to be opened. Note that this puts a certain load on the
server.
THREAD AHEAD
Knews is capable of threading groups in the background while
you are e.g. reading another group. To do this you click on
one or more groups in the group list with the right mouse
button. Knews then opens a second connection to the server
and uses it to thread the selected groups. The status of
the thread ahead is shown in the group list as a character:
- The group is scheduled for thread ahead.
* The group is being threaded.
+ The group has been threaded.
REGULAR EXPRESSIONS
The regular expressions used by knews are POSIX.2 extended
regular expressions, similar to those used by egrep(1), by
default case insensitive. Note that these are not anchored
by default, so that e.g. the expression 'alt' will match any
string containing the three character sequence 'alt'. See
Henry Spencer's excellent man-page for details, regex(7).
SEARCHING
Article heads and bodies may be searched for regular expres-
sions. Searching applies to read or unread articles as
specified with the 'only unread' toggle, and starts with the
'next' article. The newsgroup list may also be searched.
Note: the 'Stop' button stops the search as soon as the
current article has been retrieved from the server. This is
different from 'Abort' which requires closing and reopening
the connection to the server.
It is also possible to use XPAT searching, if the nntp
server supports it. To do this, you fill in the 'Header'
field on the search popup with the header you're interested
in (e.g. 'Content-Type') and the wildcard field with a wild-
card expression. Pressing 'Submit' then sends this to the
server, and after a while it responds with a list of match-
ing articles. You can then move between those articles with
the 'Next' and 'First' buttons on the search popup.
FILE NAME EXPANSION
In most places where knews uses file names, such as the
save/pipe popup, the save/pipe action procedures, and the
newsrcFile options etc, ~ is expanded to $HOME, and the fol-
lowing %'s are expanded:
%% %
%n The name of the current group.
%N The name of the current group, capitalized.
%g The name of the current group, slashed.
%G The name of the current group, capitalized and slashed.
%s The name of the nntp server.
%p The number of the port the server listens to.
%a The number of the currently selected article.
Slashed means that the dots are replaced with slashes. Note
that if you save an entire thread to a file continaing %a,
the number will not change with the article.
THE KILL FILE
The kill file may be used to 'kill' (mark read) or 'hot'
(mark interesting) articles, subjects and threads based on
different criteria. As of version 0.9.4, hot articles Since
the entries in the kill file are processed in order, it is
possible to put kills at the beginning, so that the articles
are killed before they have a chance to become hot.
Each line in the kill file specifies an entry according to
the following syntax:
(F)(S)(A)[Col] || Group regexp || Field expression
(F)
This is a character specifying to which header this
entry applies. Legal values are:
'M' The 'Message-ID:' header, by far the most efficient.
'S' The 'Subject:' header.
'F' The 'From:' header.
'X' The 'Xref:' header.
Note that 'X' only works if the 'Xref:' header is
included in the overview files from the server. Also
note that the 'Re: ' prefix is not considered part of
the subject.
Entries applying to a message-id automatically expire
when the relevant article has expired.
(S)
This is a character specifying the scope of the entry,
i.e. what articles are killed/'hotted' when this entry
applies to an article. Legal values are:
'A' This article.
'S' All articles with the same subject.
'T' The entire thread.
't' The subthread starting with this article.
(A)
This is a character specifying the action of the entry.
Legal values are:
'K' Kill, which means mark read.
'H' Hot, which means mark interesting.
'h' Hotish, which is like hot but may be faster.
Hotish behaves just like hot except in a few cases: If
the scope is Article and the field is From, only unread
articles are affected. This will speed killing up for
normal behavior. Optimizations for other scopes and
fields may be implemented in the future.
[col]
In 'hot' entries, this is the color used to mark the
relevant articles with.
||
This two character sequence is used as a separator.
Group regexp
Only newsgroups matching this regular expression will
be affected by this entry.
Field expression
If the header field is 'S', 'F' or 'X', this is a regu-
lar expression, and the entry applies to all matching
articles. If the header field is 'M', this is a message
id; this id is probably the fastest type of kill entry,
since it can be checked with a single hash lookup.
To see what articles were killed: when you have read all
unread articles, or marked them read, use the 'mark unread,
killed' feature on the misc menu.
MIME VIEWERS AND MAILCAP FILES
Knews has internal support for content-types text/plain,
message/rfc822, message/partial, multipart/mixed and
multipart/digest. For other types, knews will look for a
mailcap entry for that type (see mailcap(5)). If one is
found, a clickable line will be inserted in the article text
window that is used to start the viewer. If there is no
viewer, then if the type is a subtype of text, knews will
display it, if it is a subtype of multipart, knews will
treat it as multipart/mixed, and otherwise knews will give
the user opportunity to 'Save or Pipe'.
Mailcap files are found via the environment variable MAIL-
CAPS, which is a colon separated list of path names. If
this variable is not set, a default list of
$HOME/.mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap
will be used. Note that all files found will be merged to
produce the mailcap database.
As a hack around miss/over designed mailcap files, knews
will ignore entries for text/plain and multipart/mixed.
TEXT/PLAIN ARTICLES
The following resources determine how knews will display an
article of type text/plain with a particular charset:
Knews.charset.headerFont
Knews.charset.bodyFont
Knews.charset.quoteFont
Knews.charset.listFont
Knews.charset.treeFont
Knews.charset.encoding
Knews.charset.headEncHack
The header, body and quote fonts are used for displaying
headers, ordinary text and quoted text in the article win-
dow. Knews also has some support for encoded 16-bit char-
sets, this is specified with the encoding resource. Legal
values for this are:
utf-7 The encoding specified for unicode in rfc 1642.
16-bit Straight 16-bit network byte order.
hz-gb-2312 The encoding for chinese described in rfc 1842.
ksc-5601 Also called iso-2022-kr, described in rfc 1557.
big5 Another encoding for chinese.
Note that due to the authors non-existent understanding of
asian languages these encodings have not been extensively
tested. Lots of guess work here.
For every newsgroup it is possible to specify a default
charset (see the section on THE CONFIG FILE). The fonts for
this charset will be used to display articles without proper
MIME-headers. Also, the listFont and treeFont (which may
not be encoded) will be used in the thread list and article
tree, respectively.
When specifying an encoded charset as defaultCharset, it may
be desirable to still assume that headers are ascii. This
may be accomplished by setting the 'headEncHack' resource
listed above, and setting the headerFont to an ascii (super-
set) font.
MESSAGE/PARTIAL
Unless the config option assemblePartials is False (see the
section on THE CONFIG FILE), when knews encounters an arti-
cle of type message/partial, it will be rememberered. When
all the parts have been seen, a notice will be popped up
offering to assemble the parts.
There is also an entry on the misc menu that allows a number
of articles to be tagged and processed to look for
message/partial articles.
POSTING MIME
When you post an article containing 8 bit characters that
doesn't have a Content-Type header, knews will add such a
header with charset equal to the value of the defaultCharset
config option. Also, when quoting articles with Content-
Type: text/plain and charset equal to the defaultCharset,
knews will decode the article before quoting. In both these
contexts, the charset iso-8859-1 will be used if
defaultCharset is not set.
READING THE SPOOLDIR
Knews supports a rather obscure mechanism for communicating
with an arbitrary program instead of an nntp server. Using
knewsd(1), this can be used for reading news (in)directly
from the spool dir, or even mail folders if they are in the
correct format. This is how it works: If the nntp server
is given as #str, where str is an arbitrary string not con-
taining white space or the characters '/', '.' or '*', knews
finds the value of the resource Knews.#str and tries to exe-
cute that program. The program has its standard input and
output connected to knews. If you use this resource set-
ting:
Knews.#spool: knewsd -spool /var/spool/news \
-active /usr/local/news/active
with the appropriate paths for your system, you can read the
spool directory by specifying the nntp server as '#spool' in
e.g. the connect dialogue. This could easily be used to
read mh(1) style mail folders too.
X RESOURCES
There are a number of X resources that affect the behaviour
and appearance of knews. Most widgets in the widget
hierarchy has resources named background , foreground , sha-
dowWidth , and so on. For more information see the applica-
tion defaults file Knews.ad included in the distribution. To
get a feeling for resources, try editres(1).
Knews contains a small xpm-file to pixmap converter, so it
is possible to use settings like e.g.
Knews*backgroundPixmap: ~/pixmaps/texture.xpm
Knews.nntpServer
If this resource is set, knews automatically connects
to this nntp server on startup. This overrides the
NNTPSERVER environment variable. If the server listens
to a non-standard port, you may specify this e.g as
foo.bar:1234. If you don't want knews to autoconnect,
don't set this or $NNTPSERVER.
Knews.editCommand
This resource specifies the editor used to edit posts.
Possible values include:
Knews.editCommand: xemacs +%i %s
Knews.editCommand: emacs +%i %s
Knews.editCommand: xterm -e vi +%i %s
%s stands for the name of a temporary file, and %i for
the line where editing should begin. The default value
of this resource is a compile time option.
Knews.urlCommand
This command is used for clicking on URLs. %s is
expanded to the URL, and the result is passed to the
shell. As a simple security measure, URLs will not be
allowed to contain quotes, parentheses, whitespace or
ampersands.
Knews.needsTerminal
Knews.copiousOutput
These are two shell command templates that will be used
for mailcap viewers that have the needsterminal or the
copiousoutput flag set, respectively. In these, %C
will be expanded to the relevant mailcap command. An
example should explain it:
Knews.needsTerminal: exec xterm -e /bin/sh -c '%C'
Knews.copiousOuptut: exec xterm -e /bin/sh '(%C) | less'
Knews.mimeTypes
This should point to a file whose contents maps
filename extensions to mime types. The syntax of this
file is examplified by the following list of compiled
in types:
image/jpeg jpg jpeg
image/gif gif
application/postscript ps
This is used to guess the Content-Type of attachments.
Knews.bell
Setting this resource to False will turn off the bell.
Knews.separateWindows
Setting this resource to True will make knews use a
different top level window for the article text widget.
Knews.stderrTimeout
When knews starts a pipe or similar, it captures the
standard error output and displays it in a notice
popup. This resource is the time in milliseconds this
popup should stay up. The default is 10000. Setting
this to 0 means stay up indefinitely, and negative
means no popups.
Knews.showCache
If this is True, knews will show the state of the arti-
cle caches in a small popup. See the config options
cacheAheadSize and cacheTrailSize for details.
Knews.mailName
If you have a mail address which isn't of the form
'userid@domain.name', you can set this to the part of
the address that goes before the '@', e.g.
Knews.mailName: FirstName.LastName
Note that your userid will still be used for the
'Sender' header if necessary.
Knews.useIcon
If this is set to True (the default), knews will use an
icon.
Knews.confirmQuit
Setting this to True will make knews ask for confirma-
tion before disconnecting or quitting.
Knews.visualClass class
Knews.visualDepth bits
If these are set knews will use a visual of the speci-
fied class and depth. Typical values for depth are 8
or 24. Legal values for class are 'StaticGray)',
'GrayScale', 'StaticColor', 'PseudoColor', 'TrueColor'
and 'DirectColor'. The depth will be ignored if no
class is specified.
Knews.installCmap
If this is set to True, knews will create its own
colormap.
The following resources can be used to change various color,
font and geometry settings:
Knews*grouplist.preferredLines
Knews*grouplist.preferredColumns
These resources specify the number of lines and columns
the grouplist widget will start up with. The default is
14 for lines and 84 for columns.
Knews*text.preferredLines
Knews*text.preferredColumns
These resources specify the number of lines and columns
the article text widget start up with. The default is
32 for lines and 84 for columns.
Knews*ArtTree.nodeColumns
The width of the nodes in the article tree in charac-
ters. The default is 16.
Knews*rubberColor
The color used for rubberbanding in one or two widgets.
The default is red.
Knews.headerColor
Knews.bodyColor
Knews.quoteColor
The colors used for headers, ordinary text and quoted
text respectiely in the article window.
Knews*innerColor
Knews*innerDashed
The color and line style used for the border of unread
articles in the article tree. The defaults are Red and
False.
Knews*outerColor
Knews*outerDashed
The color and line style used for the border of tagged
articles in the article tree. The defaults are fore-
ground and False.
Knews*ScrList.font
The font used in the lists.
Knews.defaultHotColor
The color used for hot entries in the kill file when
the specified color is invalid or cannot be allocated.
Some miscellaneous resources:
Knews.icaseRegexps
Setting this to False will make regular expressions
case sensitive. They are case insensitive by default.
Knews.readActiveFile
Knews.retrieveDescriptions
Knews.fillNewsrcFile
Knews.showNumberLines
Knews.keepThreadInfo
Knews.checkForNewGroups
These set the default values for the corresponding con-
figuration options. Their main purpose is to allow
command line arguments. Read the section on the config
file for details.
Knews.newsrcTemplate
Knews.oldNewsrcTemplate
These set the default values for the configuration
options newsrcFile and oldNewsrcFile, the default
values are ~/.newsrc-%s and ~/.oldnewsrc-%s. A value
not containing %s will not be accepted; if you want the
traditional ~/.newsrc for a particular server, see the
resource Knews.configNntpServer below.
Knews.configFile
The configuration file used by knews. The default
value is ~/.knews/config-%s, a value not containing %s
will not be accepted.
Knews.configNntpServer
Knews.configPostingAgent
Setting configNntpServer will make knews Do The Right
Thing when the user first connects to this server,
which means setting the newsrc file for this server to
~/.newsrc when creating the config file.
If the configPostingAgent is set this will be used for
the postingAgent config option for the con-
figNntpServer.
Knews.generatePath
If this is set to True, knews will generate a Path
header for articles. The header will be 'Path: d!u'
where d and u are such that the From header generated
by knews would be 'From: u@d'.
Knews.autoSubscribe
The value of this resource will be used when creating a
new newsrc file. If it starts with a '/', it is taken
as a pathname of a file whose contents will be inserted
into the new newsrc file, otherwise the literal value
of this resource will be inserted into the newsrc file.
The default value is
news.answers:\nnews.newusers.questions:\n
Knews.bogusFileSystem
When knews checks for new groups, it uses the atime
(time of last access) of the config file. Some
filesystems (e.g. AFS) have no concept of atime, but
fakes it with mtime (time of last modification)
instead. Setting this resource to True will make knews
forcibly update the mtime of the config file.
THE CONFIG FILE
When knews connects to an NNTP server it reads a configura-
tion file that will affect its behavior. This file is by
default called ~/.knews/config-%s where %s expands to the
name of the server, but this may be changed with the
Knews.configFile resource.
The syntax of the config file is the same as for X resource
files. When knews can't find the configure file, a new one
will be created containing some default settings and a few
examples settings that should be sufficient to clue you in
as to how it works.
It is possible to used #include statements in the config
file to include other files. Relative pathnames are con-
sidered relative to the current working directory, which for
knews is always $HOME. ~ pathnames are not handled in
#includes (if you want that you have to hack Xlib).
The following global (i.e. per server) options exist.
newsrcFile
oldNewsrcFile
These specify the newsrc file and oldnewsrc file for
this server. ~ pathnames and the same % expansions as
for saving are handled. If oldnewsrc is set to an
empty string, no backup of the newsrc file will be
created.
The default values for these are the values of the
resources Knews.newsrcTemplate and
Knews.oldNewsrcTemplate, whose default values are
~/.newsrc-%s and ~/.oldnewsrc-%s, respectively.
For a way of automatically using the standard file
~/.newsrc for a specific server, see the resource
Knews.configNntpServer above.
killFile
The kill file. The default value is the value of the
resource Knews.killFileTemplate, whose default value is
~/.kill-%s.
cacheDir
This directory is used for storing cached articles and
thread data for groups. The default is
~/.knews/cache-%s.
readActiveFile
Setting this to False will stop knews from reading the
active file when connecting, using the groups in the
newsrc file instead. This will speed up connection on
slow lines if you don't have too many subscribed
groups. The default is the value of the resource
Knews.readActiveFile, whose default is True.
retrieveDescriptions
A boolean option indicating whether to retrieve news-
group descriptions from the server. The default is the
value of the resource Knews.retrieveDescriptions, whose
default is True. Setting this to False may slightly
speed up connection time.
descriptionsFile
If this is set, the given file will be used to cache
group descriptions: when retrieveDescriptions is True,
knews saves the descriptions to this file and when
retrieveDescriptions is False, knews reads descriptions
from this file instead of from the server.
fillNewsrcFile
Setting this to True will make knews write all groups
it knows about to the newsrc file, which may be a good
idea if the option readActiveFile is set to False. The
default is the value of the resource
Knews.fillNewsrcFile, whose default is False, which
means only put information in the newsrc file.
tryListActive
When this is True (the default) and readActiveFile is
False, knews will try the "LIST ACTIVE wildmat" nntp
extension. If this fails knews will complain and fall
back to the old "GROUP" stuff.
checkForNewGroups
This is a boolean option indicating whether to check
for new groups when connecting to this server. The
default is True. The atime (time of last access) of
the config file will be used for the check.
threadAheadGroups
This is a white-space separated list of groups to be
automatically scheduled for thread ahead when connect-
ing. The special values 'all' and 'All' may be used to
designate all subscribed groups with unread articles
and all subscribed groups, respectively.
saveThreadInfo
Setting this to True will allow 'thread ahead' data to
be saved between sessions: knews will not remove the
files with this data when quitting, and when connecting
knews will check for these files for all subscribed
groups. If this is set, the options threadAheadGroups
and keepThreadInfo will be ignored.
rescanTimeout
This indicates the time in minutes between automatic
rescans. The default is 60 minutes, 0 means no
automatic rescans. Regardless of this, rescans will
only be performed at special points, to prevent a
'rescan-idle-rescan' loop.
groupNameColumns
The width of the group name in the group list, default
is 42.
askHowMany
Setting this to True will make knews ask at which arti-
cle the threading of a group should start. A hack.
postingAgent
If this is specified, knews will use this for posting,
instead of posting via NNTP. If your server requires
some kind of authentication that only inews under-
stands, you could set this to 'inews -h'. Note that
inews appends the signature, so you don't want knews to
add one too.
Also see the resource Knews.configPostingAgent above.
authInfoPass
authInfoUser
These are used to implement the NNTP AUTHINFO USER/PASS
protocol if required by the server. These exist mostly
for backward compatibility; authentication is usually
only required when posting, and then it is better to
use inews for postingAgent, since presumably inews
knows all about the required authentication.
Here is an example of some settings that will improve things
over a slow network connection:
readActiveFile: False
retrieveDescriptions: False
descriptionsFile: ~/.knews/cache-%s/descriptions
fillNewsrcFile: True
but note that you will probably want to read the active file
and group descriptions at least the first time you connect
to a server.
The following resources may be set on a per group basis;
they should be prefixed with the name of the group they
apply to.
keepThreadInfo
This tells knews whether to keep thread information in
memory after the group is exited. This will make
reentering the group fast. Legal values are: True, Sub-
scribed and False. 'Subscribed' means only do it if the
group is subscribed, and exists to allow settings such
as:
*keepThreadInfo: Subscribed
to keep thread info for all subscribed groups. The
default value for this option is 'Subscribed' if the
resource Knews.keepThreadInfo is set to True and
'False' otherwise.
cacheAheadSize
cacheTrailSize
These two set the sizes of the two article caches, the
defaults are 0. The 'ahead cache' is used to prefetch
articles from the server in the background using a
second connection. The 'trail cache' is used to keep
articles that you have already read, so that going
back, saving or uudecoding will be faster. The maximum
values for these are 32.
sortThreads
This indicates how the threads should be sorted. A
thread consists of several subjects. These are sorted
within the thread according to the order they occur.
Then the threads are sorted according to the setting of
this option. The legal values and their meanings are:
subject Alphabetically by the first subject in the thread.
size Number of unread articles in the thread.
full-size Number of articles in the thread.
hot Number of hot articles in the thread.
date The date of the first unread article.
average-date The average date of unread articles in the thread.
author Alphabetically by the first From: line in the thread.
none No sorting.
All these values may be prefixed with a minus sign to
indicate a reversal of the order, or a plus sign which
is a no-op. The default value is none.
expireKills
Setting this to False will stop expirations from the
kill file. The default is True, which means that
Message-id kills will expire when you enter a group
where the kill entry would have been applicable, but
the article with that message-id was not found.
attribution
This string is used to attribute quotations when you
post a followup. The default is
In article %m,\n %f writes:
where \n is a newline. The following %'s are expanded:
%% %
%d The date of the quoted article in the form 01 Jan.
%f The From: line of the article replied to.
%i The initials of the previous poster.
%I The initials of the previous poster, capitalized.
%m The message-id of the article replied to.
%n The current newsgroup.
%r The real name of the previous poster.
%s The subject of the quoted article.
%t The time of the quoted article in the form 18:24:02.
%w The week day of the quoted article.
%y The year of the quoted article.
Thus '%w, %d %y %t GMT' will give the date in standard
rfc822 format.
fullName
This is the full name used in the 'From:' header in the
articles you post. The default is $NAME, if set, other-
wise the gecos field from the password file, suitably
truncated.
headerFormat
A colon and white-space separated list specifying which
headers to show in the article window, and in what
order. The default is
Subject:Newsgroups:Followup-To:Reply-To:\
Content-Description:Date:Organization:From:
If the name of the header starts with a captial letter
(From: as opposed to from:), knews will decode rfc1522
encoded words encountered in this header. (Those are
the weird things that look like =?iso-8859-
1?q?stuff_here?=.) Encoded 16-bit charsets are not
decoded in headers yet.
assemblePartials
This boolean tells whether message/partial articles
will be remembered and offered for assembly.
quoteRegexp
Lines in an article matching this regular expression
will be considered quoted lines, and may be marked with
a different color and font. The default is
^[ \t]*[:>|]
which matches lines beginning with an arbitrary amount
of white space (the \t denotes a tab, note that \t
won't actually work) followed by a >, : or | character.
You will probably want to have this expression
anchored...
defaultCharset
The fonts for this charset will be used to display
articles that lack MIME-headers. If this is not set,
us-ascii will be assumed.
Also, rfc1522 encodings of this charset in the From and
Subject header will be decoded when displayed in the
article tree and the thread list. In this case, iso-
8859-1 is the default.
showNumberLines
A boolean option indicating whether to show the number
of lines in articles in the thread tree. The default
is the value of the resource Knews.showNumberLines,
whose default is False.
signatureFile
The contents of this file will be used to sign the
articles you post (before editing). The default is
~/.signature.
subjectColumns
The width of the subject in the thread list, default is
56.
quoteString
quoteQuoteString
These strings are used for quoting when posting a fol-
lowup article; the first one are used to quote lines
that were not quoted in the original article, and the
second one is used for lines that were already quoted.
What lines are considered quoted is determined by the
quoteRegexp. The defaults are "> " and ">" respec-
tively. In these strings, %i is expanded to the ini-
tials of the previous author and %I to the initials,
capitalized.
distribution
If this is set, it will be used as the content of a
'Distribution' header. The default value is the value
of the environment variable DEFNEWSDIS if set, other-
wise empty.
fullHeader
A boolean specifying whether to show all headers in the
article window. It also means turn off all MIME
transformations. The default is False.
replyTo
A string used to construct the 'Reply-To:' header in
the articles you post. The default is the value of the
environment variable REPLYTO if set, otherwise empty.
organization
A string used to construct the 'Organization:' header
in the articles you post. The default is $NEWSORG if
set, otherwise $ORGANIZATION if set, otherwise nothing.
processXrefs
If this boolean is True, as it is by default, articles
that are crossposted will be marked read in all groups
when you read them, mark them read, kill them or catch
them up.
Note that this only applies to subscribed groups, and
will only work if the server's overview file contains
the Xref: headers.
extraHeaders
This string is inserted into the head of all articles
you post (before editing). The default is empty. This
could be used to put in Mime headers, like this:
*extraHeaders: Content-Type: text/plain; charset=iso-8859-1
followupHeaders
This is a combination of extraHeaders and attribution:
it is inserted in the headers of replies and followups
and the same %'s as in attribution are expanded. An
example:
*followupHeaders: X-Comment-To: %r
uuDir
Uudecoded files will end up in this directory. Or
rather, the forked off uudecoding process will be given
this as its current working directory. The default is
~/News.
uuProgram
This program will be used to uudecode files: it will be
given the bodies of the relevant articles on standard
input. The default is NULL, which means that knews
will do its best to filter out garbage and then pipe
the rest to 'uudecode'.
Here is an example of how to set different signatures for
different newsgroups:
swnet*signatureFile: ~/.signature-svensk
de*signatureFile: ~/.signature-deutsch
*linux*signatureFile: ~/.signature-linux
The first sets the file ~/.signature-svensk for all groups
in the swnet hierarchy, the second one sets the file
~/.signature-deutsch for the de hierarchy, and the last one
sets the file ~/.signature-linux for any group containing
linux as a component (not merely a substring). The file
~/.signature will be used for all other groups.
ACTIONS
Knews defines a number of actions that can be tied to keys
and buttons via translations. For the default translations,
see the application defaults file.
do-the-right-thing()
Does the right thing.
kill-append(field, scope [, color])
kill-prepend(field, scope [, color])
These action procedures append and prepend respectively
entries to the kill file according to the currently
selected article.
Valid values for the 'field' parameter are "From",
"Subject" and "Message-Id", and valid values for
'scope' are "Thread", "Subthread" and "Subject". If
the color parameter is present, the entry added is a
hot-entry with that color, otherwise it is a kill-
entry.
It is probably a good idea to use these with field =
"message-id", since message-id kills are very efficient
and expire with the corresponding article.
tree-up(arg)
tree-down(arg)
tree-left(arg)
tree-right(arg)
tree-down-right(arg)
These move around in the thread tree. If the arg is
'read', they will also read in the relevant article, if
arg is 'fake', they will also try to read 'fake' arti-
cles.
list-up(arg)
list-down(arg)
These move up and down in the lists. If arg is given,
it is the number of steps, or if it contains a '.', the
fraction of the window to move.
enter-mode()
exit-mode()
These two actions moves between modes.
tree-or-list-up(arg)
tree-or-list-down(arg)
tree-left-or-exit-mode(arg)
tree-right-or-enter-mode(arg)
These are combination actions. E.g. tree-or-list-
up(arg) does tree-up or list-up(1), depending on which
is relevant.
read-article(arg)
This rereads the current article. If arg is given, the
article is displayed with full header and no MIME
transformations.
view-thread(arg)
This moves between the subject list and the thread
tree. If arg is 'toggle', it toggles, if arg is 'yes'
it goes to the tree, and if arg is 'no', it goes to the
subject list.
followup(arg)
reply(arg)
followup-and-reply(arg)
post-new()
These correspond to the options on the post menu. If
arg is given as 'yes' or 'no', it indicates whether to
include quoted text.
uudecode()
clear-tagged()
mark-read-article()
mark-read-subject()
mark-read-thread()
mark-read-subthread()
mark-read-to-current()
mark-read-all()
mark-read-tagged()
mark-read-non-tagged()
mark-read-cold()
mark-unread-article()
mark-unread-subject()
mark-unread-thread()
mark-unread-subthread()
mark-unread-all()
mark-unread-tagged()
mark-unread-killed()
These perform the corresponding functions on the misc
menu.
pipe(command, parts [, scope])
save(filename, parts [, scope])
Pipe and save actions. The argument 'parts' is a com-
bination of the characters 'f', 's', 'h', 'b', 'e',
corresponding to the 'bogus from', 'bogus subject',
'head', 'body' and 'empty line' options on the save
popup window. The 'scope' parameter is optional, and
is one of 'window', 'article', 'subject', 'thread',
'subthread' and 'tagged', corresponding to those
options on the save popup.
tag-thread([all])
tag-subject([all])
These tag the unread articles in a thread or subject.
If 'all' is specified, they tag all articles in the
thread or subject.
untag-thread()
untag-subject()
These untag the tagged articles in a thread or subject.
tag-hot()
This action tags all unread hot articles, same as on
the misc menu.
catchup()
unsubscribe()
subscribe()
Guess what.
change-size(pixels)
Changes the size of the upper portion of the main win-
dow by the specified number of pixels.
schedule-thread-ahead()
Causes a group to be scheduled for 'thread ahead'.
popup-find-group()
Popups the 'find group' popup, same as the 'find group'
option on the misc menu.
WIDGETS
The X interface of knews is built with its own widget set
plus the Layout Widget. You are welcome to use it if you
like. Unfortunately there is no documentation.
AUTHOR
This software is Copyright 1995, 1996 by Karl-Johan Johnsson
<su95-kjo@nada.kth.se>.
Permission is hereby granted to copy, reproduce, redistri-
bute or otherwise use this software as long as: there is no
monetary profit gained specifically from the use or repro-
duction of this software, it is not sold, rented, traded or
otherwise marketed, and this copyright notice is included
prominently in any copy made.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PUR-
POSE AND NONINFRINGEMENT. ANY USE OF THIS SOFTWARE IS AT THE
USERS OWN RISK.
ACKNOWLEDGMENTS
The threading algorithm was adapted from trn. Thanks to
Wayne Davison.
Knews uses Keith Packard's Layout Widget.
The distribution includes Henry Spencer's regex package for
environments that do not have POSIX.2 regular expressions.
Thanks to Mattias Jonsson for ardent testing.
Any problems are of course entirely due to me.
SEE ALSO
egrep(1), knewsd(1), trn(1), uudecode(1), mailcap(5),
newsrc(5), regex(7).
KNOWN PROBLEMS
If the server doesn't support XOVER, threading will be very
slow.
The kill file editor may seem a bit eccentric.
The uudecode function may not recognize or correctly handle
all cases.
BUGS
Send bug reports and comments to su95-kjo@nada.kth.se.