Nico Golde:
authornion <nion@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Sat, 5 Mar 2005 18:13:51 +0000 (18:13 +0000)
committernion <nion@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Sat, 5 Mar 2005 18:13:51 +0000 (18:13 +0000)
included Michael Prokokop's configuration script

git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@147 e385b8ad-14ed-0310-8656-cc95a2468c6d

contrib/grml-muttng [new file with mode: 0755]

diff --git a/contrib/grml-muttng b/contrib/grml-muttng
new file mode 100755 (executable)
index 0000000..997827d
--- /dev/null
@@ -0,0 +1,442 @@
+#!/bin/sh
+# Filename:      grml-muttng
+# Purpose:       configuration script for mutt-ng
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+# Latest change: Die Mär 01 00:26:17 CET 2005 [mika]
+################################################################################
+
+PATH=${PATH:-'/bin/:/sbin/:/usr/local/bin:/usr/bin:/usr/sbin'}
+PN=`basename "$0"`
+
+writemuttngrc() {
+cat > $MUTTRC << EOF
+# Filename:      .muttngrc
+# Purpose:       configuration for mailclient muttng, created by 'grml-muttng'
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+# Latest change: Son Feb 27 23:14:07 CET 2005 [mika]
+################################################################################
+
+## some general settings mutt understands:
+
+# important variables - adjust them if necessary
+  set realname="$REALNAME"
+  set from="$MAILADDR"
+
+# mailboxes
+  set pop_host="$POP3"
+$POPDATA
+  mailboxes $IMAP
+$IMAPDATA
+# some default options:
+    set allow_8bit           # send data as it is.  no conversion.
+  unset arrow_cursor         #  Show current mail with an inverse bar.
+    set ascii_chars          # set: use ASCII characters to build the thread tree
+    set autoedit             # call editor without prompting for To: and Subject:
+  unset confirmappend        # set: prompt for confirmation on appending mail to folder
+    set confirmcreate        # set: prompt for confirmation on creation of folders
+    set copy                 # Always keep a copy of my mails!
+    set delete=ask-yes       # ask before deleting any messages
+    set edit_headers         # edit all headers lines in the editor
+    set editor=vim           # use Vim as the editor (Vi IMproved www.vim.org)
+    set folder=~/Mail        # directory with all mail folders
+  unset followup_to          # do not generate a Followup-To header
+    set force_name           # set: save outbound mail by username
+    set hidden_host          # do not use a hostname in the address - PROBLEMATIC!
+    set history=100          # number of input lines for prompts to remember
+    set include              # set: include mail as quoted text in replies
+  unset mark_old             # set: make distinction between New mail and Old mail.
+    set mime_forward=ask-yes # ask: attach message - or just quote it?
+  unset move                 # do not move read mails from mailbox to $mbox (was: "set hold")
+    set pager_context=1      # number of lines that overlap on paging
+#   set pager_index_lines=0  # number of lines to see from the index
+    set pager_stop           # "next_page" won't jump to next message at end of messages
+#   set print_command="mp|lpr" # pipe message to "mp" for formattting - then on to "lpr"
+  unset prompt_after         # set: gives you a prompt when pager exits
+    set quote_regexp="^>"    # some people just use '>' - *sigh*
+    set read_inc=10          # '10': show count number for every tenth mail
+    set recall=ask-yes       # do not prompt for recalling postponed mails with 'm'
+    set reply_to=ask-yes     # "reply":          set:  Use address in Reply-To?
+    set reverse_alias        # show the name of sender as set with my alias for him
+    set reverse_name         # reply as the user to whom the mail was sent to
+    set save_name            # set: save outbound mail to =username if it exists
+#   set shell=zsh            # use the zsh for shell commands
+    set sort=threads         # sorting method - I definitely like "threads" best
+    set status_on_top        # set: present the status bar at top, ie before the index
+    set strict_threads       # set: use references: for threading only, ie do not
+                             # thread by subject or in-reply-to
+    set tilde                # show non-existant lines of text with a tilde at begin-of-line
+    set tmpdir="/tmp"        # directory where temporary files are to be placed
+    set to_chars="X+TCF"     # message flags: non-personal,personal,To:,Cc:,From:
+    set use_from             # 'set from=' requires a 'set use_from'!
+    set write_inc=10         # update number after each tenth read mail
+
+# Options with a long value:
+#   set alternates=...
+    set attribution="* %n <%a> [%(%y%m%d %H:%M)]:"              # how to cite the author
+    set reply_regexp="^((aw|antw.?|antwort|re|r e|r?f|sv):[ \t]*)*"
+
+# Format Options
+    set forw_format="(forw) %s"
+    set index_format="%4C %Z %[!%y%m%d] %-17.17F (%3l) %s"
+    set pager_format="%S [%C/%T] %n (%l) %s"
+    set status_format="%v: %f (%s) [%M/%m] [N=%n,*=%t,new=%b]"
+
+# Show the "text/plain" part *before* the "text/html" part:
+  alternative_order text/plain text/html
+  auto_view text/html
+
+# KEY BINDINGS
+  bind index zt current-top
+  bind index zz current-middle
+  bind index zb current-bottom
+
+# HEADER DISPLAY
+  ignore *
+  unignore from: date: subject: to: cc: reply-to:
+  unignore sender:
+  unignore priority: importance:
+  unignore organization organisation
+  unignore mail-followup-to:
+  unignore resent- x-resent
+# unignore user-agent: x-agent: x-mailer: x-newsreader: x-mailing-list:
+# unignore x-editor
+# unignore message-id: newsgroups: posted-to: posted-and-mailed:
+# unignore x-also-posted-to: x-newsgroups:
+# unignore delivered-to x-envelope-to:
+# unignore x-accept-language
+  unhdr_order *
+  hdr_order Sender: From From: Reply-To: Subject: Organization: Date: Message-Id: User-Agent: X-Editor: X-Mailer: X-Newsreader: X-Agent: To: Cc: Newsgroups: X-Resent Followup-To: Mail-Followup-To:
+
+## now the mutt-ng specific settings
+
+# path to header cache file:
+  set header_cache="~/.mutt/headers"
+
+# sidebar stuff:
+  set sidebar_visible="no"
+  set sidebar_width=25
+  set shorten_hierarchy
+  color sidebar_new yellow default
+
+# keybindings:
+  bind index F flag-message
+  bind pager F flag-message
+
+  macro index z    "c?\t"                            "List mailboxes and switch to selected one"
+  macro index <f2> "<enter-command>set invsidebar_visible<enter>" "Toggle sidebar visibility"
+  macro index \cW  ':push <sidebar-prev-new><enter>' "Jump to previous mailbox with new messages in sidebar"
+  macro index \cE  ':push <sidebar-next-new><enter>' "Jump to next mailbox with new messages in sidebar"
+  macro index \cP  ':push <sidebar-prev><enter>'     "Jump to previous mailbox in sidebar"
+  macro index \cN  ':push <sidebar-next><enter>'     "Jump to next mailbox in sidebar"
+  macro index \cO  ':push <sidebar-open><enter>'     "Open selected mailbox in sidebar"
+# bind index <space> sidebar-open
+
+EOF
+}
+
+lightcolors() {
+cat >> $MUTTRC << EOF
+
+## color setup
+
+## some misc stuff:
+  color normal     black      white
+  color error      red        white
+  color indicator  blue       green
+  color status     white      blue
+  color tree       blue       white
+  color hdrdefault red        white
+  color quoted     blue       white
+  color quoted1    green     white
+  color quoted2    magenta    white
+  color quoted3    cyan       white
+  color tilde      yellow     black
+  color signature  blue       white
+  color search     white      blue   # "search" - matches found with search within the internal pager.
+  color markers    red        black  # "markers" indicate a wrapped line when showing messages with looong lines.
+  color bold       green      black
+  color underline  yellow     black
+
+## index-colors:
+  uncolor index *
+
+# mail from myself *and* to myself (TODO items):
+#  color index black  brightyellow  '~p ~f prokop'
+
+# Flagged Messages are important!
+  color index blue white ~N      # New
+  color index magenta default ~T # Tagged
+  color index blue black ~D      # Deleted Mails - use dark color as these are already "dealt with".
+  color index red default ~O     # old messages
+
+# mail from important people (like myself ;-):
+# color index white  red '~f prokop'
+
+# Mails with no obvious addresses (empty To: and Cc: lines)
+   color index cyan white "! ~C ."
+
+# "DONE mails" ie those I have already replied to.
+   color index blue white  '~Q'
+
+# non-multipart mails which are tex/html almost always are spam:
+  color index brightmagenta white "~h 'Content-Type: text/html'"
+
+# Sent to "Undisclosed Recipients":
+  color index white      magenta  '~C Undisclosed.*Recipients'
+
+# When the Subject indicates a reply (with ":re" but without "Fwd"!)
+# then there *must* be a reference to the previous message!
+# So if there is neither an In-Reply-To nor a References line
+# then it must have been sent with a crappy mailer....
+  color index yellow white "~s re: ! ~s fwd: ! ~x . ! ~h 'in-reply-to: '"
+
+# No characters in body -> SPAM!
+  color index white white   "! ~b ."
+
+  color index brightred black ~F # Flagged
+
+## body-colors:
+
+# highlight important keywords
+  color body  brightyellow black  "grml"
+
+# URLs (General Internet addresses):
+  color body yellow red "(finger|ftp|http|news|telnet)://[^ >]*"
+  color body yellow red "<URL:[^ ]*>"
+# web address without "http":
+  color body yellow red "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?"
+
+# HTTPS addresses:
+  color body yellow red "https://[^ >]*"
+
+# FTP addresses:
+  color body yellow red "ftp://[^ ]*"
+
+# HTTP addresses:
+  color body yellow red "[[:alnum:]][-+.#_[:alnum:]]*@[-+.[:alnum:]]*[[:alnum:]]"
+
+# File names ("/path/file")
+#  color body brightgreen white "\\~?\(/[-_.,a-zA-Z0-9{}äöüß]+\)+"
+  color body blue white "\\~?\(/[-_.,a-zA-Z0-9{}äöüß]+\)+"
+
+# Path names ("/path/")
+  color body brightred   white "\(/[-_.a-zA-Z0-9]+\)+/"
+
+# Variables  ("$HOME")
+  color body brightmagenta white "\\$[a-zA-Z][-_a-zA-Z]+"
+
+# Attribution line:
+# color body red white "^[*] .*:$"
+
+## abbreviations and "SCREAMING IN CAPS" in body:
+# The following includes umlauts - but that's quite clunky.
+# color body brightyellow  red "[A-ZÄÖÜ][-A-ZÄÖÜ]+[A-ZÄÖÜ][ .!?]?"
+
+# "+USE_GNU_REGEX":
+# When you use "+USE_GNU_REGEX" then you can also make use
+# of "start of word" ("\<") and "end of word" ("\>"):
+  color body red  white    "\\<[-A-Z']{3,}\\>"
+
+# *Emphasized*, /emphasized/, and _emphasized_ words:
+# color body brightred      black   "[*/_]+ *[- &[:alnum:]]+ *[*/_]+"
+# this would catch false positives of the kind _foo* and /bar_
+# so we should choose matching pairs only:
+  color body brightred  white   "[*][-[:alnum:]]+[*]"
+  color body brightred  white     "/[-[:alnum:]]+/"
+  color body brightred  white     "_[-[:alnum:]]+_"
+
+# Smileys:  :-)  ;-)  :-|  :-/  :-(
+  color body brightyellow white    "[;:]-[)/(|]"
+# Grinning:  "grin" ([g]) and "big grin" ([bg]):
+  color body blue   red      "<[Gg]>"
+  color body blue   red      "<[Bb][Gg]>"
+
+# Border Lines of length three or more.
+# (Several Newsletters use border lines..)
+  color body green  white    "[-_=+~/\*]{3,}"
+
+# Extensive use of exclamation and question marks:
+# "!!!"  "???"
+  color body red    white    "[!?]{3,}"
+
+# Percentages ("Save xx.x %!")
+  color body brightgreen white "[.0-9]+ ?%"
+
+# Copyright (C) and Registered Trademark (r)
+  color body red white "[(][cr][)]"
+  color body red white "\\(c\\)"
+
+# Year Numbers 1980-2002
+  color body blue white "19[89][0-9]"
+  color body blue white "200[012]"
+
+# Phone Numbers:
+  color body blue white "1-[0-9]{3}[- ][-0-9]+ +ext.? [0-9]+"
+  color body blue white \
+"(tele)?(cell|fax|fon|phone|tel)[.: ]+[+]?[- 0-9/()]{4,}[0-9]"
+
+# RTFM!
+# " man word"
+  color body white red "^ +[$]? *man \\w+"
+
+# Lists
+# bulleted list:
+# * one
+# * two
+# * three
+# dashed list:
+# - one
+# - two
+# - three
+# color body red          black "^ *[-*] +"
+# this pattern yields many false positives as it
+# spans lines for which there is no syntax language.
+# this is easier with Vim's syntax coloring.
+  color body red white "^ *[-*] +"
+
+# special IP host addresses:
+# 192.x.x.x
+  color body white blue  "129.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
+  color body white blue  "193.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
+
+# HTML tags
+  color body yellow       black "</?\w+>"
+
+# Emphasis by interspersed spaces
+# Example: E M P H A S I S
+  color body red white '\<\w( +\w\>)+'
+
+# verbatim marks (#v+ till #v-)
+  color body yellow red  ^\#v[-+]
+
+  color attachment black white
+EOF
+}
+
+dialog --stdout --title "$PN" --msgbox "Welcome to $PN!
+
+This script will create a simple base
+configuration for the mailclient mutt-ng.
+
+Report bugs, send wishes and feedback to the grml team:
+http://www.grml.org/ - contact (at) grml.org
+" 13 65
+
+GETREALNAME=$(dialog --stdout --title "$PN" --inputbox "Your real name (eg 'John GRML User'):" 0 56) || exit 0
+REALNAME=${GETREALNAME%/*}
+
+GETMAILADDR=$(dialog --stdout --title "$PN" --inputbox "Your main mail address (eg 'joedoe@grml.org'):" 0 56) || exit 0
+MAILADDR=${GETMAILADDR%/*}
+
+askpop(){
+  GETPOPUSER=$(dialog --stdout --title "$PN" --inputbox "Enter username for POP3 account" 0 0)
+  POPUSER=${GETPOPUSER}
+
+  GETPOPPWD=$(dialog --stdout --title "$PN" --passwordbox "Enter password for POP3 account (typing hidden)" 0 0)
+  POPPWD=${GETPOPPWD}
+}
+
+ASKPOP=$(dialog --stdout --title "$PN" --yesno "Configure POP3?" 0 0)
+retval=$?
+
+case $retval in
+  0) 
+     GETPOP3=$(dialog --stdout --title "$PN" --inputbox  "Your POP3 account (pop[s]://[user]@hostname[:port]):" 0 56 "pop://") || exit 0
+     POP3=${GETPOP3}
+     askpop && \
+POPDATA="  set pop_user=\"$POPUSER\"
+  set pop_pass=\"$POPPWD\"
+"
+     ;;
+esac
+
+askimap(){
+  GETIMAPUSER=$(dialog --stdout --title "$PN" --inputbox "Enter username for IMAP account" 0 0)
+  IMAPUSER=${GETIMAPUSER}
+
+  GETIMAPPWD=$(dialog --stdout --title "$PN" --passwordbox "Enter password for IMAP account (typing hidden)" 0 0)
+  IMAPPWD=${GETIMAPPWD}
+}
+
+ASKIMAP=$(dialog --stdout --title "$PN" --yesno "Configure IMAP?" 0 0)
+retval=$?
+
+case $retval in
+  0) 
+     GETIMAP=$(dialog --stdout --title "$PN" --inputbox  "Your IMAP account (imap[s]://[user@]hostname[:port]/mailbox):" 0 65 "imap://") || exit 0
+     IMAP=${GETIMAP}
+     askimap && \
+IMAPDATA="  set imap_user=\"$IMAPUSER\"
+  set imap_pass=\"$IMAPPWD\"
+"
+     ;;
+esac
+
+GETCOLOR=$(dialog --stdout --title "$PN" \
+        --radiolist "Which color setup do you want to use?" 10 65 2 \
+          dark   "dark color setup (default)" on \
+          light  "light color setup" off)
+retval=$?
+
+case $retval in
+  0) COLOR=$GETCOLOR ;;
+  *) exit 1 ;;
+esac
+
+writecolors() {
+  if [ "$COLOR" == 'light' ] ; then
+    lightcolors
+  fi
+}
+
+GETMUTTRC=$(dialog --stdout --title "$PN" --inputbox "Choose a filename for this configuration:" 0 56 "$HOME/.muttngrc") || exit 0
+MUTTRC=${GETMUTTRC}
+
+WRITEMUTTRC=$(dialog --stdout --title "$PN" --yesno "Write $MUTTRC?" 5 65)
+retval=$?
+
+case $retval in
+  0) 
+    if [ -f "$MUTTRC" ] ; then
+      dialog --stdout --title "$PN" --yesno "$MUTTRC exists. Overwrite?" 5 65
+      retval=$?
+      case $retval in
+        0) 
+          writemuttngrc && writecolors && \
+          dialog --stdout --title "$PN" --msgbox "Writing $MUTTRC was successful." 7 65 || \
+          dialog --stdout --title "$PN" --msgbox "Error $?: writing $MUTTRC failed." 7 65
+          ;;
+#        *) exit 1 ;;
+      esac
+    else
+       writemuttngrc && writecolors && \
+       dialog --stdout --title "$PN" --msgbox "Writing $MUTTRC was successfull." 7 65 || \
+       dialog --stdout --title "$PN" --msgbox "Error $?: writing $MUTTRC failed." 7 65
+    fi
+    ;;
+#  *) exit 1 ;;
+esac
+
+dialog --stdout --title "$PN" --msgbox "Thanks for using $PN!
+
+More information on mutt-ng:
+
+Manuals: man 1 muttng
+         man 5 muttngrc
+
+Webpages:
+http://mutt-ng.berlios.de/
+http://mutt-ng.supersized.org/
+http://www.strcat.de/muttng/pmwiki.php
+
+#######################################################
+
+Report bugs, send wishes and feedback to the grml team:
+http://www.grml.org/ - contact (at) grml.org
+" 24 65
+
+## END OF FILE #################################################################