Point dotfiles to install to /etc/skel.
This commit is contained in:
parent
0c09336159
commit
7e1627bdaa
|
|
@ -11,7 +11,7 @@ apt-get install -y khard
|
||||||
# or with:
|
# or with:
|
||||||
# 'cat template.yaml | khard new -a address_book'
|
# 'cat template.yaml | khard new -a address_book'
|
||||||
|
|
||||||
NEOMUTTCONF=~/.config/mutt
|
NEOMUTTCONF=/etc/skel/.config/mutt
|
||||||
|
|
||||||
cat >> ${NEOMUTTCONF}/muttrc <<'EOF'
|
cat >> ${NEOMUTTCONF}/muttrc <<'EOF'
|
||||||
## khard integration
|
## khard integration
|
||||||
|
|
@ -32,12 +32,12 @@ macro index,pager A \
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
mkdir -p ~/.contacts/family/
|
mkdir -p /etc/skel/.contacts/family/
|
||||||
mkdir -p ~/.contacts/friends/
|
mkdir -p /etc/skel/.contacts/friends/
|
||||||
mkdir -p ~/.contacts/business/
|
mkdir -/etc/skel/.contacts/business/
|
||||||
|
|
||||||
# /usr/share/doc/khard/examples/khard/khard.conf.example
|
# /usr/share/doc/khard/examples/khard/khard.conf.example
|
||||||
~/.config/khard/khard.conf <<'EOF'
|
/etc/skel/.config/khard/khard.conf <<'EOF'
|
||||||
[addressbooks]
|
[addressbooks]
|
||||||
[[family]]
|
[[family]]
|
||||||
path = ~/.contacts/family/
|
path = ~/.contacts/family/
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
## an initial tagging script for notmuch mail
|
||||||
|
|
||||||
#FIXME: NOT TESTED YET needs notmuch-mutt installed first
|
#FIXME: NOT TESTED YET needs notmuch-mutt installed first
|
||||||
#FIXME: add afew tagging: https://readthedocs.org/projects/afew/downloads/pdf/latest/
|
#FIXME: add afew tagging: https://readthedocs.org/projects/afew/downloads/pdf/latest/
|
||||||
|
|
||||||
apt-get install -y afew # provides /usr/bin/afew
|
apt-get install -y afew # provides /usr/bin/afew
|
||||||
|
|
||||||
|
|
||||||
mkdir -p ~/.config/afew/
|
mkdir -p /etc/skel/.config/afew/
|
||||||
|
|
||||||
# Put a list of filters into ~/.config/afew/config :
|
# Put a list of filters into ~/.config/afew/config :
|
||||||
cat > ~/.config/afew/config <<'EOF'
|
cat > /etc/skel/.config/afew/config <<'EOF'
|
||||||
# This is the default filter chain
|
# This is the default filter chain
|
||||||
[SpamFilter]
|
[SpamFilter]
|
||||||
[KillThreadsFilter]
|
[KillThreadsFilter]
|
||||||
|
|
@ -26,7 +30,7 @@ sed -i '/\[new\]/{n;s/.*/tags=new\;/}' .notmuch-config
|
||||||
|
|
||||||
# After running notmuch new, all new messages will be marked new. You can then do various tag post-processing by just acting on messages with that tag.
|
# After running notmuch new, all new messages will be marked new. You can then do various tag post-processing by just acting on messages with that tag.
|
||||||
|
|
||||||
MAILDIR="$HOME/.local/share/mail" # set by mutt-wizard setup
|
MAILDIR="/etc/skel/.local/share/mail" # set by mutt-wizard setup
|
||||||
|
|
||||||
# And create a post-new hook for notmuch.
|
# And create a post-new hook for notmuch.
|
||||||
mkdir -p ${MAILDIR}/.notmuch/hooks
|
mkdir -p ${MAILDIR}/.notmuch/hooks
|
||||||
|
|
@ -70,7 +74,7 @@ EOF
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
cat > ~/.config/afew/afew.config-example <<'EOF'
|
cat > /etc/skel/.config/afew/afew.config-example <<'EOF'
|
||||||
# global configuration
|
# global configuration
|
||||||
[global]
|
[global]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
apt-get install -y notmuch-mutt
|
apt-get install -y notmuch-mutt
|
||||||
|
|
||||||
|
|
||||||
NEOMUTTCONF="$HOME/config/mutt/"
|
NEOMUTTCONF="/etc/skel/.config/mutt/"
|
||||||
MAILDIR="$HOME/.local/share/mail" # set by mutt-wizard setup
|
MAILDIR='/etc/skel/.local/share/mail' # set by mutt-wizard setup
|
||||||
|
|
||||||
cat >> ${NEOMUTTCONF}/muttrc <<'EOF'
|
cat >> ${NEOMUTTCONF}/muttrc <<'EOF'
|
||||||
# notmuch
|
# notmuch
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,28 @@
|
||||||
#!/usr/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
# Some useful hints
|
||||||
|
# ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
# • The critical mutt/neomutt files are in ’~/.config/mutt/’.
|
||||||
|
# • Put whatever global settings you want in ’muttrc’. mutt-wizard will add some
|
||||||
|
# lines to this file, which you shouldn't remove unless you know what you’re
|
||||||
|
# doing, but you can move them up/down over your personal config lines, if you
|
||||||
|
# need to. If you get binding conflict errors in mutt you might need to do this.
|
||||||
|
# • Each of the accounts that mutt-wizard generates will have custom settings set
|
||||||
|
# in a separate file in ’accounts/’. You can edit these freely if you want to
|
||||||
|
# tinker with settings specific to an account.
|
||||||
|
# • In ’/usr/share/mutt-wizard’ are several global config files, including mutt-
|
||||||
|
# wizard’s default settings. You can overwride this in your muttrc if you wish.
|
||||||
|
# • For Gmail accounts, remember also to enable third-party ("less secure") appli-
|
||||||
|
# cations before attempting installation.
|
||||||
|
# • Protonmail accounts will require you to set up "Protonmail Bridge" to access
|
||||||
|
# PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
|
||||||
|
# • If you have a university email, or enterprise-hosted email for work, there
|
||||||
|
# might be other hurdles or two-factor authentication you have to jump through.
|
||||||
|
# Some, for example, will want you to create a separate IMAP password, etc.
|
||||||
|
# • If you use an email server whose mailboxes are not in English, mutt-wizard
|
||||||
|
# might not be able to guess which is which, so you may have to manually set
|
||||||
|
# your Inbox, Sent, Trash, Drafts, etc. in your mutt config file. Do this after
|
||||||
|
# running the wizard in accounts/NAME.muttrc.
|
||||||
|
|
||||||
|
|
||||||
# isync
|
# isync
|
||||||
|
|
@ -11,63 +35,42 @@
|
||||||
# cronie (optional) – auto-sync mails - alt.: fcron
|
# cronie (optional) – auto-sync mails - alt.: fcron
|
||||||
# dunst (optional) – enable desktop notifications about new mail
|
# dunst (optional) – enable desktop notifications about new mail
|
||||||
# fcron (optional) – auto-sync mails - alt.: cronie
|
# fcron (optional) – auto-sync mails - alt.: cronie
|
||||||
# imagemagick (optional) – view images inside of the neomutt TUI
|
|
||||||
# libnotify (optional) – enable desktop notifications about new mail
|
# libnotify (optional) – enable desktop notifications about new mail
|
||||||
# pam-gnupg (optional) – automatically unlock gpg keys at session login
|
# pam-gnupg (optional) – automatically unlock gpg keys at session login
|
||||||
# urlview (optional) – list URLs found in mails to open them in a browser
|
# urlview (optional) – list URLs found in mails to open them in a browser
|
||||||
# w3m (optional) – view HTML email and images inside of the neomutt TUI
|
|
||||||
# elinks (optional) – view HTML email inside of the neomutt TUI
|
# elinks (optional) – view HTML email inside of the neomutt TUI
|
||||||
# links (optional) – view HTML email inside of the neomutt TUI
|
# links (optional) – view HTML email inside of the neomutt TUI
|
||||||
# lynx (optional) – view HTML email inside of the neomutt TUI
|
# lynx (optional) – view HTML email inside of the neomutt TUI
|
||||||
|
# w3m (optional) – view HTML email inside of the neomutt TUI
|
||||||
|
# w3m-img (optional) – view images inside of the neomutt TUI
|
||||||
|
# imagemagick (optional) – view images inside of the neomutt TUI
|
||||||
|
|
||||||
|
|
||||||
set -x
|
#set -x
|
||||||
apt-get install -y git neomutt urlscan w3m w3m-img ripmime isync msmtp vdirsyncer pass mailsync libnotify-bin lynx urlview
|
apt-get install -y git neomutt urlscan w3m w3m-img ripmime isync msmtp vdirsyncer pass mailsync libnotify-bin lynx urlview
|
||||||
|
|
||||||
echo 'alias mutt="neomutt "' >> ~/.zsh_aliases.d/002_neomutt.zsh
|
echo 'alias mutt="neomutt "' >> $HOME/.zsh_aliases.d/002_neomutt.zsh
|
||||||
|
|
||||||
BASE_USER=LukeSmithxyz
|
|
||||||
BASE_REPO=mutt-wizard
|
|
||||||
PROJECT=${BASE_USER}/${BASE_REPO}
|
|
||||||
PRERELEASE=false
|
|
||||||
# RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | select( .prerelease = false ) |.tag_name')
|
|
||||||
# VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-")
|
|
||||||
VERSION=$( date +%Y-%m-%d_ )git
|
|
||||||
|
|
||||||
BUILD_DIR=/var/tmp/build_mutt-wizard
|
|
||||||
mkdir -p ${BUILD_DIR}
|
|
||||||
|
|
||||||
# make a containing directory
|
|
||||||
mkdir -p /var/tmp/${BASE_REPO}-"${RELEASE}"
|
|
||||||
cd /var/tmp/${BASE_REPO}-"${RELEASE}" || exit
|
|
||||||
|
|
||||||
cat > ${BUILD_DIR}/description-pak << EOF
|
|
||||||
A system for automatically configuring mutt and isync with a simple interface and safe passwords
|
|
||||||
EOF
|
|
||||||
|
|
||||||
## Files and directories to be created:
|
|
||||||
# $HOME/usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
|
||||||
# $HOME/usr/local/share/mutt-wizard/mutt-wizard-colors.muttrc
|
|
||||||
# $HOME/.config/mutt/muttrc
|
|
||||||
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber-extended.muttrc
|
|
||||||
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber.muttrc
|
|
||||||
# $HOME/.config/mutt/accounts/1-example_profile.muttrc
|
|
||||||
|
|
||||||
cat > ${BUILD_DIR}/checkinstall_it.sh << 'EOF'
|
|
||||||
|
|
||||||
echo "ENTERING CHECKINSTALL"
|
|
||||||
|
|
||||||
|
# Shared variables for the heredocs
|
||||||
BASE_URL='https://api.github.com/repos'
|
BASE_URL='https://api.github.com/repos'
|
||||||
BASE_USER='LukeSmithxyz'
|
USER='LukeSmithxyz'
|
||||||
BASE_REPO='mutt-wizard'
|
PROJECT='mutt-wizard'
|
||||||
LICENSE_PAGE_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/license
|
LICENSE_PAGE_URL="https://raw.githubusercontent.com/${USER}/${PROJECT}/master/LICENSE"
|
||||||
RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases
|
#LICENSE=$(curl -s "${LICENSE_PAGE_URL}")
|
||||||
|
LICENSE=GPL
|
||||||
|
RELEASES_URL="${BASE_URL}/${USER}/${PROJECT}"/releases
|
||||||
|
PRERELEASE=false
|
||||||
|
|
||||||
|
## No releases so no api page other than license so use git repo
|
||||||
# CONTENT=$(curl -s ${RELEASES_URL}/latest)
|
# CONTENT=$(curl -s ${RELEASES_URL}/latest)
|
||||||
# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url')
|
# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url')
|
||||||
|
LATEST_URL=https://github.com/${USER}/${PROJECT}
|
||||||
echo "LATEST_URL: " "${LATEST_URL}"
|
echo "LATEST_URL: " "${LATEST_URL}"
|
||||||
|
|
||||||
|
#WORKDIR=$(mktemp -d -p $HOME/tmptmp -t mutt-wizard_build-XXXXXXX) || exit 1
|
||||||
|
#trap "rm -rf '${WORKDIR}'" EXIT
|
||||||
|
WORKDIR="/var/tmp/mutt-wizard-workdir"
|
||||||
|
|
||||||
# RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name')
|
# RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name')
|
||||||
|
|
||||||
# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url')
|
# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url')
|
||||||
|
|
@ -77,55 +80,265 @@ VERSION=$( date +%Y-%m-%d_ )git
|
||||||
VERSION=1.0
|
VERSION=1.0
|
||||||
RELEASE=git
|
RELEASE=git
|
||||||
|
|
||||||
# make a new temporary directory for this use
|
|
||||||
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
|
||||||
mkdir -p ${BASE_TMP_DIR}
|
|
||||||
|
|
||||||
# do your work
|
|
||||||
checkinstall -y --fstrans \
|
|
||||||
--pkgname=mutt-wizard \
|
|
||||||
--pkgversion=${VERSION}\
|
|
||||||
--pkgrelease=${RELEASE} \
|
|
||||||
--pkgarch=amd64 \
|
|
||||||
--pkggroup=admin \
|
|
||||||
--pkglicense=LICENSE \
|
|
||||||
--pkgsource=${LATEST_URL} \
|
|
||||||
--maintainer=cyteen@ring-zero.co.uk \
|
|
||||||
--requires=neomutt,isync,msmtp,pass \
|
|
||||||
-D \
|
|
||||||
bash ./install.sh
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > ./install.sh << 'FOE'
|
|
||||||
|
|
||||||
BASE_URL='https://api.github.com/repos'
|
|
||||||
BASE_USER='LukeSmithxyz'
|
|
||||||
BASE_REPO='mutt-wizard'
|
|
||||||
# RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases
|
|
||||||
# CONTENT=$(curl -s ${RELEASES_URL}/latest)
|
|
||||||
# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url')
|
|
||||||
LATEST_URL=https://github.com/LukeSmithxyz/mutt-wizard
|
|
||||||
|
|
||||||
## Download and copy the latest version to /usr/local/bin and make executable
|
|
||||||
git clone ${LATEST_URL} /var/tmp/mutt-wizard
|
|
||||||
cd /var/tmp/mutt-wizard
|
|
||||||
make install
|
|
||||||
|
|
||||||
## Create directories and configuration files
|
## Create directories and configuration files
|
||||||
# '$ mw add' and follow the prompts.
|
# '$ mw add' and follow the prompts.
|
||||||
|
|
||||||
|
BUILD_DIR=/var/tmp/build_mutt-wizard
|
||||||
MUTTWIZARDCONF="/usr/local/share/mutt-wizard"
|
MUTTWIZARDCONF="/usr/local/share/mutt-wizard"
|
||||||
MUTTDIR="$HOME/.config/mutt"
|
#MUTTDIR="$HOME/.config/mutt"
|
||||||
|
MUTTDIR="${BUILD_DIR}/skel/.config/mutt"
|
||||||
|
#MUTTDOCS="/usr/share/doc/mutt-wizard"
|
||||||
|
MUTTDOCS="${BUILD_DIR}/doc-pak"
|
||||||
|
EXAMPLES="${MUTTDOCS}/examples"
|
||||||
ACCDIR="${MUTTDIR}/accounts"
|
ACCDIR="${MUTTDIR}/accounts"
|
||||||
COLORSCHEMES="${MUTTDIR}/colorschemes"
|
COLORSCHEMES="${MUTTDIR}/colorschemes"
|
||||||
FONTS="${MUTTDIR}/fonts"
|
FONTS="${MUTTDIR}/fonts"
|
||||||
|
|
||||||
|
# email settings
|
||||||
|
PROFILE_NAME=example_profile
|
||||||
|
EMAIL=foobar@foo.bar
|
||||||
|
REAL_NAME="foo bar"
|
||||||
|
|
||||||
|
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
||||||
|
DOC_DIR=/usr/share/doc
|
||||||
|
|
||||||
|
# make a new temporary directory for this use to avoid permission issues.
|
||||||
|
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wget -c -P ${MUTTDOCS} ${LICENSE_PAGE_URL}
|
||||||
|
|
||||||
|
mkdir -p ${BUILD_DIR}
|
||||||
|
|
||||||
|
# make a containing directory
|
||||||
|
mkdir -p /var/tmp/${PROJECT}-"${RELEASE}"
|
||||||
|
cd /var/tmp/${PROJECT}-"${RELEASE}" || exit
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------
|
||||||
|
## Create and populate the install scripts and documentation for checkinstall
|
||||||
|
cat > ${BUILD_DIR}/description-pak << EOF
|
||||||
|
mutt-wizard
|
||||||
|
|
||||||
|
A system for automatically configuring mutt and isync with a simple interface and safe passwords
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# | preinstall-pak | Run BEFORE the package is INSTALLED |
|
||||||
|
cat > ${BUILD_DIR}/preinstall-pak << EOF
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# | postinstall-pak | Run AFTER the package is INSTALLED |
|
||||||
|
cat > ${BUILD_DIR}/postinstall-pak << EOF
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
# For every user in /home/ ...
|
||||||
|
for HOME_U in /home/*?; do
|
||||||
|
|
||||||
|
# Obtain the username
|
||||||
|
USER=$( basename ${HOME_U} )
|
||||||
|
|
||||||
|
# In case the user is active (exists in /etc/shadow) ...
|
||||||
|
if [ $( grep -c "${USER}:.*:.*:.*:.*:.*:::" /etc/shadow ) == 1 ] \
|
||||||
|
&& [ $( grep -c "${USER}:.*:.*:.*:.*:.*:/bin/.*sh" /etc/passwd ) == 1 ] \
|
||||||
|
&& [ -d ${HOME_U}/.config ] \
|
||||||
|
&& [ -d ${HOME_U} ]; then
|
||||||
|
|
||||||
|
# Copies files a user has deleted that you want to put back again but does not update files that already exist.
|
||||||
|
getent passwd |
|
||||||
|
while IFS=: read username x uid gid gecos home shell
|
||||||
|
do
|
||||||
|
[[ "$username" == root || ! -d "$home" ]] && continue
|
||||||
|
tar -cf - -C /etc/skel/.config/mutt . | sudo -Hu "$username" tar --skip-old-files -xf -
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# | preremove-pak | Run BEFORE the package is REMOVED |
|
||||||
|
cat > ${BUILD_DIR}/preremove-pak << EOF
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# | postremove-pak | Run AFTER the package is REMOVED
|
||||||
|
cat > ${BUILD_DIR}/postremove-pak << EOF
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
EOF
|
||||||
|
|
||||||
|
## Make the doc-pak directory for README, INSTALL, COPYING, Changelog, TODO, CREDITS
|
||||||
|
mkdir -p ${BUILD_DIR}/doc-pak
|
||||||
|
#cp README INSTALL COPYING Changelog TODO CREDITS doc-pak
|
||||||
|
|
||||||
|
|
||||||
|
cat > ${BUILD_DIR}/doc-pak/README << 'EOF'
|
||||||
|
Some useful hints
|
||||||
|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
• The critical mutt/neomutt files are in ’~/.config/mutt/’.
|
||||||
|
• Put whatever global settings you want in ’muttrc’. mutt-wizard will add some
|
||||||
|
lines to this file, which you shouldn't remove unless you know what you’re
|
||||||
|
doing, but you can move them up/down over your personal config lines, if you
|
||||||
|
need to. If you get binding conflict errors in mutt you might need to do this.
|
||||||
|
• Each of the accounts that mutt-wizard generates will have custom settings set
|
||||||
|
in a separate file in ’accounts/’. You can edit these freely if you want to
|
||||||
|
tinker with settings specific to an account.
|
||||||
|
• In ’/usr/share/mutt-wizard’ are several global config files, including mutt-
|
||||||
|
wizard’s default settings. You can overwride this in your muttrc if you wish.
|
||||||
|
• For Gmail accounts, remember also to enable third-party ("less secure") appli-
|
||||||
|
cations before attempting installation.
|
||||||
|
• Protonmail accounts will require you to set up "Protonmail Bridge" to access
|
||||||
|
PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
|
||||||
|
• If you have a university email, or enterprise-hosted email for work, there
|
||||||
|
might be other hurdles or two-factor authentication you have to jump through.
|
||||||
|
Some, for example, will want you to create a separate IMAP password, etc.
|
||||||
|
• If you use an email server whose mailboxes are not in English, mutt-wizard
|
||||||
|
might not be able to guess which is which, so you may have to manually set
|
||||||
|
your Inbox, Sent, Trash, Drafts, etc. in your mutt config file. Do this after
|
||||||
|
running the wizard in accounts/NAME.muttrc.
|
||||||
|
|
||||||
|
Help the project
|
||||||
|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
|
• Try mutt-wizard out on weird machines and weird email addresses and report any
|
||||||
|
errors.
|
||||||
|
• Open a PR to add new server information into ’domains.csv’, so their users can
|
||||||
|
more easily use mutt-wizard.
|
||||||
|
• If nothing else, donate: https://paypal.me/LukeMSmith !
|
||||||
|
|
||||||
|
See Luke’s website: https://lukesmith.xyz/ - email him at: luke<at>lukesmith.xyz
|
||||||
|
|
||||||
|
--> mutt-wizard is free/libre software, licensed under the GPLv3 <--
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
## Files and directories to be created:
|
||||||
|
# /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
||||||
|
# /usr/local/share/mutt-wizard/mutt-wizard-colors.muttrc
|
||||||
|
# $HOME/.config/mutt/muttrc
|
||||||
|
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber-extended.muttrc
|
||||||
|
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber.muttrc
|
||||||
|
# $HOME/.config/mutt/accounts/1-example_profile.muttrc
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------
|
||||||
|
#---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
cat > ${BUILD_DIR}/checkinstall_it.sh << FOE
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
echo "******************************"
|
||||||
|
echo "ENTERING CHECKINSTALL"
|
||||||
|
echo "******************************"
|
||||||
|
|
||||||
|
echo "Making MUTTDIR: ${MUTTDIR} from ${PWD}"
|
||||||
|
|
||||||
|
echo "Making MUTTDIR ${MUTTDIR}"
|
||||||
|
mkdir -p ${MUTTDIR}
|
||||||
|
|
||||||
|
echo "Making COLORSCHEMES ${COLORSCHEMES}"
|
||||||
mkdir -p ${COLORSCHEMES}
|
mkdir -p ${COLORSCHEMES}
|
||||||
mkdir -p ${fonts}
|
|
||||||
mkdir -p ${ACCDIR}
|
|
||||||
|
|
||||||
git clone https://github.com/sheoak/neomutt-powerline-nerdfonts.git ${MUTTDIR}/powerline
|
#echo "Making ACCDIR ${ACCDIR}"
|
||||||
|
#mkdir -p ${ACCDIR}
|
||||||
|
|
||||||
|
echo "Making MUTTDOCS ${MUTTDOCS}"
|
||||||
|
mkdir -p ${MUTTDOCS}
|
||||||
|
|
||||||
|
echo "Making FONTS ${FONTS}"
|
||||||
|
mkdir -p ${FONTS}
|
||||||
|
|
||||||
|
mkdir -p ${EXAMPLES}
|
||||||
|
mkdir -p ${EXAMPLES}/colorschemes
|
||||||
|
mkdir -p ${EXAMPLES}/accounts
|
||||||
|
mkdir -p ${EXAMPLES}/fonts
|
||||||
|
|
||||||
|
|
||||||
|
## git clone https://github.com/sheoak/neomutt-powerline-nerdfonts.git
|
||||||
|
|
||||||
|
cat <<EOF | tee ${COLORSCHEMES}/gruvbox-powerline.neomuttrc >> ${EXAMPLES}/colorschemes/gruvbox-powerline.neomuttrc
|
||||||
|
# cancel theme colors
|
||||||
|
color index color223 color234 ~Q
|
||||||
|
color index color223 color234 ~P
|
||||||
|
color index color223 color234 ~T
|
||||||
|
color index color223 color234 ~O
|
||||||
|
color index color223 color234 ~F
|
||||||
|
color index color223 color234 ~N
|
||||||
|
|
||||||
|
# add some nice custom coloring to the message list
|
||||||
|
# thanks to new neomutt features
|
||||||
|
# http://www.mutt.org/doc/manual/#patterns
|
||||||
|
# https://neomutt.org/feature/index-color
|
||||||
|
color index_subject color109 color234 "~P !~T !~D"
|
||||||
|
color index_author color109 color234 "~P !~T !~D"
|
||||||
|
color index_subject color243 color234 "~Q !~T !~D"
|
||||||
|
color index_author color243 color234 "~Q !~T !~D"
|
||||||
|
color index_subject brightcolor142 color234 "~N !~T !~D"
|
||||||
|
color index_author brightcolor142 color234 "~N !~T !~D"
|
||||||
|
color index_subject color142 color234 "~O !~T !~D"
|
||||||
|
color index_author color142 color234 "~O !~T !~D"
|
||||||
|
color index_subject color214 color234 "~F !~T !~D"
|
||||||
|
color index_author color214 color234 "~F !~T !~D"
|
||||||
|
color index_subject brightcolor214 color234 "~F ~N !~T !~D"
|
||||||
|
color index_author brightcolor214 color234 "~F ~N !~T !~D"
|
||||||
|
color index_subject color167 color234 "~= !~T !~D"
|
||||||
|
color index_author color167 color234 "~= !~T !~D"
|
||||||
|
color index_subject brightcolor109 color234 "~P ~N !~T !~D"
|
||||||
|
color index_author brightcolor109 color234 "~P ~N !~T !~D"
|
||||||
|
color index color234 color223 "~T"
|
||||||
|
color index color229 color124 "~D"
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
cat <<EOF | tee ${FONTS}/powerline.neomuttrc >> ${EXAMPLES}/fonts/powerline.neomuttrc
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Powerline / nerdfont
|
||||||
|
# This is a bit "hackish" due to neomutt limitations
|
||||||
|
#
|
||||||
|
# Author: Sheoak <contact [at] sheoak.fr>
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
set index_format=" %zs %zc %zt %{!%d %b} . %-28.28L %?M?(%1M)& ? %?X?&·? %s"
|
||||||
|
set pager_format=" %n %zc %T %s%* %{!%d %b · %H:%M} %?X? %X ? %P "
|
||||||
|
set status_format = " %f%?r? %r? %m %?n? %n ? %?d? %d ?%?t? %t ?%?F? %F? %> %?p? %p ?"
|
||||||
|
set vfolder_format = " %N %?n?%3n& ? %8m · %f"
|
||||||
|
set attach_format = "%u%D %T%-75.75d %?T?%& ? %5s · %m/%M"
|
||||||
|
|
||||||
|
# no addressed to me, to me, group, cc, sent by me, mailing list
|
||||||
|
set to_chars=""
|
||||||
|
# unchanged mailbox, changed, read only, attach mode
|
||||||
|
set status_chars = " "
|
||||||
|
ifdef crypt_chars set crypt_chars = " "
|
||||||
|
set flag_chars = " "
|
||||||
|
|
||||||
|
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
|
||||||
|
tag-transforms "replied" "↻ " \
|
||||||
|
"encrytpted" "" \
|
||||||
|
"signed" "" \
|
||||||
|
"attachment" "" \
|
||||||
|
|
||||||
|
# The formats must start with 'G' and the entire sequence is case sensitive.
|
||||||
|
tag-formats "replied" "GR" \
|
||||||
|
"encrypted" "GE" \
|
||||||
|
"signed" "GS" \
|
||||||
|
"attachment" "GA" \
|
||||||
|
|
||||||
|
color status white black
|
||||||
|
# powerline status bar hack
|
||||||
|
color status green black ''
|
||||||
|
color status yellow black ''
|
||||||
|
color status red black ''
|
||||||
|
color status brightblack blue '(.*)' 1
|
||||||
|
color status blue black '.*()' 1
|
||||||
|
color status black blue '\s* [0-9]+\s*'
|
||||||
|
color status blue black '().*$' 1
|
||||||
|
color status yellow black '()\s*\s*[0-9]+\s*' 1
|
||||||
|
color status black yellow '\s*\s*[0-9]+\s*'
|
||||||
|
color status blue yellow '() ([0-9]+%|all|end) \s*' 1
|
||||||
|
color status black blue ' ([0-9]+%|all|end) \s*'
|
||||||
|
color status yellow black '()\s*' 1
|
||||||
|
color status default black ''
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/neonwolf-256.neomuttrc
|
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/neonwolf-256.neomuttrc
|
||||||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/zenburn.neomuttrc
|
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/zenburn.neomuttrc
|
||||||
|
|
@ -135,7 +348,10 @@ wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/mas
|
||||||
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber.muttrc;hb=master
|
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber.muttrc;hb=master
|
||||||
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber-extended.muttrc;hb=master
|
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber-extended.muttrc;hb=master
|
||||||
|
|
||||||
cat >${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc <<EOF
|
cp -a ${COLORSCHEMES} ${EXAMPLES}/colorschemes
|
||||||
|
|
||||||
|
#cat >${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc <<EOF
|
||||||
|
cat <<EOF | tee ${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc >> ${EXAMPLES}/colorschemes/colors-gruvbox-shuber-extended.muttrc
|
||||||
color compose header color223 color234
|
color compose header color223 color234
|
||||||
color compose security_encrypt color175 color234
|
color compose security_encrypt color175 color234
|
||||||
color compose security_sign color109 color234
|
color compose security_sign color109 color234
|
||||||
|
|
@ -143,7 +359,8 @@ color compose security_both color142 color234
|
||||||
color compose security_none color208 color234
|
color compose security_none color208 color234
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat >${COLORSCHEMES}/colors-gruvbox-shuber.muttrc <<EOF
|
#cat >${COLORSCHEMES}/colors-gruvbox-shuber.muttrc <<EOF
|
||||||
|
cat <<EOF | tee ${COLORSCHEMES}/colors-gruvbox-shuber.muttrc >> ${EXAMPLES}/colorschemes/colors-gruvbox-shuber.muttrc
|
||||||
# gruvbox dark (contrast dark):
|
# gruvbox dark (contrast dark):
|
||||||
|
|
||||||
# bg0 = 234
|
# bg0 = 234
|
||||||
|
|
@ -227,239 +444,45 @@ color body color214 color234 "^gpg: signature verification suppressed"
|
||||||
color body color214 color234 "^gpg: invalid node with packet of type"
|
color body color214 color234 "^gpg: invalid node with packet of type"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# split the existing mutt-wizard.muttrc into two to separate the colours from everything else so other colourschemes can be used.
|
|
||||||
cat > ${MUTTWIZARDCONF}/mutt-wizard.muttrc <<'EOF'
|
|
||||||
# vim: filetype=neomuttrc
|
|
||||||
# This file contains all of mutt-wizard's default settings.
|
|
||||||
# mutt-wizard will have this file sourced from your muttrc.
|
|
||||||
# In the interest of seamless updating, do not edit this file.
|
|
||||||
# If you want to override any settings, set those in your muttrc.
|
|
||||||
set mailcap_path = /usr/local/share/mutt-wizard/mailcap
|
|
||||||
set date_format="%y/%m/%d %I:%M%p"
|
|
||||||
set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)"
|
|
||||||
set sort = 'reverse-date'
|
|
||||||
set smtp_authenticators = 'gssapi:login'
|
|
||||||
set query_command = "abook --mutt-query '%s'"
|
|
||||||
set rfc2047_parameters = yes
|
|
||||||
set sleep_time = 0 # Pause 0 seconds for informational messages
|
|
||||||
set markers = no # Disables the `+` displayed at line wraps
|
|
||||||
set mark_old = no # Unread mail stay unread until read
|
|
||||||
set mime_forward = yes # attachments are forwarded with mail
|
|
||||||
set wait_key = no # mutt won't ask "press key to continue"
|
|
||||||
set fast_reply # skip to compose when replying
|
|
||||||
set fcc_attach # save attachments with the body
|
|
||||||
set forward_format = "Fwd: %s" # format of subject when forwarding
|
|
||||||
set forward_quote # include message in forwards
|
|
||||||
set reverse_name # reply as whomever it was to
|
|
||||||
set include # include message in replies
|
|
||||||
set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
|
|
||||||
auto_view text/html # automatically show html (mailcap uses w3m)
|
|
||||||
auto_view application/pgp-encrypted
|
|
||||||
alternative_order text/plain text/enriched text/html
|
|
||||||
bind index,pager i noop
|
|
||||||
bind index,pager g noop
|
|
||||||
bind index \Cf noop
|
|
||||||
|
|
||||||
# General rebindings
|
|
||||||
bind index j next-entry
|
|
||||||
bind index k previous-entry
|
|
||||||
bind attach <return> view-mailcap
|
|
||||||
bind attach l view-mailcap
|
|
||||||
bind editor <space> noop
|
|
||||||
bind index G last-entry
|
|
||||||
bind index gg first-entry
|
|
||||||
bind pager,attach h exit
|
|
||||||
bind pager j next-line
|
|
||||||
bind pager k previous-line
|
|
||||||
bind pager l view-attachments
|
|
||||||
bind index D delete-message
|
|
||||||
bind index U undelete-message
|
|
||||||
bind index L limit
|
|
||||||
bind index h noop
|
|
||||||
bind index l display-message
|
|
||||||
bind index <space> tag-entry
|
|
||||||
#bind browser h goto-parent
|
|
||||||
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
|
||||||
bind index,pager H view-raw-message
|
|
||||||
bind browser l select-entry
|
|
||||||
bind pager,browser gg top-page
|
|
||||||
bind pager,browser G bottom-page
|
|
||||||
bind index,pager,browser d half-down
|
|
||||||
bind index,pager,browser u half-up
|
|
||||||
bind index,pager S sync-mailbox
|
|
||||||
bind index,pager R group-reply
|
|
||||||
bind index \031 previous-undeleted # Mouse wheel
|
|
||||||
bind index \005 next-undeleted # Mouse wheel
|
|
||||||
bind pager \031 previous-line # Mouse wheel
|
|
||||||
bind pager \005 next-line # Mouse wheel
|
|
||||||
bind editor <Tab> complete-query
|
|
||||||
|
|
||||||
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
|
|
||||||
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
|
||||||
macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"
|
|
||||||
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
|
|
||||||
macro index A "<limit>all\n" "show all messages (undo limit)"
|
|
||||||
|
|
||||||
# Sidebar mappings
|
|
||||||
set sidebar_visible = yes
|
|
||||||
set sidebar_width = 20
|
|
||||||
set sidebar_short_path = yes
|
|
||||||
set sidebar_next_new_wrap = yes
|
|
||||||
set mail_check_stats
|
|
||||||
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
|
||||||
bind index,pager \Ck sidebar-prev
|
|
||||||
bind index,pager \Cj sidebar-next
|
|
||||||
bind index,pager \Co sidebar-open
|
|
||||||
bind index,pager \Cp sidebar-prev-new
|
|
||||||
bind index,pager \Cn sidebar-next-new
|
|
||||||
bind index,pager B sidebar-toggle-visible
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc <<'EOF'
|
|
||||||
# Default index colors:
|
|
||||||
color index yellow default '.*'
|
|
||||||
color index_author red default '.*'
|
|
||||||
color index_number blue default
|
|
||||||
color index_subject cyan default '.*'
|
|
||||||
|
|
||||||
# New mail is boldened:
|
|
||||||
color index brightyellow black "~N"
|
|
||||||
color index_author brightred black "~N"
|
|
||||||
color index_subject brightcyan black "~N"
|
|
||||||
|
|
||||||
# Tagged mail is highlighted:
|
|
||||||
color index brightyellow blue "~T"
|
|
||||||
color index_author brightred blue "~T"
|
|
||||||
color index_subject brightcyan blue "~T"
|
|
||||||
|
|
||||||
# Other colors and aesthetic settings:
|
|
||||||
mono bold bold
|
|
||||||
mono underline underline
|
|
||||||
mono indicator reverse
|
|
||||||
mono error bold
|
|
||||||
color normal default default
|
|
||||||
color indicator brightblack white
|
|
||||||
color sidebar_highlight red default
|
|
||||||
color sidebar_divider brightblack black
|
|
||||||
color sidebar_flagged red black
|
|
||||||
color sidebar_new green black
|
|
||||||
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 brightyellow black
|
|
||||||
color hdrdefault brightgreen default
|
|
||||||
color quoted green default
|
|
||||||
color quoted1 blue default
|
|
||||||
color quoted2 cyan default
|
|
||||||
color quoted3 yellow default
|
|
||||||
color quoted4 red default
|
|
||||||
color quoted5 brightred default
|
|
||||||
color signature brightgreen default
|
|
||||||
color bold black default
|
|
||||||
color underline black default
|
|
||||||
color normal default default
|
|
||||||
|
|
||||||
# Regex highlighting:
|
|
||||||
color header blue default ".*"
|
|
||||||
color header brightmagenta default "^(From)"
|
|
||||||
color header brightcyan default "^(Subject)"
|
|
||||||
color header brightwhite default "^(CC|BCC)"
|
|
||||||
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
|
||||||
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
|
||||||
color body green default "\`[^\`]*\`" # Green text between ` and `
|
|
||||||
color body brightblue default "^# \.*" # Headings as bold blue
|
|
||||||
color body brightcyan default "^## \.*" # Subheadings as bold cyan
|
|
||||||
color body brightgreen default "^### \.*" # Subsubheadings as bold green
|
|
||||||
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
|
|
||||||
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
|
||||||
color body brightcyan default "[;:][)(|]" # emoticons
|
|
||||||
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
|
||||||
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
|
||||||
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.*"
|
|
||||||
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<>\"]"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat >> ${MUTTDIR}/muttrc <<'EOF'
|
|
||||||
source accounts/1-cyteen42.muttrc
|
|
||||||
source /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
|
||||||
#source /usr/local/share/mutt-wizard/mutt-wizard-colors.muttrc
|
|
||||||
|
|
||||||
set editor = nvim
|
|
||||||
set sort = threads
|
|
||||||
set sort_aux = reverse-last-date-received
|
|
||||||
color progress white red
|
|
||||||
|
|
||||||
|
|
||||||
#source colorschemes/neonwolf-256.neomuttrc
|
|
||||||
#source colorschemes/zenburn.neomuttrc
|
|
||||||
#source colorschemes/vombatidae.neomuttrc
|
|
||||||
source colorschemes/solarized-dark-256.neomuttrc
|
|
||||||
|
|
||||||
# for solarized:
|
|
||||||
# you must load solarized 16 colors theme BEFORE this
|
|
||||||
# you terminal 16 colors must be set to solarized theme
|
|
||||||
source powerline/powerline.neomuttrc
|
|
||||||
#source powerline/powerline-rounded.neomuttrc
|
|
||||||
|
|
||||||
# for gruvbox:
|
|
||||||
source colorschemes/colors-gruvbox-shuber.muttrc
|
|
||||||
|
|
||||||
# For neomutt uncomment this line:
|
|
||||||
source colorschemes/colors-gruvbox-shuber-extended.muttrc
|
|
||||||
|
|
||||||
|
|
||||||
# you must load gruvbox theme BEFORE this
|
|
||||||
# you terminal 16 colors must be set to gruvbox theme
|
|
||||||
#source powerline/colors/gruvbox-powerline.neomuttrc
|
|
||||||
#source powerline/powerline.neomuttrc
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# auto-generated with mutt-wizard: 'mw add' and follow the instructions
|
# auto-generated with mutt-wizard: 'mw add' and follow the instructions
|
||||||
# mailboxes populated from the email account imap server so for a clean
|
# mailboxes populated from the email account imap server so for a clean
|
||||||
# account just put in the standard =Inbox =Drafts =Trash =Sent =Junk
|
# account just put in the standard =Inbox =Drafts =Trash =Sent =Junk
|
||||||
PROFILE_NAME=example_profile
|
|
||||||
EMAIL=foobar@foo.bar
|
|
||||||
REAL_NAME="foo bar"
|
|
||||||
|
|
||||||
mkdir -p $ACCDIR/${PROFILE_NAME}
|
#mkdir -p $ACCDIR/${PROFILE_NAME}
|
||||||
|
|
||||||
cat > $ACCDIR/README <<EOF
|
#cat > $ACCDIR/README <<EOF
|
||||||
# To add additional mail accounts for mutt you can use mutt-wizard:
|
# To add additional mail accounts for mutt you can use mutt-wizard:
|
||||||
#
|
#
|
||||||
# '$ mw add'
|
# '$ mw add'
|
||||||
#
|
#
|
||||||
# and follow the prompts.
|
# and follow the prompts.
|
||||||
EOF
|
|
||||||
|
|
||||||
#cat > $ACCDIR/1-${PROFILE_NAME}.muttrc <<EOF
|
|
||||||
## vim: filetype=neomuttrc
|
|
||||||
## muttrc file for account ${PROFILE_NAME}
|
|
||||||
#set realname = ${REAL_NAME}
|
|
||||||
#set from = ${FROM}
|
|
||||||
#set sendmail = "/usr/bin/msmtp -a mutt"
|
|
||||||
#alias me ${REAL_NAME} <${EMAIL}>
|
|
||||||
#set folder = "/home/${USER_NAME}/.local/share/mail/mutt"
|
|
||||||
#set header_cache = /home/${USER_NAME}/.cache/mutt-wizard/
|
|
||||||
#set message_cachedir = /home/${USER_NAME}/.cache/mutt-wizard/
|
|
||||||
#set mbox_type = Maildir
|
|
||||||
#EOF
|
#EOF
|
||||||
|
|
||||||
mkdir -p $ACCDIR/${PROFILE_NAME}
|
|
||||||
|
|
||||||
cat > $ACCDIR/${PROFILE_NAME}.muttrc <<EOF
|
#cat >> ${MUTTDIR}/muttrc <<'EOF'
|
||||||
|
cat <<EOF | tee ${MUTTDIR}/muttrc >> ${EXAMPLES}/muttrc
|
||||||
|
source /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
||||||
|
|
||||||
|
set editor = nvim
|
||||||
|
set sort = threads
|
||||||
|
set sort_aux = reverse-last-date-received
|
||||||
|
color progress white red
|
||||||
|
|
||||||
|
source colorschemes/solarized-dark-256.neomuttrc
|
||||||
|
|
||||||
|
source fonts/powerline.neomuttrc
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
#mkdir -p $ACCDIR/${PROFILE_NAME}
|
||||||
|
|
||||||
|
## Since this is an example not a working profile it just gets copied to the examples.
|
||||||
|
cat > ${EXAMPLES}/accounts/1-${PROFILE_NAME}.muttrc <<EOF
|
||||||
# vim: filetype=neomuttrc
|
# vim: filetype=neomuttrc
|
||||||
# muttrc file for account ${PROFILE_NAME}
|
# muttrc file for account ${PROFILE_NAME}
|
||||||
set realname = ${REAL_NAME}
|
set realname = ${REAL_NAME}
|
||||||
|
|
@ -470,41 +493,98 @@ set folder = "$HOME/.local/share/mail/${PROFILE_NAME}"
|
||||||
set header_cache = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/headers
|
set header_cache = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/headers
|
||||||
set message_cachedir = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/bodies
|
set message_cachedir = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/bodies
|
||||||
set mbox_type = Maildir
|
set mbox_type = Maildir
|
||||||
|
|
||||||
bind index,pager gg noop
|
|
||||||
bind index,pager g noop
|
|
||||||
bind index,pager M noop
|
|
||||||
bind index,pager C noop
|
|
||||||
bind index gg first-entry
|
|
||||||
macro index o "<shell-escape>mailsync -V ${PROFILE_NAME}<enter>" "run mbsync to sync ${PROFILE_NAME}"
|
|
||||||
unmailboxes *
|
|
||||||
|
|
||||||
set spoolfile = "+Inbox"
|
|
||||||
set record = "+Sent"
|
|
||||||
set postponed = "+Drafts"
|
|
||||||
set trash = "+Trash"
|
|
||||||
mailboxes "=Inbox =Drafts =Trash =Sent =Junk"
|
|
||||||
macro index,pager gi "<change-folder>=Inbox<enter>" "go to inbox" # mw-autogenerated
|
|
||||||
macro index,pager Mi ";<save-message>=Inbox<enter>" "move mail to inbox" # mw-autogenerated
|
|
||||||
macro index,pager Ci ";<copy-message>=Inbox<enter>" "copy mail to inbox" # mw-autogenerated
|
|
||||||
macro index,pager gs "<change-folder>=Sent<enter>" "go to sent" # mw-autogenerated
|
|
||||||
macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent" # mw-autogenerated
|
|
||||||
macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent" # mw-autogenerated
|
|
||||||
macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts" # mw-autogenerated
|
|
||||||
macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts" # mw-autogenerated
|
|
||||||
macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts" # mw-autogenerated
|
|
||||||
macro index,pager gt "<change-folder>=Trash<enter>" "go to trash" # mw-autogenerated
|
|
||||||
macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash" # mw-autogenerated
|
|
||||||
macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash" # mw-autogenerated
|
|
||||||
macro index,pager gj "<change-folder>=Junk<enter>" "go to junk" # mw-autogenerated
|
|
||||||
macro index,pager Mj ";<save-message>=Junk<enter>" "move mail to junk" # mw-autogenerated
|
|
||||||
macro index,pager Cj ";<copy-message>=Junk<enter>" "copy mail to junk" # mw-autogenerated
|
|
||||||
macro index,pager ga "<change-folder>=Archives.2013<enter>" "go to archive" # mw-autogenerated
|
|
||||||
macro index,pager Ma ";<save-message>=Archives.2013<enter>" "move mail to archive" # mw-autogenerated
|
|
||||||
macro index,pager Ca ";<copy-message>=Archives.2013<enter>" "copy mail to archive" # mw-autogenerated
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
||||||
|
DOC_DIR=/usr/share/doc
|
||||||
|
|
||||||
|
# make a new temporary directory for this use to avoid permission issues.
|
||||||
|
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
||||||
|
mkdir -p '${BASE_TMP_DIR}'
|
||||||
|
|
||||||
|
# do your work
|
||||||
|
checkinstall -y --fstrans \
|
||||||
|
--pkgname=mutt-wizard \
|
||||||
|
--pkgversion=${VERSION}\
|
||||||
|
--pkgrelease=${RELEASE} \
|
||||||
|
--pkgarch=amd64 \
|
||||||
|
--pkggroup=admin \
|
||||||
|
--pkglicense=LICENSE \
|
||||||
|
--pkgsource=${LATEST_URL} \
|
||||||
|
--maintainer=cyteen@ring-zero.co.uk \
|
||||||
|
--requires=neomutt,isync,msmtp,pass \
|
||||||
|
--recommends=abook,nomuch,lynx,libnotify-bin,urlview \
|
||||||
|
--suggests=mailsync \
|
||||||
|
-D \
|
||||||
|
bash ${BUILD_DIR}/install.sh
|
||||||
FOE
|
FOE
|
||||||
|
|
||||||
bash ./checkinstall_it.sh
|
echo "Writing install.sh to: ${BUILD_DIR}/install.sh"
|
||||||
|
cat > ${BUILD_DIR}/install.sh << FOE
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
|
||||||
|
## Download and copy the latest version to /usr/local/bin and make executable
|
||||||
|
echo "Creating temporary working directory ${WORKDIR}"
|
||||||
|
mkdir -p ${WORKDIR}
|
||||||
|
if [ -d "${WORKDIR}" ]; then
|
||||||
|
echo "WORKDIR: ${WORKDIR} exists."
|
||||||
|
if [ -d "${WORKDIR}"/mutt-wizard ]; then
|
||||||
|
echo "Removing exist mutt-wizard directory"
|
||||||
|
echo "ERROR:"
|
||||||
|
echo "This script cannot delete this directory you will need to 'rm -rf ${WORKDIR}/mutt-wizard' from a terminal.'"
|
||||||
|
exit 1
|
||||||
|
#rm -rf ${WORKDIR}/mutt-wizard
|
||||||
|
fi
|
||||||
|
echo "Cloning new repo with:"
|
||||||
|
echo "git clone ${LATEST_URL} ${WORKDIR}"
|
||||||
|
#GIT_INDEX_FILE="${WORKDIR}/index" git clone ${LATEST_URL} ${WORKDIR}
|
||||||
|
git clone ${LATEST_URL} ${WORKDIR}/mutt-wizard
|
||||||
|
cd ${WORKDIR}/mutt-wizard
|
||||||
|
make install
|
||||||
|
fi
|
||||||
|
|
||||||
|
## split the existing mutt-wizard.muttrc into two to separate the colours from everything else so other colourschemes can be used.
|
||||||
|
|
||||||
|
if [ -f "${MUTTWIZARDCONF}"/mutt-wizard.muttrc ]; then
|
||||||
|
|
||||||
|
cd ${MUTTWIZARDCONF} && \
|
||||||
|
csplit --suppress-matched ${MUTTWIZARDCONF}/mutt-wizard.muttrc '/^\(# Default index colors:\).*/' && \
|
||||||
|
if [ -f ${MUTTWIZARDCONF}/xx00 ]; then
|
||||||
|
echo "Moving csplit ${BUILD_DIR}/xx00 to ${MUTTWIZARDCONF}/mutt-wizard.muttrc"
|
||||||
|
mv ${MUTTWIZARDCONF}/xx00 ${MUTTWIZARDCONF}/mutt-wizard.muttrc | tee ${EXAMPLES}/mutt-wizard.muttrc
|
||||||
|
else
|
||||||
|
echo "ERROR: split file is missing."
|
||||||
|
fi
|
||||||
|
if [ -f ${MUTTWIZARDCONF}/xx01 ]; then
|
||||||
|
echo "Moving csplit ${BUILD_DIR}/xx01 to ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc"
|
||||||
|
mv ${MUTTWIZARDCONF}/xx01 ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc | tee ${EXAMPLES}/mutt-wizard-colors.muttrc
|
||||||
|
else
|
||||||
|
echo "ERROR: split file is missing."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${MUTTWIZARDCONF}/mutt-wizard.muttrc is missing."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Copy the local contents of the skel directory to /etc/skel
|
||||||
|
if [ -d "${BUILD_DIR}"/skel ]; then
|
||||||
|
echo "Copying files to /etc/skel from ${BUILD_DIR}/skel"
|
||||||
|
cp -dr ${BUILD_DIR}/skel/.config/ /etc/skel/
|
||||||
|
else
|
||||||
|
echo "Missing ${BUILD_DIR}/skel"
|
||||||
|
fi
|
||||||
|
FOE
|
||||||
|
|
||||||
|
bash ${BUILD_DIR}/checkinstall_it.sh
|
||||||
#mbsync ${PROFILE_NAME}
|
#mbsync ${PROFILE_NAME}
|
||||||
|
|
||||||
|
dpkg -c /var/tmp/${PROJECT}-${RELEASE}/mutt-wizard_${VERSION}-${RELEASE}_amd64.deb
|
||||||
|
|
||||||
|
#lsd --tree /usr/share/doc/mutt-wizard/
|
||||||
|
|
||||||
|
#lsd --tree /var/tmp/build_mutt-wizard/skel/.config/mutt
|
||||||
|
|
||||||
|
#lsd --tree /etc/skel/.config/mutt
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue