% -*- slang -*-

%% This is a sample startup file for the slrn newsreader and meant as a
%% template for your personal startup file; it is not a full reference
%% of slrn's config options -- please see the reference manual for this.

%% The percent character is used for comments.

%
%% 1. Tell slrn about your identity (name, email address and such)
%

% The "From:" header will be generated from the following three variables.
% With the example settings, it would read "john@doe.com (John Doe)".
%set username "john"
%set hostname "doe.com"
%set realname "John Doe"

% Set this if you want replies to your articles to go to a address different
% from the one in "From:".
%set replyto  "jd@something.com"

% What to put into the "Organization:" header line.
%set organization "Doe inc."

% The name of your signature file.  If "", no signature is added.
%set signature ".signature"

%
%% 2. Server specific settings
%

% Tell slrn which newsrc file it should use for which server.
% Note: This does *not* set the default server; you need to set the
%       NNTPSERVER environment variable for this.
%server "news.doe.com" ".jnewsrc-doe"

% If a server requires authentication, add a nnrpaccess line for it.
% If you leave username and/or password empty, slrn will prompt for it.
%nnrpaccess "news.doe.com" "john" "secret"

% Some servers require authentication, but don't ask for it.
% To offer your authentication data "voluntarily", set this variable to 1.
%set force_authentication 0

% This can either be set to "nntp" (read online) or "spool" (use 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).
%set post_object "nntp"

% Set this to 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 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

% The following variables are only meaningful when using spool mode:

% Basic directory settings
%set spool_inn_root "/var/lib/news"
%set spool_root "/var/spool/news"
%set spool_nov_root "/var/spool/news/over.view"

% These are relative to spool_inn_root unless they start with "/".
%set spool_active_file "data/active"
%set spool_activetimes_file "data/active.times"
%set spool_newsgroups_file "data/newsgroups"

% This value is relative to the directories under spool_nov_root:
%set spool_nov_file ".overview"

% Whether to check for each article when reading an overview file (slower,
% but may save you from lots of "article not available" errors).
%set spool_check_up_on_nov 0

%
%% 3. Which external programs do you want to use?
%

% Note OS/2 and Win32 users: 
%   To separate directories you can either use a single '/' or
%   double '\\'. Single backslashes are not supported.  For example, use
%   "C:\\home\\file.txt" or "C:/home/file.txt" but NOT "C:\home\file.txt"

% 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).
%set editor_command "jed '%s' -g %d -tmp"

% You can have separate commands for editing posts, mail, and score files.
%set mail_editor_command "jed '%s' -g %d -tmp --mail-mode"
%set post_editor_command "jed '%s' -g %d -tmp --mail-mode"
%set score_editor_command "jed '%s' -g %d -tmp --score-arrange-score"

% If non-zero, abort posting or email operation if the file was not modified
% by the editor.
%set abort_unmodified_edits 0

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

% WWW browser to use. Xbrowser is used when the DISPLAY environment variable
% is set; non_Xbrowser otherwise.
%set non_Xbrowser "lynx '%s'"
%set Xbrowser "netscape '%s' &"

% Command to use for printing
% Note: On Win32, this variable defines the name of the printer queue to use.
%set printer_name "lpr -Plp"

% In case you want to use another mailer than sendmail.  Be sure that it
% implements the same interface, though!
%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 variable.
% Note: Not all MTAs are configured to allow this.
%set generate_email_from 0

%
%% 4. Directory / file names
%

% Note: All filenames in this section are relative to HOME unless they start
%       with a '/'.

% Filename where articles / email you sent are archived.
% Note: If these are unset, slrn does not keep a copy of outgoing messages.
%set save_posts "News/My_Posts"
%set save_replies "News/My_Replies"

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

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

% Name of directory where decoded files are placed.
%set decode_directory "News"
  
% Directory where all other files are saved.
%set save_directory "News"

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

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

%
%% 5. Attribution lines / custom headers
%

% This sets the attribution lines for follow-ups and replies.  The following
% format specifiers are recognized:
%  %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 <%f> wrote:"
%set reply_string "In %n, you wrote:"

% Custom headers to add to *new* posts
%set custom_headers "Mail-Copies-To: nobody"

% 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"
%set reply_custom_headers "X-newsgroup: %n\nX-realname: %r"
%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.]"

%
%% 6. Character mapping / 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-1"

% You may set this to a comma-separated list of MIME charsets your terminal
% is capable to display. 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

%
%% 7. Some 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 3

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

%
%% 8. Some preferences for the article pager (see the manual for more)
%

% Which headers do you want to see by default?
% You can also 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:,Newsgroups:,Followup-To:,Reply-To:"

% If non-zero, #v+ and #v- will be interpreted as markers of verbatim lines.
%set process_verbatim_marks	1

% If non-zero, hide #v+/#v- verbatim marks.
%set hide_verbatim_marks 0
  
% If non-zero, hide signature in articles.
%set hide_signature		0

% If non-zero, hide PGP signature in articles.
%set hide_pgpsignature		0

%
%% 9. Display / color settings
%

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

% Enable xterm/win32 mouse support: 1 to enable, 0 to disable
%set mouse 0

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

% Set to 1 to have 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 3

% 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 color object is only used when highlight_unread_subjects is set to 2
% (see the reference manual for details):
color unread_subject	"white"		"black"	"bold"
mono  unread_subject	"bold"

% These settings are used for color terminals:
color article		"lightgray"	"black"
color author		"magenta"	"black"
color boldtext		"brightblue"	"black"	"bold"
color box		"black"		"white"
color cursor		"brightgreen"	"black"
color date		"lightgray"	"black"  
color description	"lightgray"	"black"
color error		"red"		"black"	"blink"
color frame		"yellow"	"blue"
color from_myself	"brightmagenta"	"black"	"bold"
color group		"lightgray"	"black"	"bold"
color grouplens_display	"lightgray"	"black"
color header_name	"green"		"black"	"bold"
color header_number	"green"		"black"
color headers		"brightcyan"	"black"
color neg_score		"green"		"black"
color pos_score		"blue"		"black"
color high_score	"red"		"black"	"bold"
color italicstext	"magenta"	"black"	"bold"
color menu		"yellow"	"blue"
color menu_press	"lightgray"	"yellow"
color message		"lightgray"	"black"
color normal		"lightgray"	"black"
color pgpsignature	"lightgray"	"black"
color quotes		"red"		"black"
color quotes1		"magenta"	"black"
color quotes2		"brown"		"black"
color quotes3		"brown"		"black"
color quotes4		"brown"		"black"
color quotes5		"brown"		"black"
color quotes6		"brown"		"black"
color quotes7		"brown"		"black"
color response_char	"green"		"black"	"bold"
color signature		"red"		"black"
color selection		"yellow"	"blue"	"bold"
color status		"yellow"	"blue"
color subject		"lightgray"	"black"
color thread_number	"lightgray"	"black"	"bold"
color tilde		"green"		"black"	"bold"
color tree		"red"		"black"	"bold"
color underlinetext	"cyan"		"black"	"underline"
color url		"white"		"black"	"bold"
color verbatim		"green"		"black"

% These attributes are for terminals that cannot display color:
mono article		"none"
mono author		"none"
mono boldtext		"bold"
mono cursor		"bold"	"reverse"
mono date		"none"
mono description	"none"
mono error		"blink"
mono frame		"reverse"
mono from_myself	"bold"
mono group		"bold"
mono grouplens_display	"none"
mono header_name	"bold"
mono header_number	"none"
mono headers		"none"
mono high_score		"bold"
mono italicstext	"bold"
mono menu		"reverse"
mono menu_press		"none"
mono neg_score		"none"
mono normal		"none"
mono pgpsignature	"none"
mono pos_score		"reverse"
mono quotes		"none"
mono quotes1		"none"
mono quotes2		"none"
mono quotes3		"none"
mono quotes4		"none"
mono quotes5		"none"
mono quotes6		"none"
mono quotes7		"none"
mono response_char	"bold"
mono selection		"bold"  
mono signature		"none"
mono status		"reverse"
mono subject		"none"
mono thread_number	"bold"
mono tilde		"bold"
mono tree		"none"
mono underlinetext	"underline"
mono url		"bold"
mono verbatim	        "none"

%
%% 10. Group mode key bindings
%

% 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

% 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

%
%% 11. 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_down    "\r"
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:
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
setkey article view_scores             "v"      % Show which rules matched
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

%
%% Command prompt key bindings
%

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

% This is a special hack for HP terminals to get the arrow keys working.  
% Are there any other terminals being used with non-ANSI arrow keys?
#if$TERM hpterm
  setkey group line_up "\eA"
  setkey group line_down "\eB"
  setkey article header_line_down "\eB"
  setkey article header_line_up "\eA"
  setkey article article_left "\eD"
  setkey article article_right "\eC"
#endif
