From e1b13201d6b3f691babc70a744d215b4542fca91 Mon Sep 17 00:00:00 2001 From: nion Date: Sat, 5 Mar 2005 18:13:51 +0000 Subject: [PATCH] Nico Golde: 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 | 442 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 442 insertions(+) create mode 100755 contrib/grml-muttng diff --git a/contrib/grml-muttng b/contrib/grml-muttng new file mode 100755 index 0000000..997827d --- /dev/null +++ b/contrib/grml-muttng @@ -0,0 +1,442 @@ +#!/bin/sh +# Filename: grml-muttng +# Purpose: configuration script for mutt-ng +# Authors: grml-team (grml.org), (c) Michael Prokop +# 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 +# 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 "set invsidebar_visible" "Toggle sidebar visibility" + macro index \cW ':push ' "Jump to previous mailbox with new messages in sidebar" + macro index \cE ':push ' "Jump to next mailbox with new messages in sidebar" + macro index \cP ':push ' "Jump to previous mailbox in sidebar" + macro index \cN ':push ' "Jump to next mailbox in sidebar" + macro index \cO ':push ' "Open selected mailbox in sidebar" +# bind index 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 "" +# 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 "" + +# 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 ################################################################# -- 2.20.1