Provided by: knews_1.0b.1-31_amd64 bug

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.

       +/-images
              This will turn on/off inline images and color allocation.

       -ncols number
              Sets the resource Knews.nCols to 'number', which is the max number of colors  knews
              will allocate for inline images.

       -version
              Prints out the version and compile time to stderr and quits.

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
       indicates  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 expressions.   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  wildcard  expression.   Pressing
       'Submit'  then  sends  this  to  the  server, and after a while it responds with a list of
       matching 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
       following %'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.

       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.

       [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.
              This field is empty in the per-group kill files.

       Field expression
              If the header field is 'S', 'F' or 'X', this is a regular 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.

       When  a  kill rule is applied, hot articles are not killed.  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.

       There  is  one global kill file (~/.knews/.kill-%s by default) and one kill file per group
       (~/.knews/%s/%g/KILL by default).  The rules in the global kill file  are  applied  before
       the per-group kill file.

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 MAILCAPS, 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 window.  Knews also has some support for encoded 16-bit charsets, 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 (superset) font.

MESSAGE/PARTIAL

       Unless the config option assemblePartials is False (see the section on THE  CONFIG  FILE),
       when  knews  encounters an article 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 containing white space or the characters '/', '.' or '*', knews finds the value
       of the resource Knews.#str and tries  to  execute  that  program.   The  program  has  its
       standard input and output connected to knews.  If you use this resource setting:

       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  ,
       shadowWidth  ,  and so on. For more information see the application 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.printCommand
              If  this resource is set, the misc menu will have a print option which invokes this
              command.

       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.sortGroups
              If  this  is set to True, knews will keep newsgroups alphabetically sorted when new
              groups are subscribed.

       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 article 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 confirmation before  disconnecting  or
              quitting.

       Knews.confirmCatchup
              If this is set to True, knews will ask for confirmation before catching up a group.

       Knews.confirmQuitGroup
              If  this  is set to 'True', knews will ask for confirmation before leaving a group.
              If set to 'tagged', knews will ask confirmation when exiting a group if  there  are
              tagged articles.

       Knews.visualClass   class
       Knews.visualDepth   bits
              If these are set knews will use a visual of the specified 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.

       Knews.inlineImages
              This boolean resource turns on/off inline images and color allocation.   Knews  can
              show jpeg, gif and png images (if compiled with support for this).

       Knews.nCols
              This  is  the  maximum number of colors knews will allocate for inline images.  The
              default is 137 (17 greys and a 5x5x5 color cube minus the 5 greys in that cube).

       Knews.colorHack
              If this is set to True, knews try to allocate the same  colors  as  other  programs
              have  already allocated, thus increasing the chances for color sharing.  The number
              of colors is controlled by the resource Knews.nCols.

       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 characters.  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 foreground 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 configuration 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.killFileTemplate
              This sets the default value of the config option killFile.  The  default  value  is
              ~/.knews/.kill-%s.

       Knews.groupKillFileTemplate
              This   is   the   template   for   the   per-group   kill  file.   The  default  is
              ~/.knews/%s/%g/KILL, so that e.g. the  newsgroup  news.software.readers  will  have
              ~/.knews/%s/news/software/readers/KILL  as  kill  file, where %s is the name of the
              server, as usual.

       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 configNntpServer.

       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 configuration 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  considered  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 newsgroup 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 connecting.  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 article 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 understands,
              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,
              Subscribed 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,  otherwise  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 followup 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  ">"
              respectively.   In  these  strings,  %i is expanded to the initials of the previous
              author and %I to the initials, capitalized.

       postedAndMailed
              This string will be instered into articles that are also  mailed  to  the  previous
              author.  The default is "[posted and mailed]".

       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, otherwise
              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
              for the current group 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.

       popup-kill([group])
              This  will  popup a kill file editor for the supplied group.  If no group is given,
              the editor for the global kill file is popped up.

       mime-hack(content-type, content-transfer-encoding)
              This action procedure reloads the current article, pretending it had the  specified
              Content-Type    and   Content-Transfer-Encoding   headers.    For   example   mime-
              hack(image/jpeg, uue) reloads the current article pretending  it  has  Content-Type
              image/jpeg and is uuencoded, thus makeing knews display it as an inline image.

              The default key-bindings have the following:
              ctrl-J      mime-hack(image/jpeg, uue)
              ctrl-G      mime-hack(image/gif, uue)
              ctrl-P      mime-hack(image/png, uue)

       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' articles.

       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  combination  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 window 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.

ACKNOWLEDGMENTS

       The threading algorithm was inspired 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
       the POSIX.2 regular expression functions.

       Thanks to Mattias Jonsson for ardent testing.

       From the gif89a spec:

       "The Graphics Interchange Format(c) is the Copyright property of
        CompuServe Incorporated. GIF(sm) is a Service Mark property of
        CompuServe Incorporated."

       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 uudecode function may not recognize or correctly handle all cases.

       The dithering algorithm used for grayscale images and  color  gifs  (essentially  'closest
       match') is very poor.

       AUTHINFO SIMPLE doesn't work for the second connection.

       When  the last article in a group has been cancelled, the number of unread articles may be
       incorrect.

BUGS

       Send bug reports to kjj@matematik.su.se

                                               1996                                      KNEWS(1)