mirror of
https://github.com/jessfraz/dockerfiles.git
synced 2024-11-23 11:31:49 +01:00
mutt;
This commit is contained in:
parent
eab34b2635
commit
0cf946573a
66
mutt/.muttrc
Normal file
66
mutt/.muttrc
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# A basic .muttrc for use with Gmail
|
||||||
|
|
||||||
|
# Change the following six lines to match your Gmail account details
|
||||||
|
set imap_user = "%GMAIL_LOGIN%"
|
||||||
|
set imap_pass = "%GMAIL_PASS%" # leave blank for prompt
|
||||||
|
set smtp_url = "smtps://$imap_user@smtp.gmail.com:465/"
|
||||||
|
set smtp_pass = "%GMAIL_PASS%" # will prompt if blank
|
||||||
|
set from = "%GMAIL_FROM%"
|
||||||
|
set realname = "%GMAIL_NAME%"
|
||||||
|
|
||||||
|
# Change the following line to a different editor you prefer (and update the Dockerfile accordingly, of course).
|
||||||
|
set editor = "vim"
|
||||||
|
|
||||||
|
# I like seeing some headers. :)
|
||||||
|
ignore *
|
||||||
|
unignore date subject x- user-agent posted-to content-type
|
||||||
|
unignore to cc bcc reply-to from
|
||||||
|
set edit_headers = yes
|
||||||
|
my_hdr X-Docker-Image: jess/mutt
|
||||||
|
|
||||||
|
# TODO figure out how to use the sidebar more effectively :)
|
||||||
|
set sidebar_visible = no
|
||||||
|
|
||||||
|
# Tianon keybindings and settings, because he's special.
|
||||||
|
bind pager <up> previous-line
|
||||||
|
bind pager <down> next-line
|
||||||
|
set resolve = no # uh, don't randomly take me to other messages when I do things
|
||||||
|
|
||||||
|
# Basic config, you can leave this as is
|
||||||
|
set folder = "imaps://imap.gmail.com:993"
|
||||||
|
set spoolfile = "+INBOX"
|
||||||
|
set imap_check_subscribed
|
||||||
|
set hostname = gmail.com
|
||||||
|
set mail_check = 120
|
||||||
|
set timeout = 300
|
||||||
|
set imap_keepalive = 300
|
||||||
|
set postponed = "+[Gmail]/Drafts"
|
||||||
|
set record = "" # gmail automatically handles saving sent emails
|
||||||
|
set header_cache=~/.mutt/cache/headers
|
||||||
|
set message_cachedir=~/.mutt/cache/bodies
|
||||||
|
set certificate_file=~/.mutt/certificates
|
||||||
|
set move = no
|
||||||
|
set include
|
||||||
|
set sort = 'threads'
|
||||||
|
set sort_aux = 'reverse-last-date-received'
|
||||||
|
set auto_tag = yes
|
||||||
|
ignore "Authentication-Results:"
|
||||||
|
ignore "DomainKey-Signature:"
|
||||||
|
ignore "DKIM-Signature:"
|
||||||
|
hdr_order Date From To Cc
|
||||||
|
alternative_order text/plain text/html *
|
||||||
|
auto_view text/html
|
||||||
|
bind editor <Tab> complete-query
|
||||||
|
bind editor ^T complete
|
||||||
|
bind editor <space> noop
|
||||||
|
|
||||||
|
# Gmail-style keyboard shortcuts
|
||||||
|
macro index,pager y "<enter-command>unset trash\n <delete-message>" "Gmail archive message"
|
||||||
|
macro index,pager d "<enter-command>set trash=\"imaps://imap.googlemail.com/[GMail]/Bin\"\n <delete-message>" "Gmail delete message"
|
||||||
|
macro index,pager gi "<change-folder>=INBOX<enter>" "Go to inbox"
|
||||||
|
macro index,pager ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"
|
||||||
|
macro index,pager gs "<change-folder>=[Gmail]/Starred<enter>" "Go to starred messages"
|
||||||
|
macro index,pager gd "<change-folder>=[Gmail]/Drafts<enter>" "Go to drafts"
|
||||||
|
|
||||||
|
# colors
|
||||||
|
source /home/user/mutt-colors-solarized-dark-16.muttrc
|
30
mutt/Dockerfile
Normal file
30
mutt/Dockerfile
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
FROM debian:jessie
|
||||||
|
|
||||||
|
RUN groupadd -g 1000 user \
|
||||||
|
&& useradd --create-home -d /home/user -g user -u 1000 user
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
ca-certificates \
|
||||||
|
git \
|
||||||
|
lynx \
|
||||||
|
mutt-patched \
|
||||||
|
vim-nox \
|
||||||
|
--no-install-recommends
|
||||||
|
ENV BROWSER lynx
|
||||||
|
ENV TERM xterm-256color
|
||||||
|
|
||||||
|
ENV HOME /home/user
|
||||||
|
USER user
|
||||||
|
|
||||||
|
RUN mkdir -p $HOME/.mutt/cache/headers $HOME/.mutt/cache/bodies \
|
||||||
|
&& touch $HOME/.mutt/certificates \
|
||||||
|
&& git clone https://github.com/jfrazelle/.vim.git $HOME/.vim \
|
||||||
|
&& git clone https://github.com/altercation/vim-colors-solarized $HOME/.vim/bundle/vim-colors-solarized \
|
||||||
|
&& cp $HOME/.vim/vimrc.txt $HOME/.vimrc
|
||||||
|
|
||||||
|
ENV LANG C.UTF-8
|
||||||
|
|
||||||
|
COPY . $HOME/
|
||||||
|
|
||||||
|
ENTRYPOINT ["/home/user/entrypoint.sh"]
|
||||||
|
CMD ["mutt-patched"]
|
43
mutt/entrypoint.sh
Executable file
43
mutt/entrypoint.sh
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ ! "$GMAIL" ]]; then
|
||||||
|
echo >&2 'error: missing GMAIL environment variable'
|
||||||
|
echo >&2 ' try running again with -e GMAIL=your-email@gmail.com'
|
||||||
|
echo >&2 ' optionally, you can also specify -e GMAIL_FROM=email@your-domain.com'
|
||||||
|
echo >&2 ' and also -e GMAIL_NAME="Your Name"'
|
||||||
|
echo >&2 ' if not specified, both default to the value of GMAIL'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! "$GMAIL_FROM" ]]; then
|
||||||
|
GMAIL_FROM="$GMAIL"
|
||||||
|
fi
|
||||||
|
if [[ ! "$GMAIL_NAME" ]]; then
|
||||||
|
GMAIL_NAME="$GMAIL_FROM"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -i "s/%GMAIL_LOGIN%/$GMAIL/g" "$HOME/.muttrc"
|
||||||
|
sed -i "s/%GMAIL_FROM%/$GMAIL_FROM/g" "$HOME/.muttrc"
|
||||||
|
sed -i "s/%GMAIL_NAME%/$GMAIL_NAME/g" "$HOME/.muttrc"
|
||||||
|
sed -i "s/%GMAIL_PASS%/$GMAIL_PASS/g" "$HOME/.muttrc"
|
||||||
|
|
||||||
|
if [[ -d "$HOME/.gnupg" ]]; then
|
||||||
|
{
|
||||||
|
echo
|
||||||
|
echo 'source /usr/share/doc/mutt/examples/gpg.rc'
|
||||||
|
echo 'set pgp_use_gpg_agent = yes'
|
||||||
|
if [[ "$GPG_ID" ]]; then
|
||||||
|
echo "set pgp_sign_as = $GPG_ID"
|
||||||
|
fi
|
||||||
|
echo 'set crypt_replysign = yes'
|
||||||
|
echo 'set crypt_replysignencrypted = yes'
|
||||||
|
echo 'set crypt_verify_sig = yes'
|
||||||
|
} >> "$HOME/.muttrc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "$HOME/.muttrc.local" ]]; then
|
||||||
|
echo "source $HOME/.muttrc.local" >> "$HOME/.muttrc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$@"
|
151
mutt/mutt-colors-solarized-dark-16.muttrc
Normal file
151
mutt/mutt-colors-solarized-dark-16.muttrc
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
# vim: filetype=muttrc
|
||||||
|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# make sure that you are using mutt linked against slang, not ncurses, or
|
||||||
|
# suffer the consequences of weird color issues. use "mutt -v" to check this.
|
||||||
|
|
||||||
|
# custom body highlights -----------------------------------------------
|
||||||
|
# highlight my name and other personally relevant strings
|
||||||
|
#color body yellow default "(ethan|schoonover)"
|
||||||
|
# custom index highlights ----------------------------------------------
|
||||||
|
# messages which mention my name in the body
|
||||||
|
#color index yellow default "~b \"phil(_g|\!| gregory| gold)|pgregory\" !~N !~T !~F !~p !~P"
|
||||||
|
#color index J_cream brightwhite "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~N !~T !~F !~p !~P"
|
||||||
|
#color index yellow cyan "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~T !~F !~p !~P"
|
||||||
|
#color index yellow J_magent "~b \"phil(_g|\!| gregory| gold)|pgregory\" ~F !~p !~P"
|
||||||
|
## messages which are in reference to my mails
|
||||||
|
#color index J_magent default "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" !~N !~T !~F !~p !~P"
|
||||||
|
#color index J_magent brightwhite "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~N !~T !~F !~p !~P"
|
||||||
|
#color index J_magent cyan "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~T !~F !~p !~P"
|
||||||
|
#color index J_magent red "~x \"(mithrandir|aragorn)\\.aperiodic\\.net|thorin\\.hillmgt\\.com\" ~F !~p !~P"
|
||||||
|
|
||||||
|
# for background in 16 color terminal, valid background colors include:
|
||||||
|
# base03, bg, black, any of the non brights
|
||||||
|
|
||||||
|
# basic colors ---------------------------------------------------------
|
||||||
|
color normal brightyellow default
|
||||||
|
color error red default
|
||||||
|
color tilde black default
|
||||||
|
color message cyan default
|
||||||
|
color markers red white
|
||||||
|
color attachment white default
|
||||||
|
color search brightmagenta default
|
||||||
|
#color status J_black J_status
|
||||||
|
color status brightyellow black
|
||||||
|
color indicator brightblack yellow
|
||||||
|
color tree yellow default # arrow in threads
|
||||||
|
|
||||||
|
# basic monocolor screen
|
||||||
|
mono bold bold
|
||||||
|
mono underline underline
|
||||||
|
mono indicator reverse
|
||||||
|
mono error bold
|
||||||
|
|
||||||
|
# index ----------------------------------------------------------------
|
||||||
|
|
||||||
|
#color index red default "~D(!~p|~p)" # deleted
|
||||||
|
#color index black default ~F # flagged
|
||||||
|
#color index brightred default ~= # duplicate messages
|
||||||
|
#color index brightgreen default "~A!~N!~T!~p!~Q!~F!~D!~P" # the rest
|
||||||
|
#color index J_base default "~A~N!~T!~p!~Q!~F!~D" # the rest, new
|
||||||
|
color index red default "~A" # all messages
|
||||||
|
color index brightred default "~E" # expired messages
|
||||||
|
color index blue default "~N" # new messages
|
||||||
|
color index blue default "~O" # old messages
|
||||||
|
color index brightmagenta default "~Q" # messages that have been replied to
|
||||||
|
color index brightgreen default "~R" # read messages
|
||||||
|
color index blue default "~U" # unread messages
|
||||||
|
color index blue default "~U~$" # unread, unreferenced messages
|
||||||
|
color index brightyellow default "~v" # messages part of a collapsed thread
|
||||||
|
color index brightyellow default "~P" # messages from me
|
||||||
|
color index cyan default "~p!~F" # messages to me
|
||||||
|
color index cyan default "~N~p!~F" # new messages to me
|
||||||
|
color index cyan default "~U~p!~F" # unread messages to me
|
||||||
|
color index brightgreen default "~R~p!~F" # messages to me
|
||||||
|
color index red default "~F" # flagged messages
|
||||||
|
color index red default "~F~p" # flagged messages to me
|
||||||
|
color index red default "~N~F" # new flagged messages
|
||||||
|
color index red default "~N~F~p" # new flagged messages to me
|
||||||
|
color index red default "~U~F~p" # new flagged messages to me
|
||||||
|
color index black red "~D" # deleted messages
|
||||||
|
color index brightcyan default "~v~(!~N)" # collapsed thread with no unread
|
||||||
|
color index yellow default "~v~(~N)" # collapsed thread with some unread
|
||||||
|
color index green default "~N~v~(~N)" # collapsed thread with unread parent
|
||||||
|
# statusbg used to indicated flagged when foreground color shows other status
|
||||||
|
# for collapsed thread
|
||||||
|
color index red black "~v~(~F)!~N" # collapsed thread with flagged, no unread
|
||||||
|
color index yellow black "~v~(~F~N)" # collapsed thread with some unread & flagged
|
||||||
|
color index green black "~N~v~(~F~N)" # collapsed thread with unread parent & flagged
|
||||||
|
color index green black "~N~v~(~F)" # collapsed thread with unread parent, no unread inside, but some flagged
|
||||||
|
color index cyan black "~v~(~p)" # collapsed thread with unread parent, no unread inside, some to me directly
|
||||||
|
color index yellow red "~v~(~D)" # thread with deleted (doesn't differentiate between all or partial)
|
||||||
|
#color index yellow default "~(~N)" # messages in threads with some unread
|
||||||
|
#color index green default "~S" # superseded messages
|
||||||
|
#color index red default "~T" # tagged messages
|
||||||
|
#color index brightred red "~=" # duplicated messages
|
||||||
|
|
||||||
|
# message headers ------------------------------------------------------
|
||||||
|
|
||||||
|
#color header brightgreen default "^"
|
||||||
|
color hdrdefault brightgreen default
|
||||||
|
color header brightyellow default "^(From)"
|
||||||
|
color header blue default "^(Subject)"
|
||||||
|
|
||||||
|
# body -----------------------------------------------------------------
|
||||||
|
|
||||||
|
color quoted blue default
|
||||||
|
color quoted1 cyan default
|
||||||
|
color quoted2 yellow default
|
||||||
|
color quoted3 red default
|
||||||
|
color quoted4 brightred default
|
||||||
|
|
||||||
|
color signature brightgreen default
|
||||||
|
color bold black default
|
||||||
|
color underline black default
|
||||||
|
color normal default default
|
||||||
|
#
|
||||||
|
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
||||||
|
color body brightcyan default "[;:][)(|]" # emoticons
|
||||||
|
color body brightcyan default "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\
|
||||||
|
|FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\
|
||||||
|
|IRL|RTFM|ROTFL|ROFL|YMMV)[*]?"
|
||||||
|
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||||
|
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||||
|
|
||||||
|
## pgp
|
||||||
|
|
||||||
|
color body red default "(BAD signature)"
|
||||||
|
color body cyan default "(Good signature)"
|
||||||
|
color body brightblack default "^gpg: Good signature .*"
|
||||||
|
color body brightyellow default "^gpg: "
|
||||||
|
color body brightyellow red "^gpg: BAD signature from.*"
|
||||||
|
mono body bold "^gpg: Good signature"
|
||||||
|
mono body bold "^gpg: BAD signature from.*"
|
||||||
|
|
||||||
|
# yes, an insance URL regex
|
||||||
|
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||||
|
# and a heavy handed email regex
|
||||||
|
#color body J_magent default "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])"
|
||||||
|
|
||||||
|
# Various smilies and the like
|
||||||
|
#color body brightwhite default "<[Gg]>" # <g>
|
||||||
|
#color body brightwhite default "<[Bb][Gg]>" # <bg>
|
||||||
|
#color body yellow default " [;:]-*[})>{(<|]" # :-) etc...
|
||||||
|
# *bold*
|
||||||
|
#color body blue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)"
|
||||||
|
#mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)"
|
||||||
|
# _underline_
|
||||||
|
#color body blue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)"
|
||||||
|
#mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)"
|
||||||
|
# /italic/ (Sometimes gets directory names)
|
||||||
|
#color body blue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)"
|
||||||
|
#mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)"
|
||||||
|
|
||||||
|
# Border lines.
|
||||||
|
#color body blue default "( *[-+=#*~_]){6,}"
|
||||||
|
|
||||||
|
#folder-hook . "color status J_black J_status "
|
||||||
|
#folder-hook gmail/inbox "color status J_black yellow "
|
||||||
|
#folder-hook gmail/important "color status J_black yellow "
|
||||||
|
|
Loading…
Reference in New Issue
Block a user