Provided by: knews_1.0b.1-32_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)