% ============================================================================= %
%                          Andrew Preater's .slrnrc                             %
%                          ------------------------                             %
% emails to: preater@zworg.com                                                  %
%                                                                               %
% slrn questions: ask in news.software.readers.                                 %
% Make sure to include "slrn" in the Subject:, many of us score on this.        %
% How to:                                                                       %
%                                                                               %
% [news.software.readers]                                                       %
%       Score: =-9999                                                           %
%       ~Subject: slrn                                                          %
%                                                                               %
% By default slrn scoring is *not* case-sensitive, and note that ~ reverses the %
% condition of the score -- so "Subject does not contain slrn = score at -9999" %
%                                                                               %
% Also please note it's 'slrn', not 'SLRN'. :)                                  %
% ============================================================================= %
% Useful slrn links:                                                            %
% -----------------                                                             %
% TFM: http://slrn.sourceforge.net/manual/slrn-manual.html                      %
% Jurriaan's page: http://www.xs4all.nl/~thunder7/                              %
% Emmanuele's page: http://www.emmanuelebassi.net/software/slrn/                %
% Sven's site: http://www.math.fu-berlin.de/~guckes/slrn/                       %
% -- Sven's site is dead!  Mirrors anyone?                                      %
% tsca's S-Lang page: http://www.geocities.com/tsca.geo/slang.html              %
% S-lang regexps: http://www.s-lang.org/doc/html/slang-18.html                  %
% Christian Schneider's slrnrc: http://strcat.neessen.net/dotfiles/#slrn        %
% Michael Prokop's slrnrc: http://www.michael-prokop.at/computer/config/.slrnrc %
%                                                                               %
% NOTE: you *must* edit this file before it's suitable for use on your system.  %
% Please check everything, then save as ~/.slrnrc  If you don't change this     %
% file, this sort of thing happens!                                             %
% <e963b774.0409100221.790d9d5f@posting.google.com>                             %
%                                                                               %
% You have probably guessed comments begin with '%'.  Whitespace is fine too.   %
% ----------------------------------------------------------------------------- %
% Last modified: 2005-06-04 22:20:06 BST                                        %
% ============================================================================= %

% ============================================================================= %
% A few notes about slrn under win32.                                           %
% slrn will run happily under Windows 9x and NT4/5/5.1, but you need a few      %
% small tweaks...                                                               %
%                                                                               %
% (a) It's best to use DOS-compliant 8.3 filenames, so name your slrnrc         %
%     'slrn.rc' for example.  This also means you can associate .rc files       %
%      with gvim for easy editing.                                              %
%                                                                               %
% (b) You need to escape backslashes in filenames, so rather than e.g.:         %
%     c:\progra~1\slrn you should use: c:\\progra~1\\slrn                       %
%                                                                               %
% (c) Start slrn with a DOS batch file to set environment variables.            %
%     Example slrn.bat:                                                         %
%                                                                               %
%     ++++ snip here ++++                                                       %
%     set HOME=c:\progra~1\slrn                                                 %
%     set TMP=c:\WINDOWS\Temp                                                   %
%     set NNTPSERVER=nntp.example.net                                           %
%     slrn.exe                                                                  %
%     ++++ snip here ++++                                                       %
% ============================================================================= %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% [1] First include other slrnrc files:
%% You can refer to other slrnrc files located elsewhere
%% using 'include', same as muttrc in Mutt.
%%
%% All paths are relative to $SLRNHOME or $HOME if unset.
%% e.g. include ".slrn-colour", "News/server-settings"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% include files with 'include filename'
include "News/server_stuff"

        % Has no place in an online slrnrc ;)
        % But here are the basics:
        % server "host"             ".newsrc-file"
        % server "news.example.net" ".jnewsrc"
        %
        % If you need to use a username / password:
        % nnrpaccess "news.example.net" "username" "password"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [2] Tell slrn about your identity
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% The "From:" header is generated from the following three variables.
  %% It will read: "realname <username@hostname>" so you need to include
  %% a "From:" email address if you don't have a proper FQDN.

 set realname "Andrew Preater" % Please use your real name.  According
 set username "preater"        % to the RFCs, this should be inclosed in
                               % "quote marks" --> wish!

 set hostname "deadspam.com"  % Spam-sink.  Get one from http://www.deadspam.com
%set hostname "linuxmail.org"
%set hostname "zworg.com"     % Experiment -- Zworg now using Spamassassin.
%set hostname "preater.com"

  %% Set this if you want replies to your articles to go to a address different
  %% from the one in "From:".  Use for spam-blocking, but allows those who can't
  %% de-mung an address given in the .sig to email.

%set replyto  "preater@fuckmicrosoft.com" % Fuck 'em!  Get one from
                                          % http://www.fuckmicrosoft.com
%set replyto "preater@zworg.com"
 set replyto "usenet-mail@preater.com"

  %% What to put in the "Organization:" header.
set organization "AOLM slrn Mafia"  % We are the slrn Mafia.  You will be
                                    % assimilated, etc.

  %% The location of your signature (sig) file.
  %% If "", no signature is added.  Note, slrn automatically adds a
  %% sigdash, "-- " to the beginning if there is not already one present.
  %% Default if unset is ~/.signature.
%set signature ".signature.mp3"

  %% This appends a string to the end of every post, so I don't have to
  %% write my name every time.
%set signoff_string "\nAndrew\n"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [3] Interpret s-lang macros.
%
% You can extend and tweak slrn's capabilities using s-lang macros.
% slrn can be extended almost without limit in this way.
% To do this you should include a line like:
%
% interpret "Path/to/macro.sl"
%
% The path is relative to $SLRNHOME or $HOME if unset.
% Get these macros on the 'net.  One day I will get around to
% putting a tarball of the ones I use on the Web...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% Macro that tells me that I have "postponed" messages the first time I
  %% enter 'group mode'.
interpret "News/notify_postponed.sl"

  %% Macro that re-wraps crappy formatted quotes made by Microsoft's
  %% piss-poor 'newsreader', Outlook Express.
interpret "News/oe_quot.sl"

  %% Macro that sets "sticky" tags on articles -- so tags don't
  %% disappear when I quit the group.
interpret "News/stickytags.sl"

  %% Macro to sort headers in posts how I want them (not how their
  %% crappy news-reader or server says)
interpret "News/sort-headers.sl"
interpret "News/my_hooks.sl" % Need to interpret a hooks file for the above
interpret "News/sort-order"  % And a config file for this, describing how to 
                             % sort headers

  %% A hook that resizes the header pane to be larger than default, so
  %% I don't have to keep pressing '^' all the damn time.  A FAQ on
  %% n.s.readers.
interpret "News/header_hook.sl"

  %% Macro that allowing GnuPG integration in slrn for signing
  %% articles.
%interpret "News/gnupg.sl"

  %% While we're here, fix GnuPG's munging of sig-delimiters.
  %% slrn by defalt recognises "--".  GnuPG, for reasons of its own,
  %% changes this to "- -- ".  Work around this by changing the regexp
  %% that sets what slrn recognises as a .sig.
strip_sig_regexp "-- " "- -- ?"

  %% A macro that allows changing colour-scheme on the fly.
interpret "News/farbenwahl.sl"

  %% A macro that allows viewing of the "raw message", using ctrl-r
%interpret "News/raw.sl" % Didn't work.

  %% Allow on-the-fly selection of colours!  color.sl comes with slrn,
  %% so modify the path to taste.
%interpret "/usr/local/share/slrn/macros/color.sl"
%setkey article edit_colors "^j"

  %% A macro that allows headers from external programs (like uname)
  %% to be added to articles.  Breaks other custom headers -- they
  %% don't show up. :(  There has been a lot of discussion in
  %% n.s.readers about macros to do this that do not break custom
  %% headers, and ways to massage uptime(1) output with sed et al.

%interpret "News/ext_header.sl"    % uname(1) header.
%interpret "News/uptime_header.sl" % same, but for uptime(1).

  %% A macro that allows display of X-faces.  Requires slrnface and X!
%interpret "News/slrnface.sl"

  %% Emmanuele Bassi's identity macro, allows different From:, .sig etc.  on
  %% a per-groups basis.
%interpret "News/identity.sl"
%interpret "News/identities" % File defining those identities.

  %% 041201
  %% Sven's M-Id generating slang macro.
  %% Format: Message-ID: CCYYMMDDTHHMMSS@fqdn
  %  E.g.    Message-ID: 20041201T010521@preater.com

%interpret "News/mid.sl"

  %% one-key scoring for quick plonks
interpret "News/onekey-score.sl"
%% FIXME: Keybindings don't really belong here
% setkey article OneKeyScore->ignore_subthread "^K"
setkey article  OneKeyScore->watch_subthread "^W"
setkey article "OneKeyScore->create_score('f', -9999, 't', 0, 1);" "^K"

  %% "Poor Man's MIME" macro to prettify inappropriate MIME posts
  %% Must first interpret some of the slrn-pl macros to make
  %% mime.sl work!
interpret "News/konwertuj.sl"
interpret "News/slrn-pl.sl"
interpret "News/mime.sl"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [4] Server specific settings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% This can either be set to "nntp" (read online) or "spool" (use local spool)
  %% No need to use "slrn --spool" to start slrn reading from the local spool.
set server_object "nntp"

  %% This can be "nntp" (post directly to the server), "inews" (use external
  %% program for posting) or "slrnpull" (spool message for slrnpull to send
  %% later).
set post_object "nntp"

  %% Leave this at zero if you want to leave Message-ID generation to
  %% your server or your system does not have a proper unique hostname.
set generate_message_id 1

  %% If you're generating the MID, better have an FQDN that the
  %% news-server likes.  Please don't leave this at 'localhost.localdomain'
  %% or 'darkstar' on your home Linux box, either use a proper domain or
  %% let your news-server set a MID.

% posting_host "ID-139491.user.dfncis.de"
  posting_host "preater.com"

        % 030106 news.cis.dfn.de don't mind if you use something else,
        % but it must be unique.

  %% My news-server sets a strangely formatted date, so use slrn to
  %% generate the date header.
set generate_date_header 1

  %% If non-zero, slrn reads the active file on each startup.  You might
  %% want to use this if your network connection is fast or the server
  %% has few groups.
%set read_active 0

  %% Settings for slrnpull (from the docs)
  %% Note: SLRNPULL_ROOT defaults to /var/spool/news/slrnpull
  %% all slrnpull stuff is relative to that directory
%set spool_inn_root  "/var/spool/news/slrnpull"
%set spool_root      "/var/spool/news/slrnpull/news"
%set spool_nov_root  "/var/spool/news/slrnpull/news"
%set read_active  1
%set use_slrnpull 1

  %% Note also: set server_object "spool" has already been done above.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [4a] New options from the jwk-patches!
% See: http://www.xs4all.nl/~thunder7
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% From SLRN_HAS_DELAY_BODY

  %% Defines a minimum score for auto-marking these bodies for download. I use
  %% this for my own articles and articles by authors I always want to read.
  %% This is useful, I score up my own posts and replies and those of people
  %% want to read.  500 will do.
%set auto_download_body_score 500

  %% Define the "boost" that the score of articles with a body get. This helps
  %% to read a group after retrieving the bodies, all the articles with bodies
  %% get a higher score and migrate to the top of the list (see earlier, I am threading
  %% and displaying articles by score).
%set with_body_score_boost 500

  %% From SLRN_HAS_PERSISTENT_SCORE
  %% Point at it yourself, use
%set persistent_scorefile "News/pscore"

  %% Note: slrnpull expects pscore in $SLRNPULL_ROOT/prsscore.dat, so you
  %% can symlink that if you want to use it in slrnpull as well.
  %% Persistent score is talked about in the jwk hack's docs.  It's good!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [5] Which external programs (editor, browser, mailer) to use?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% EDITOR
  %% Set your favourite editor.  Use %s for the file name and %d for the
  %% line where the cursor should be placed (usually at the beginning of
  %% the body so you can snip).

  %% First an example for slrn under win32, Textpad:
% set editor_command "c:\\progra~1\\textpa~1\\textpad.exe %s"

% set editor_command "jed '%s' -g %d -tmp"
% set editor_command "vim %s +%d"
% set editor_command "nano -r 72 --tempfile '%s'"
% set editor_command "vim '+set filetype=mail' +%d '%s'"

  %% A random sig generator using fortune.
% set editor_command "fortune -s > ~/.signature.random; vim '+set filetype=mail' +%d '%s'"

  %% Including current song in sig.  Uses xmms-infopipe, see:
  %% http://www.preater.com/apps/slrn/slrnsig.html
set post_editor_command "FILE='%s'; mp3sig.sh >> $FILE; vim +%d $FILE"

% set post_editor_command "mp3sig.sh > ~/.signature.mp3; vim '+set filetype=mail' +%d '%s'"
% set post_editor_command "FILE='%s'; mp3sig.sh >> $FILE; vim '+set filetype=mail' +%d $FILE"

        % Here, Vim 6.x didn't recognise news articles as "mail" files 
        % for syntax highlighting.  BTW in ~/.vimrc I have:
        % "au FileType mail set tw=72" so no need to include that here.

        % 050319 This was because of this little beauty in filetype.vim:
        %
        % " Mail (for Elm, trn, mutt, rn, slrn)
        % au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,
        % .article,.article.\d\+,pico.\d\+,mutt-*-\w\+,mutt\w\{6\},ae\d\+.
        % txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
        %      ^^^ Whereas I was using ~/tmp

  %% You can have separate commands for editing posts, mail, and score files.
set mail_editor_command "mutt -H '%s'"
set mail_editor_is_mua 1

%set post_editor_command "jed '%s' -g %d -tmp"
%set score_editor_command "jed '%s' -g %d -tmp --score-arrange-score"
        % No, use $EDITOR.

  %% If non-zero, slrn will abort posting or emailing if the file was
  %% not modified by the editor.
set abort_unmodified_edits 1

  %% In case you need metamail to display an article:
%set metamail_command "metamail"

  %% BROWSER
  %% Web browser to use.  Xbrowser is used when the DISPLAY environment
  %% variable is set; non_Xbrowser otherwise.  Note, the single quotes in
  %% '%s' are required!

 set non_Xbrowser "lynx '%s'"
%set non_Xbrowser "links '%s'"
 set Xbrowser "firefox -remote 'openURL('%s')'" % Open a new tab in existing window
%set Xbrowser "mozilla '%s'"
%set Xbrowser "galeon --existing '%s'"

  %% PRINTING
  %% Command to use for printing:
set printer_name "muttprint"  % muttprint rocks, but can't get it to
                              % compile under Mandrake 10 :(
                              %
                              % 050304: working again under
                              % Mandrake 10.1 :)
% set printer_name "lpr"

  %% In case you want to use another MTA than sendmail:
  %% make sure it uses a sendmail-complaint interface!
%set sendmail_command "/usr/lib/sendmail -oi -t -oem -odb"

  %% Set this to one if you want the "From:" header in e-mails to be
  %% generated from the hostname / username / realname variables above.
  %% Note: Not all MTAs are configured to allow this.
%set generate_email_from 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [6] Directory and file names for saving/decoding articles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% Note: All filenames in this section are relative to slrn's HOME
  %% (SLRN_HOME) unless they start with a '/', or relative to $HOME if
  %% unset.

  %% Filename where articles / mail you send are archived.
  %% Note: If these are unset, slrn will *not* keep a copy of outgoing
  %% messages.
set save_posts "Mail/USENET-posts"
set save_replies "Mail/USENET-replies"

        % Why not keep them in Mail, anyway?  I only ever read them
        % with Mutt.
        %
        % n.s.r FAQ: Why can't slrn read saved posts?
        % Ans: Feature. ;)  Please use a mailer such as Mutt.

  %% File where failed posts are appended.  Use "" to disable saving.
set failed_posts_file "News/dead.letter"

  %% Name of score file.
set scorefile "News/scorefile"

        % Your newsreader's best friend.
        % 041122 See also:
        % http://www.preater.com/apps/slrn/scorefile.gz
        % Note - woefully out-of-date!

  %% Name of directory where decoded files are placed.
set decode_directory "News"

  %% Directory where all other files are saved.
set save_directory "News/saved"

        % Note: By default slrn saves articles in a file called
        % Some.news.group if the group is called some.news.group
        % Symlinked in ~/Mail so I can easily browse saved stuff.
        % 021222 I am tempted to move this to ~/Mail entirely.

  %% Directory where postponed articles are placed.  Make sure it exists!
set postpone_directory "News/postponed"

        % I'm still asked for a filename every time I want to postpone,
        % though.  There must be a way to automatically set it to say 
        % news.group.yymmdd.mmhh with a macro...

  %% Whether to put temporary files for postings, followups and replies
  %% in the directory specified by the TMPDIR environment variable or
  %% /tmp.
set use_tmpdir 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [7] Attribution lines and custom headers
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% This sets the attribution lines for follow-ups and replies.  The following
  %% format specifiers are okay:
  %%  %d:date, %D:date (formatted), %r:real name, %R:first name,
  %%  %f:email address, %s:subject, %m:msgid, %n:newsgroups, %%: percent

%set followup_string "On %D, %r wrote:"
%set followup_string "* %r <%f> [%D]:"
set followup_string "* %r <%f>:"
        % This is a real man's attribution of the Guckes school.
        % http://learn.to/attribute

%set reply_string "On %D in %n, you wrote:"
%                   ^^^^^^^^^^^^^^^^^^^^^^^ --  Bleeeeugh!

 set reply_string "* %r [%D] [%n]:"
        % Handy to have newsgroup name and a date for mails.  Note:
        % set what %D and %d mean exactly elsewhere in this file.

  %% Custom headers to add to *new* posts
set custom_headers "Mail-Copies-To: nobody\nX-Editor: Vim 6.3 http://www.vim.org"

        % Note: It is not possible to set this to headers that slrn
        % already sets, so you can't say override the User-Agent with
        % something else.
        %
        % If you were wondering, you *can* change the User-Agent but
        % you need source and a recompile.  Look in the src directory:
        %
        % $ grep User-Agent *
        % post.c:           fprintf (outfp, "User-Agent: slrn/%s (%s)\n", Slrn_Version,
        % post.c:           Slrn_Post_Obj->po_printf ("User-Agent: slrn/%s (%s)\n\n", 
        %
        % Should be obvious what you need to change.

  %% Custom headers for followup/reply/supersedes.  These can use format
  %% specifiers as in the 'followup_string' variable.
set followup_custom_headers "Mail-Copies-To: nobody\nX-Editor: Vim 6.3 http://www.vim.org"

        % X-GPG-Key-ID: 0x120AB314\n
        % X-Request-PGP: http://preater.com/key.asc
        % X-PGP-Keys: http://www.preater.com

set reply_custom_headers "X-Newsgroup: %n"
        % Nice to have the newsgroup in email replies.

%set supersedes_custom_headers "X-Superseded-Date: %d"

  %% These are inserted when sending email CCs of your postings.
  %% cc_post_string currently does not support any % escapes!
%set cc_followup_string "[This message has also been posted to %n.]"
%set cc_post_string "[This message has also been posted.]"

  %% Always warn me that a followup will be sent to groups other than
  %% the group I read it in:
set warn_followup_to 2

  %% What to count as "quotes" in text:
  %% This one includes fancy/shitty "Name>" type Gnus & Supercite
  %% quotes.  These will be ignored when you press 'T', so it's
  %% important.
%ignore_quotes "^ ? ?[A-Za-z0-9]*[]-|>#:)}=+%>]"

%ignore_quotes "^[>|#:][>|#: ]"                  % Not aggressive enough!
%ignore_quotes "^ ? ?[]-|>#:)}=+%>]"             % Sven's, nice but too aggressive.
ignore_quotes "^ *[a-zA-Z-]*>" "^ *[\]|)]" "^ *:[^-()^]"
        % By Tomasz Sienicki.  This one is perfect!
        % It won't catch lines starting with a smiley :)

  %% Tell slrn how to indent quoted text for followups / replies.
%set quote_string "> "

        % Unset, slrn uses the standard "> ".  This is the ONLY prefix
        % commonly accepted on Usenet.  Please, please don't try to be
        % "cute" or "different" by using something stupid like ':',
        % '}' or similar.

        % Even more annoying (if that's possible), is this:
        %  >Here's my quoted text.
        %  >And some more.
        % Please leave the god damn space in "> " alone!

  %% How is slrn going to handle date and time formats etc?
  %% Use the local time, or GMT:
set use_localtime 3 % Always use local timezone.

  %% This is the format used for the formatted date (%D) when you
  %% followup to an article, same format as in strftime
  %%
  %% This setup is the standard date and time format without seconds,
  %% i.e.: YYYY-MM-DD HH:MM
set followup_date_format "%F %H:%M"

  %% This is as above, but is the format used for %D in the
  %% header_display_format
set overview_date_format "%a %d %b %H:%M"

       % This is for example: Mon 01 Jan 13:45

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [8] Character mapping and MIME support
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% Character set used for the local display; valid values are:
  %% isolatin, ibm850, ibm852, next, koi8
set charset isolatin

  %% Character set to declare when posting 8bit characters. Do *not* use
  %% the same value as for "charset" here.
set mime_charset "iso-8859-15"

        % Usenet should be ASCII only, no?  Still, sometimes you need Euro
        % glyphs.  It would be nice if, in the future, slrn handles this like
        % Mutt does now.

  %% You may set this to a comma-separated list of MIME charsets your
  %% terminal is capable of displaying. The example adds two Chinese
  %% charsets:
% compatible_charsets "Big5,gb2312"

  %% If non-zero, call metamail for MIME formats slrn cannot handle.
% set use_metamail 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [9] Preferences for the header window (see the manual for more)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% These sorting methods are available:
  %% If 0, do not sort.  If 1, perform threading.  If 2, sort by subject.
  %% If 3, thread then sort result by subject.
  %% If 4, sort by score.  If 5, thread then sort by score.
  %% If 6, sort by score and subject.
  %% If 7, thread, then sort by score and subject.
  %% If 8, sort by date with most recent first.
  %% If 9, thread, then sort by date with most recent first.
  %% If 10, sort by date with most recent last.
  %% If 11, thread then sort by date with most recent last.
set sorting_method 5

        % I want threading and sorting by score, this used to be
        % important because I used jwk's hack to download headers and
        % bodies seperately - I add a score to articles that _do_ have
        % a body, so these are at the top of the group when I open it
        % for easy reading.  Of course I also want threading.
        %
        % 030706 No longer use the jwk patches, but kept the sorting. :)

  %% If non-zero, a header with a new subject will start a new thread.
set new_subject_breaks_threads 0 % No, no!

        % I don't want new threads started in this way.  It may be an
        % idea to set the regexp to cut out the "WAS" from threads of
        % this sort: "Subject: some subject [WAS: Re: a previous
        % suject]" (see below)

  %% Setup strip_was_regexp
  %% You can strip the old subject people sometimes include (new subject
  %% [was: old subject]) when they change the subject line.  This relies
  %% on others following USENET conventions. :(
  %%
  %% I want to strip the old subject automatically on followups AND when
  %% creating scorefile entries based on the subject, this is what's
  %% below.  This variable doesn't affect sorting at all, see
  %% strip_re_regexp for explanation
strip_was_regexp " ?(was:.*)$"

  %% Setup cursor bar.
  %% By default the current article is marked with a ->, if we set this
  %% to 1 the article is highlighted with a horizontal bar across the
  %% screen (for me, this is much clearer).
set display_cursor_bar 1

  %% Bogus groups.
  %% slrn will remove groups dropped by the server automatically, I don't
  %% want this, so...
set drop_bogus_groups 0

  %% Score at which to kill articles.
  %% Defaults to -9999, meaning anything with a score of -9999 won't be
  %% shown.  When using the jwk hack I boosted the score of messages that
  %% had bodies by +2000, meaning I can't kill an article if I have the
  %% body already: they are -7999.  So...
set kill_score -1000

        % This is fairly brutal. :)
        % 030706 no longer score on bodies, but kept the kill_score
        % *evil grin*

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Preferences for the various status lines
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% Configure the top status line
  %% FIXME: include explanations for these!

set top_status_line "%p[%n] %-13g slrn %v"

  %% Configure the header status line

set header_status_line "%p[%u/%t unread] %-13g -- %L (%P)"
set header_status_line "%p[%u/%t unread - %T subthread] [%h high, %l low, %k killed] %-20g -- [%L] [%P]"

  %% Configure the article status line

%set art_status_line "%p%n : %s %-15g -- %L (%P)"
 set art_status_line "%p[%n]: %s %-29g[%H%I%Q%T%V%W%p%<] -- [%L] [%P]"

  %% Configure the group status line

set group_status_line "-%D- [%?u?%u/?%t] %d %-18g -- %L (%P)"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [10] Preferences for the header pane
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% You can customise display of the headers in the header pane.  Up to
  %% ten can be specified, and switched between on-the-fly with esc-a.
  %%
  %% Defaults:
  %%     header_display_format 0 "%F%-5S%G%-5l:[%12r]%t%s"
  %%     header_display_format 1 "%F%G%-5l:[%12r]%t%s"
  %%     header_display_format 2 "%F%-5l:%t%s"
  %%     header_display_format 3 "%F%-5S%-5l:%t%50s %r"
  %%     header_display_format 4 "%F%-5S [%10r]:%t%49s %-19g[%17d]"

header_display_format 0 "%F%-5S [%23r]:%t%59s %-18g[%16D]"
  %%                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  %% This is a little long & complicated to explain everything
  %% here, please read section 5.3.6 of the manual on this one.  Easiest
  %% thing to do here is change things a bit and see what happens ;)

  %% And how about displaying groups?
  %% As above, the display of the headers in the group overview pane
  %% can be changed.  The defaults are:
  %%
  %%group_display_format 0 "  %F%-5u  %n%45g%d"
  %%group_display_format 1 "  %F%-5u  %n%50g%-8l-%h"
  %%group_display_format 2 "  %F%-5u [%-6t]  %n"
group_display_format 0 "  %F%-5u %n%114g% [%-6u][%-6t]" % My favourite

  %% Change the help line when displaying groups...
set group_help_line " K:Scoring mode | esc-a:Toggle display format | esc-2-space:Enter group without scoring"

  %% ...and change the help line when displaying headers.
set header_help_line " o:Save | shift+\:Pipe article | !:Next high-scoring | esc-m:Rebuild then mark"

       % 030705 I don't really need these any more, but keep 'em
       % around for lack of better ideas of what to put there.
       % 050319 An idea!  An s-lang macro that inserts a short 
       % one-line fortune in the help_line every time slrn is 
       % started.  Hmm...

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [11] Preferences for the article pager (see the manual for many more)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% This sets which headers you want to see by default, when all
  %% headers are set as 'off' (using 't').  Also, you can match all
  %% headers starting with a given string and *exclude* specific headers by
  %% preceding them with "!"
  %% (e.g. use "X-,!X-Trace:" to display all the "X-"headers except "X-Trace:").

visible_headers "From:,Subject:,Organization:,Newsgroups:,User-Agent:,X-Mailer:,X-Newsreader:"

        % I need all this crap because every rubbish newsclient gives
        % itself some weird user-agent string apart from simply
        % 'User-Agent'.

  %% If non-zero, #v+ and #v- will be interpreted as markers of
  %% 'verbatim' lines.  Verbatim text is displayed unmolested by slrn's
  %% colourisation, so emphasised text isn't bolded.  This is useful for
  %% code snippets among other things.
  %%
  %% Note: only slrn understands verbatim text marks, currently.  Still -
  %% you will see this a lot in n.s.readers and Linux newsgroups.

set process_verbatim_marks 1

  %% If non-zero, hide the #v+ and #v- verbatim marks.
  %% set hide_verbatim_marks 0

  %% If non-zero, hide signature in articles.
set hide_signature 1

  %% Ignore signatures when "space-reading" (press space to page through
  %% the article, then again for the next article, etc.).
set ignore_signature 1

  %% If non-zero, hide PGP signatures in articles.
set hide_pgpsignature 1

  %% If non-zero, every article read will automatically be marked as read
  %% (default is 1)
set auto_mark_article_as_read 1 % YES please!

  %% Setup actions you want slrn to ask confirmation for (confirm_actions)
  %% It's set as an integer, the default is 31 which means that for everything
  %% below slrn will ask for confirmation
  %%
  %% 1     Confirm marking groups as read or un-read.
  %% 2     Confirm printing an article.
  %% 4     Confirm posts, followups, replies and supersedes.
  %% 8     Confirm leaving a group by following a news: URL.
  %% 16    Confirm quitting slrn.
set confirm_actions 10 % i.e. 2 & 8

  %% Where should slrn look for emphasised text?
  %% Emphasised text is /italic/, *bold* or _underlined_ we mightn't want
  %% to highlight emphasised text in the whole message, so we can set
  %% this integer.
  %%
  %% 1     scan message portion (the non-quoted, non-signature part)
  %% 2     scan quoted text
  %% 4     scan signature
  %% 8     scan header lines
set emphasized_text_mask 1 % message only

       % Pet peeve: isn't very sophisticated.  Simple *bold* and
       % _underlines_ are recognised, but things with funny characters
       % in like like *GNU/Linux* and _#007_ are not.  Already asked
       % about this in n.s.readers.

  %% And should emphasised text be displayed?
  %% If 1, do not write _ and * characters.
  %% If 2, write _ and * with spaces.
  %% Otherwise (and if non-zero) write _ and * characters
set emphasized_text_mode 3 % Display text as text, this isn't Krapnode!

  %% Moving to the next article.
  %% I want to move to next article by default when I am at the end of the one I
  %% am reading, to ask for confirmation of this set to 1
set query_next_article 0 % Very annoying until turned off.

set query_read_group_cutoff 1000 % Only ask 'how many articles to read?'
                                 % when there are >1000 available.

  %% This is as above, but here you're being asked for confirmation to
  %% move to the next group with unread messages when you're at the end
  %% of the last message in the current group.
set query_next_group 1

  %% Setup article display when you enter a group.  If set to 1, the
  %% first unread article is automatically opened.
set show_article 0

  %% CC on followups.
  %% Some authors will request a CC by email as well as a post, by
  %% default slrn asks if you want to send an email as well.  Well,
  %% "Post the NG, read the NG" so set to 0 for 'never CC'
set cc_followup 0

  %% Change the article help line.
  %% By default slrn includes a little line of info in the article
  %% pager to help in case you forget which keys to press.
  %%
  %%  Default: SPC:Pgdn  B:PgUp  u:Un-Mark-as-Read  f:Followup  n:Next  p:Prev  q:Quit
set art_help_line " [:Verbatim | W: Wrap | esc-q:Fix OE quotes | ;:Mark | ,:Goto marked | esc-1-K:Edit scorefile"

  %% Wrapping of long lines, and auto-wrapping.
  %% sylpheed and some OE lusers can't seem to turn on the
  %% line-wrap, so we'll have to do it for them.  FFS.
set wrap_flags 6        % _Automatically_ wrap quoted material and body

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [12] Display and colo[u]r settings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% WISH: colourising of body text based on regexp matches - like mutt.

  %% If non-zero, slrn will draw the thread tree using simple ascii
  %% characters
set simulate_graphic_chars 0

  %% Enable xterm mouse support: 1 to enable, 0 to disable
set mouse 0 % A keyboard is enough.

  %% Draw cursor bar a la tin instead of slrn "->" cursor?
%set display_cursor_bar        0

  %% Set to 1 to ahave slrn scroll by full page instead of by line.
%set scroll_by_page 0

  %% Should color be used to indicate the score of an article?
  %% (0) scores do not influence colors (1) scores are colored by their value
  %% (2) subjects are colored by score  (3) both are colored by score
set color_by_score 1 % Just the scores is enough for me.

  %% Setting for "high" scores -- these are displayed at the top of the
  %% group, and can be coloured differently (e.g.: high scores = bright
  %% green, positive scores = yellow, negative scores = bright red.
set min_high_score 150

  %% If non-zero, the subjects of unread articles are highlighted
set highlight_unread_subjects 1

  %% If non-zero, URLs are highlighted.
set highlight_urls 1

  %% Enables blinking in monochrome mode and allows bright backgrounds in
  %% some color terminals:
% set use_blink 1

  %% This colour object is only used when highlight_unread_subjects is set to 2
color unread_subject    "white"         "black"
mono  unread_subject    "bold"

  %% These are colours from Felix's configuration file.
  %% see link from slrn.org (but these have been slightly
  %% tweaked).  May look bad if your 'white' background
  %% does not really mean 'light grey'.

%      Object            fg              bg
%color article          "black"         "white"
%color author           "magenta"       "white"
%color boldtext         "magenta"       "white"
%color box              "white"         "black"
%color cursor           "white"         "white"
%color date             "blue"          "white"
%color description      "blue"          "white"
%color error            "red"           "white"
%color frame            "yellow"        "blue"
%color from_myself      "red"           "white"
%color group            "blue"          "white"
%color grouplens_display"blue"          "white"
%color header_name      "magenta"       "white"
%color header_number    "green"         "white"
%color headers          "blue"          "white"
%color neg_score        "brightred"     "white"
%color pos_score        "blue"          "white"
%color high_score       "red"           "white"
%color italicstext      "magenta"       "white"
%color menu             "yellow"        "blue"
%color menu_press       "blue"          "yellow"
%color normal           "black"         "white"
%color pgpsignature     "brown"         "white"
%color quotes           "red"           "white"
%color quotes1          "green"         "white"
%color quotes2          "brightred"     "white"
%color quotes3          "brightgreen"   "white"
%color quotes4          "red"           "white"
%color quotes5          "green"         "white"
%color quotes6          "brightred"     "white"
%color quotes7          "brightgreen"   "white"
%color response_char    "green"         "white"
%color signature        "brown"         "white"
%color selection        "yellow"        "blue"
%color status           "yellow"        "blue"
%color subject          "black"         "white"
%color thread_number    "blue"          "white"
%color tilde            "cyan"          "white"
%color tree             "gray"          "white"
%color underlinetext    "magenta"       "white"
%color url              "blue"          "white"
%color verbatim         "blue"          "white"
%color message          "black"         "white"

  %% 2002-10: Tired of above colours.  These new ones are based on
  %% "johns_inverse" colours that come with the Farbenwahl s-lang
  %% macro for slrn.
  %%
  %% My colours are set for a white-on-black rxvt window; YMMV.

%     Object            Foreground      Background
color normal            white           black
color article           white           black
color quotes0           brightgreen     black
color quotes1           brightmagenta   black
color quotes2           brightred       black
color menu              brightgreen     blue
color status            brightgreen     blue
color author            white           black
color subject           yellow          black
color signature         brightblue      black
color tree              white           black
color group             white           black
color cursor            yellow          red
color underlinetext     brightcyan      black
color italicstext       brightcyan      black
color boldtext          brightcyan      black
color quotes5           brightred       black
color quotes4           brightmagenta   black
color quotes3           brightgreen     black
color url               white           black
color tilde             cyan            black
color subject           white           black
color unread_subject    yellow          black
color pos_score         green           black
color high_score        brightgreen     black
  %%     This gives colours to neg/pos/high scores that
  %%     match UK traffic lights.
color neg_score         brightred       black
color pos_score         yellow          black
color high_score        brightgreen     black
color date              brightmagenta   black
color verbatim          brightcyan      black

  %%           My Mutt doesn't match this at the moment -- annoying!
  %%  021222   Fixed. :)
  %%  030706   http://www.preater.com/apps/slrn/slrn-mutt-comparison.png

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [13] Group mode key bindings
%      These are pretty much the vanilla
%      slrn settings.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  %% Cursor movement:
setkey group line_down        "\eOB"    % Go to the next group
setkey group line_down        "\e[B"
setkey group line_down        "^N"
setkey group line_up          "\eOA"    % Go to the previous group
setkey group line_up          "\e[A"
setkey group line_up          "^P"
setkey group page_down        "^V"      % Scroll to the next page
setkey group page_down        "\e[6~"
setkey group page_down        "\e[G"    % (FreeBSD keycode)
setkey group page_down        "^D"
setkey group page_up          "\eV"     % Scroll to the previous page
setkey group page_up          "\e[5~"
setkey group page_up          "\e[I"    % (FreeBSD keycode)
setkey group page_up          "^U"
setkey group bob              "\e<"     % Go to the bottom of the list
setkey group bob              "^K\eOB"
setkey group bob              "^K\e[B"
setkey group eob              "\e>"     % Go to the top of the list
setkey group eob              "^K\eOB"
setkey group eob              "^K\e[B"
setkey group group_search_backward "\\" % Group keyword search backward
setkey group group_search_forward  "/"  % Group keyword search forward


  %%  050604   Small tweaks.  The beginning of a "slrn like vim"
  %%           section of keybindings, hopefully.

setkey group line_up            "k"
setkey group line_down          "j"

  %% Actions:
setkey group select_group     " "      % Enter the current newsgroup
setkey group select_group     "\r"
setkey group post             "P"      % Post an article
setkey group post_postponed   "\eP"    % Post or edit a postponed article
setkey group refresh_groups   "G"      % Get new news from server
setkey group toggle_scoring   "K"      % Select scoring mode
setkey group repeat_last_key  "."      % Repeat last key sequence
setkey group evaluate_cmd     "^X\e"   % Read line and interpret it as S-Lang
setkey group suspend          "^Z"     % Suspend slrn
setkey group quit             "Q"      % Quit slrn

  %% Group management:
setkey group catchup          "C"      % Mark all articles as read
setkey group uncatchup        "\eu"    % Mark all articles as unread
setkey group add_group        "a"      % Add a new newsgroup
setkey group subscribe        "S"      % Subscribe to the current newsgroup
setkey group unsubscribe      "U"      % Unsubscribe from the current newsgroup
setkey group move_group       "m"      % Move newsgroup to a different location
setkey group transpose_groups "^X^T"   % Transpose position of groups
setkey group save_newsrc      "X"      % Force a save of the newsrc file

  %% Display:
setkey group toggle_group_formats "\033A" % Toggle group display formats
setkey group toggle_hidden    "l"         % Toggle display of hidden groups
setkey group toggle_list_all  "L"         % Toggle listing of unsubscribed groups
setkey group redraw           "^L"        % Redraw the screen
setkey group redraw           "^R"
setkey group help             "?"         % Display a help screen

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [14] Article mode key bindings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 %% General movement:
setkey article next                    "n"       % next unread article
setkey article previous                "p"       % previous unread article
setkey article skip_to_next_group      "N"       % go to the next group
setkey article skip_to_next_group      "\e\e[C"
setkey article skip_to_next_group      "\e\eOC"
setkey article skip_to_previous_group  "\e\e[D"  % go to the previous group
setkey article skip_to_previous_group  "\e\eOD"
setkey article next_high_score         "!"      % next article with high score
setkey article next_same_subject       "="      % next article with same subject
setkey article goto_last_read          "L"      % go to the last read article

 %% Actions:
setkey article post                 "P"         % Post a new article
setkey article post_postponed       "\eP"       % Post/edit a postponed article
setkey article followup             "f"         % Post a followup
setkey article reply                "r"         % Reply to poster
setkey article forward              "F"         % Forward posting via mail
setkey article supersede            "\e^S"      % Supersede article
setkey article cancel               "\e^C"      % Cancel article
setkey article save                 "O"         % Save article
setkey article pipe                 "|"         % Pipe article
setkey article print                "y"         % Print article
setkey article decode               ":"         % Decode article
setkey article suspend              "^Z"        % Suspend slrn
setkey article quit                 "q"         % Quit slrn
setkey article fast_quit            "Q"         % Quit slrn immediately

 %% Moving in the article pager:
setkey article article_line_down    "\eOD"      % Scroll article down one line
setkey article article_line_down    "\e[D"
setkey article article_line_up      "^b"
%setkey article article_line_up      "\e\eOB"   % Scroll article up one line
setkey article article_line_up      "\e\e[B"
setkey article article_page_down    " "         % Scroll article down one page
setkey article article_page_up      "^?"        % Scroll article up one page
setkey article article_page_up      "b"         % Scroll article up one page
setkey article article_eob          ">"         % Move to the end of the article
setkey article article_bob          "<"         % Move to the beginning
setkey article article_left         "\eOD"      % Pan article to the left
setkey article article_left         "\e[D"
setkey article article_right        "\eOC"      % Pan article to the right
setkey article article_right        "\e[C"
setkey article article_search       "/"         % Search forward in the article
setkey article skip_quotes          "\t"        % Skip beyond quoted text
setkey article forward_digest       "g"         % Skip to next digest

  %% Moving in the header display:
setkey article header_line_down      "\eOB"     % Move to next article
setkey article header_line_down      "\e[B"
setkey article header_line_down      "^N"
setkey article header_line_up        "\eOA"     % Move to previous article
setkey article header_line_up        "\e[A"
setkey article header_line_up        "^P"
setkey article header_page_down      "^V"       % Scroll down one page
setkey article header_page_down      "\e[6~"
setkey article header_page_down      "\e[G"     % (FreeBSD keycode)
setkey article header_page_down      "^D"
setkey article header_page_up        "\eV"      % Scroll up one page
setkey article header_page_up        "\e[5~"
setkey article header_page_up        "\e[I"     % (FreeBSD keycode)
setkey article header_page_up        "^U"
setkey article header_eob            "\e>"      % Go to last article in group
setkey article header_bob            "\e<"      % Go to first article in group
setkey article goto_article          "j"        % Move to article (number)
setkey article author_search_forward   "a"      % Author search forward
setkey article author_search_backward  "A"      % Author search backward
setkey article subject_search_forward  "s"      % Subject search forward
setkey article subject_search_backward "S"      % Subject search backward

  %% Marking as read/unread/deleted, catching up groups etc.
setkey article delete                  "d"      % Mark article as read
setkey article undelete                "u"      % Mark article as unread
setkey article delete_thread           "\ed"    % Mark (Sub-)Thread as read
setkey article catchup_all             "c"      % Mark all articles as read
setkey article catchup_all             "\ec"
setkey article catchup                 "\eC"    % Catchup (up to this article)
setkey article uncatchup_all           "\eu"    % Mark all articles as unread
setkey article uncatchup               "\eU"    % Uncatchup (up to this article)
setkey article expunge                 "x"      % Remove all read articles

  %% Display properties:
setkey article toggle_headers          "t"      % Full headers (on/off)
setkey article toggle_rot13            "\eR"    % Toggle ROT-13 decryption
setkey article toggle_quotes           "T"      % Display quoted lines (on/off)
setkey article toggle_signature        "\\"     % Show signature (on/off)
setkey article wrap_article            "W"      % Wrap long lines (on/off)
setkey article show_spoilers           "\e?"    % Reveal spoilers (on/off)
setkey article toggle_pgpsignature     "]"      % Show PGP signature (on/off)
setkey article toggle_verbatim_marks   "["      % Show verbatim marks (on/off)
setkey article enlarge_article_window  "^"      % Enlarge the article window
setkey article shrink_article_window   "^^"     % Shrink the article window
setkey article zoom_article_window     "z"      % Maximize/Unmaximize article
setkey article hide_article            "h"      % Hide/Show the article window
setkey article browse_url              "U"      % Search for URL and follow it
setkey article toggle_sort             "\eS"    % Select threading method
setkey article toggle_collapse_threads "\et"    % Collapse/Uncollapse thread
setkey article toggle_header_formats   "\ea"    % Toggle header display formats
setkey article redraw                  "^L"     % Redraw screen
setkey article redraw                  "^R"     % Redraw screen
setkey article help                    "?"      % Display help screen

  %% Miscellaneous actions
setkey article create_score            "K"      % Create a scorefile entry for this article
setkey article view_scores             "v"      % Show which rules match this article
setkey article locate_article          "\el"    % Locate article by Message-ID
setkey article get_children_headers    "\e^P"   % Find all children
setkey article get_parent_header       "\ep"    % Reconstruct thread
setkey article mark_spot               ";"      % Mark current article position
setkey article exchange_mark           ","      % Return to marked article
setkey article tag_header              "#"      % Numerically tag article
setkey article untag_headers           "\e#"    % Remove all numerical tags
setkey article toggle_header_tag       "*"      % Set/remove header tag
setkey article repeat_last_key         "."      % Repeat last key sequence
setkey article grouplens_rate_article  "0"      % Rate article with grouplens
setkey article evaluate_cmd            "^X\e"   % Interpret line as S-Lang

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% [15] Command prompt key bindings
%      Again, these are fairly
%      standard
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%setkey readline bol              "^A"          % Beginning of line
%setkey readline eol              "^E"          % End of line
setkey readline right            "\e[C"         % Move right
setkey readline left             "\e[D"         % Move left
setkey readline bdel             "^H"           % Delete backward
setkey readline bdel             "^?"           % Delete Backward
%setkey readline del              "^D"          % Delete Foreword
setkey readline delbol           "^U"           % Delete to Beginning of line
setkey readline delbow           "^W"           % Delete to Beginning of word
setkey readline deleol           "^K"           % Delete to End of line
setkey readline trim             "\e/"          % Trim whitespace
setkey readline quoted_insert    "^Q"           % Quoted insert
setkey readline complete         "\t"           % Complete filename
setkey readline cycle            " "            % Cycle among filenames
%% Some rxvt keycodes required for del, home, & end
setkey readline del        "^[[3~"    % del
setkey readline eol        "\e[8~"    % end
setkey readline bol        "\e[7~"    % home

Generated with vim2html
Copyright © 2003-2004 by Chip Cuccio <http://norlug.org/~chipster/finger>