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