Man Linux: Main Page and Category List

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