From da6b920b20e3f311feed67ef4328e5ece8b96afb Mon Sep 17 00:00:00 2001 From: Jeff LANCE Date: Sun, 21 Feb 2021 01:15:09 +0100 Subject: [PATCH] update and clean --- .gitmodules | 3 + conf.d/alot/config | 10 + conf.d/astroid/config | 178 ++++++++++ conf.d/astroid/hooks/move_mail | 67 ++++ conf.d/astroid/hooks/open_attachment | 30 ++ conf.d/astroid/hooks/purge_trash | 20 ++ conf.d/astroid/hooks/refresh | 17 + conf.d/astroid/hooks/spam | 43 +++ conf.d/astroid/hooks/tag_toggle_mail | 15 + conf.d/astroid/hooks/tag_toggle_thread | 15 + conf.d/astroid/hooks/toggle_spam | 44 +++ conf.d/astroid/hooks/toggle_trash | 40 +++ conf.d/astroid/hooks/trash | 33 ++ conf.d/astroid/hooks/unspam | 45 +++ conf.d/astroid/hooks/untrash | 35 ++ conf.d/astroid/keybindings | 146 ++++++++ conf.d/astroid/keybindings.default | 201 +++++++++++ conf.d/astroid/plugins/astroid-plugin-avatar | 1 + conf.d/astroid/plugins/astroid-plugin-seccomp | 1 + .../astroid/plugins/astroid-syntax-highlight | 1 + conf.d/astroid/poll.sh | 102 ++++++ conf.d/astroid/searches | 334 ++++++++++++++++++ conf/mbsyncrc | 327 +++++++++++++++++ conf/notmuch-config | 25 ++ meta/profiles/linux-desktop | 4 +- meta/tasks/{ => _old}/asymptote.yaml | 0 meta/tasks/{ => _old}/awesome.yaml | 0 meta/tasks/aacskeys.yaml | 10 +- meta/tasks/abcde.yaml | 4 +- meta/tasks/ansiweather.yaml | 3 +- meta/tasks/beets.yaml | 3 +- meta/tasks/conky.yaml | 3 +- meta/tasks/editorconfig.yaml | 3 +- meta/tasks/elinks.yaml | 3 +- meta/tasks/emacs.yaml | 6 +- meta/tasks/figlet.yaml | 3 +- meta/tasks/fonts-linux.yaml | 7 +- meta/tasks/fonts-macos.yaml | 1 - meta/tasks/gitignore.global.yaml | 6 +- meta/tasks/kitty.yaml | 9 +- meta/tasks/latex.yaml | 3 +- meta/tasks/lgogdownloader.yaml | 3 +- meta/tasks/mail.yaml | 10 + meta/tasks/mopidy.yaml | 3 +- meta/tasks/ncmpcpp.yaml | 3 +- meta/tasks/nvim.yaml | 3 +- meta/tasks/polybar.yaml | 3 +- meta/tasks/slate.yaml | 6 +- meta/tasks/texstudio.yaml | 2 - meta/tasks/tmux.yaml | 6 +- meta/tasks/vim.yaml | 2 - meta/tasks/x.yaml | 12 +- meta/tasks/zim.yaml | 6 - meta/tasks/zim.yaml.old | 18 - meta/tasks/zsh.yaml | 39 +- 55 files changed, 1808 insertions(+), 109 deletions(-) create mode 100644 conf.d/alot/config create mode 100644 conf.d/astroid/config create mode 100755 conf.d/astroid/hooks/move_mail create mode 100755 conf.d/astroid/hooks/open_attachment create mode 100755 conf.d/astroid/hooks/purge_trash create mode 100755 conf.d/astroid/hooks/refresh create mode 100755 conf.d/astroid/hooks/spam create mode 100755 conf.d/astroid/hooks/tag_toggle_mail create mode 100755 conf.d/astroid/hooks/tag_toggle_thread create mode 100755 conf.d/astroid/hooks/toggle_spam create mode 100755 conf.d/astroid/hooks/toggle_trash create mode 100755 conf.d/astroid/hooks/trash create mode 100755 conf.d/astroid/hooks/unspam create mode 100755 conf.d/astroid/hooks/untrash create mode 100644 conf.d/astroid/keybindings create mode 100644 conf.d/astroid/keybindings.default create mode 160000 conf.d/astroid/plugins/astroid-plugin-avatar create mode 160000 conf.d/astroid/plugins/astroid-plugin-seccomp create mode 160000 conf.d/astroid/plugins/astroid-syntax-highlight create mode 100755 conf.d/astroid/poll.sh create mode 100644 conf.d/astroid/searches create mode 100644 conf/mbsyncrc create mode 100644 conf/notmuch-config rename meta/tasks/{ => _old}/asymptote.yaml (100%) rename meta/tasks/{ => _old}/awesome.yaml (100%) create mode 100644 meta/tasks/mail.yaml delete mode 100644 meta/tasks/zim.yaml delete mode 100644 meta/tasks/zim.yaml.old diff --git a/.gitmodules b/.gitmodules index 1af14d0..9598d4f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,6 @@ path = dotbot url = https://github.com/anishathalye/dotbot ignore = dirty +[submodule "conf.d/astroid/plugins/astroid-plugin-avatar"] + path = conf.d/astroid/plugins/astroid-plugin-avatar + url = https://github.com/astroidmail/astroid-plugin-avatar.git diff --git a/conf.d/alot/config b/conf.d/alot/config new file mode 100644 index 0000000..73aaad4 --- /dev/null +++ b/conf.d/alot/config @@ -0,0 +1,10 @@ +[accounts] + [[work]] + realname = Jeff LANCE + address = jeff.lance@mala.fr + alias_regexp = \+@mala.fr + # gpg_key = D7D6C5AA + sendmail_command = msmtp --account=jeff.lance@mala.fr -t + sent_box = maildir:///home/jeff/Mail/jeff.lance@mala.fr/sent + # ~ expansion also works + draft_box = maildir://~/Mail/jeff.lance@mala.fr/drafts diff --git a/conf.d/astroid/config b/conf.d/astroid/config new file mode 100644 index 0000000..0704b51 --- /dev/null +++ b/conf.d/astroid/config @@ -0,0 +1,178 @@ +{ + "astroid": { + "config": { + "version": "11" + }, + "notmuch_config": "\/home\/jeff\/.notmuch-config", + "debug": { + "dryrun_sending": "false" + }, + "hints": { + "level": "-1" + }, + "log": { + "syslog": "true", + "stdout": "true", + "level": "debug" + } + }, + "accounts": { + "account1": { + "name": "Jeff LANCE", + "email": "jeff.lance@mala.fr", + "gpgkey": "", + "always_gpg_sign": "false", + "sendmail": "msmtp -a jeff.lance@mala.fr --read-envelope-from -i -t", + "default": "true", + "save_sent": "true", + "save_sent_to": "\/home\/jeff\/Mail\/jeff.lance@mala.fr\/sent\/cur\/", + "additional_sent_tags": "", + "save_drafts_to": + "\/home\/jeff\/Mail\/jeff.lance@mala.fr\/drafts\/cur\/", + "signature_separate": "false", + "signature_file": "", + "signature_file_markdown": "", + "signature_default_on": "true", + "signature_attach": "false", + "select_query": "" + }, + "account2": { + "name": "Maths LANCE", + "email": "mathslance@gmail.com", + "gpgkey": "", + "always_gpg_sign": "false", + "sendmail": "msmtp -a mathslance@gmail.com --read-envelope-from -i -t", + "default": "false", + "save_sent": "true", + "save_sent_to": "\/home\/jeff\/Mail\/mathslance@gmail.com\/sent\/cur\/", + "additional_sent_tags": "", + "save_drafts_to": "\/home\/jeff\/Mail\/mathslance@gmail.com\/drafts\/cur\/", + "signature_separate": "false", + "signature_file": "", + "signature_file_markdown": "", + "signature_default_on": "true", + "signature_attach": "false", + "select_query": "" + }, + "account3": { + "name": "Games", + "email": "games@mala.fr", + "gpgkey": "", + "always_gpg_sign": "false", + "sendmail": "msmtp -a games@mala.fr --read-envelope-from -i -t", + "default": "true", + "save_sent": "true", + "save_sent_to": "\/home\/jeff\/Mail\/games@mala.fr\/sent\/cur\/", + "additional_sent_tags": "", + "save_drafts_to": + "\/home\/jeff\/Mail\/games@mala.fr\/drafts\/cur\/", + "signature_separate": "false", + "signature_file": "", + "signature_file_markdown": "", + "signature_default_on": "true", + "signature_attach": "false", + "select_query": "" + } + }, + "startup": { + "queries": { + "INBOX": "tag:inbox", + "IMPORTANT": "tag:flagged", + "Jeff LANCE (MaLa)": "tag:inbox folder:/jeff.lance@mala.fr/", + "Maths LANCE (GMail)": "tag:inbox folder:/mathslance@gmail.com/", + "Games (MaLa)": "tag:inbox folder:/games@mala.fr/" + } + }, + "terminal": { + "height": "10", + "font_description": "default" + }, + "thread_index": { + "page_jump_rows": "6", + "sort_order": "newest", + "cell": { + "font_description": "default", + "line_spacing": "5", + "date_length": "10", + "message_count_length": "4", + "authors_length": "20", + "subject_color": "#807d74", + "subject_color_selected": "#000000", + "background_color_selected": "", + "background_color_marked": "#fff584", + "background_color_marked_selected": "#bcb559", + "tags_length": "80", + "tags_upper_color": "#e5e5e5", + "tags_lower_color": "#333333", + "tags_alpha": "0.5", + "hidden_tags": "attachment,flagged,unread" + } + }, + "general": { + "time": { + "clock_format": "local", + "same_year": "%b %-e", + "diff_year": "%x" + } + }, + "editor": { + "cmd": "gnvim %1", + "external_editor": "true", + "charset": "utf-8", + "save_draft_on_force_quit": "true", + "attachment_words": "joins, joint, ci-joint", + "attachment_directory": "~", + "markdown_processor": "cmark" + }, + "mail": { + "reply": { + "quote_line": "Message de %1, du %2:", + "mailinglist_reply_to_sender": "true" + }, + "forward": { + "quote_line": "Transfert du message de %1, du %2:", + "disposition": "inline" + }, + "sent_tags": "sent", + "message_id_fqdn": "", + "message_id_user": "", + "user_agent": "default", + "send_delay": "2", + "close_on_success": "false", + "format_flowed": "false" + }, + "poll": { + "interval": "600", + "always_full_refresh": "true" + }, + "attachment": { + "external_open_cmd": "/home/jeff/.config/astroid/hooks/open_attachment" + }, + "thread_view": { + "open_html_part_external": "false", + "preferred_type": "plain", + "preferred_html_only": "true", + "allow_remote_when_encrypted": "true", + "open_external_link": "xdg-open", + "default_save_directory": "~", + "indent_messages": "true", + "gravatar": { + "enable": "true" + }, + "mark_unread_delay": "3", + "expand_flagged": "true" + }, + "crypto": { + "gpg": { + "path": "gpg2", + "always_trust": "true", + "enabled": "false" + } + }, + "saved_searches": { + "show_on_startup": "false", + "save_history": "true", + "history_lines_to_show": "15", + "history_lines": "1000" + } +} diff --git a/conf.d/astroid/hooks/move_mail b/conf.d/astroid/hooks/move_mail new file mode 100755 index 0000000..52aa159 --- /dev/null +++ b/conf.d/astroid/hooks/move_mail @@ -0,0 +1,67 @@ +#!/bin/bash +# File : move_mail +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 07.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +# Some constants +MAILBOX="${HOME}/Mail/jeff.lance@mala.fr" +ARCHIVES="archives" +CONFIG_AFEW="/home/jeff/.config/afew/config" + +MOVER_LINE="jeff.lance@mala.fr/inbox = 'tag:spam':jeff.lance@mala.fr/junk 'tag:deleted':jeff.lance@mala.fr/trash" + +# Set thread ID and message ID from args +TID=$1 +MID=$2 + +# Get mail file +FILE=$(notmuch search --exclude=false --output=files\ + "thread:${TID}" "${MID:+id:$MID}") + + +DEST_TAG="archive" +CURRENT="" +TAG="" + +while [ ${DEST_TAG} ]; do + DEST_TAG=$(ls -1 --group-directories-first \ + -I 'cur' -I 'new' -I 'tmp' \ + "${MAILBOX}/${ARCHIVES}${CURRENT}" \ + | rofi -dmenu -p 'move mail to') + + CURRENT="${CURRENT}/${DEST_TAG}" + + # Create the string to put in afew + MOVER_LINE_UPD="jeff.lance@mala.fr/inbox = 'tag:spam':jeff.lance@mala.fr/junk \ + 'tag:deleted':jeff.lance@mala.fr/trash 'tag:${DEST_TAG}':jeff.lance@mala.fr/${ARCHIVES}${CURRENT}" + + if ! [ -n "$(ls -I 'cur' -I 'new' -I 'tmp' ${MAILBOX}/${ARCHIVES}${CURRENT})" ]; then + # If there's more subdir in current place, set current place as our tag + TAG=${DEST_TAG} + unset DEST_TAG + fi +done + +# Set archive tag on mails and unset inbox tag +notmuch tag -inbox +archive +${TAG} -- "thread:${TID}" "${MID:+id:$MID}" + +# Let's format the strings for the sed command +MOVER_LINE=$(echo ${MOVER_LINE} | sed 's,/,\\/,g' | sed 's, ,\\ ,g') +MOVER_LINE_UPD=$(echo ${MOVER_LINE_UPD} | sed 's,/,\\/,g' | sed 's, ,\\ ,g') + +sed -i "s,${MOVER_LINE},${MOVER_LINE_UPD}," "${CONFIG_AFEW}" + +# Use afew to move mails +afew --move-mails + +# Get back to the old afew +sed -i "s,${MOVER_LINE_UPD},${MOVER_LINE}," "${CONFIG_AFEW}" + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/open_attachment b/conf.d/astroid/hooks/open_attachment new file mode 100755 index 0000000..e5b1ca2 --- /dev/null +++ b/conf.d/astroid/hooks/open_attachment @@ -0,0 +1,30 @@ +#!/bin/bash +# File : open_attachment +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 04.05.2020 +# Last Modified By : Jeff LANCE +# +# check for viruses and wait for file to be closed and for xdg-open to finish +# +# this script requires: libnotify, exo, clamav, inotify-tools + +# test for viruses (comment out this section if things go too slow and +# you are feeling reckless / trusting). +clamscan "$1" &>/dev/null + +if [ $? -eq 1 ]; then + notify-send "Virus detected" "Virus found in attachment, not opening!" --icon=dialog-warning + exit 1 +fi + +inotifywait -e close "$1" & +ip=$! + +# open file (you can replace this with xdg-open) +xdg-open "$1" + +wait $ip # wait for file to be closed + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/purge_trash b/conf.d/astroid/hooks/purge_trash new file mode 100755 index 0000000..b165455 --- /dev/null +++ b/conf.d/astroid/hooks/purge_trash @@ -0,0 +1,20 @@ +#!/bin/bash +# File : purge_trash +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 04.05.2020 +# Last Modified By : Jeff LANCE + +echo "[ASTROID]: start $(basename $0)" + +notmuch search --output=files --format=text0 \ + -- tag:deleted folder:"/trash/" \ + | xargs -0 --no-run-if-empty rm + +notmuch new +mbsync -a + +echo "[ASTROID]: end $(basename $0)" + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/refresh b/conf.d/astroid/hooks/refresh new file mode 100755 index 0000000..51208d7 --- /dev/null +++ b/conf.d/astroid/hooks/refresh @@ -0,0 +1,17 @@ +#!/bin/bash +# File : refresh +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 05.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +notmuch tag --input=${HOME}/Mail/.notmuch/tagupdate +afew --move-mails +astroid --refresh 0 + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/spam b/conf.d/astroid/hooks/spam new file mode 100755 index 0000000..b3611b6 --- /dev/null +++ b/conf.d/astroid/hooks/spam @@ -0,0 +1,43 @@ +#!/bin/bash +# File : spam +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 04.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +# All directory names relative to mail folder's root +DIR_JUNK="junk" # Junk directory path +DIR_INBOX="inbox" # Inbox directory path + +# Set thread ID and message ID from args +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:${TID}" "${MID:+id:$MID}") + +# Set junk tag on mails and unset inbox tag +# notmuch tag --remove-all -- "thread:${TID}" "${MID:+id:$MID}" +notmuch tag -inbox +spam -- "thread:${TID}" "${MID:+id:$MID}" + +# Set mail as spam in bogofilter database +echo ${FILE} | bogofilter -s + +# # if mail is in inbox dir +# if $(echo $FILE | grep -q $DIR_INBOX); then +# # replace inbox dir with spam dir +# FILE_NEW=$(echo $FILE | sed "s|$DIR_INBOX/|$DIR_JUNK/|") +# # move from inbox to spam dir +# echo "Moving $FILE to $FILE_NEW" +# mv "$FILE" "$FILE_NEW" +# fi + +# Use afew to move junk mail to junk directory +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/tag_toggle_mail b/conf.d/astroid/hooks/tag_toggle_mail new file mode 100755 index 0000000..f862254 --- /dev/null +++ b/conf.d/astroid/hooks/tag_toggle_mail @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# get a tag as first argument and message id as second argument +# + +# check if the message matches the tag +if [[ $(notmuch search id:$2 and tag:$1) ]]; then + echo "removing tag: $1 from id:$2" + # remove the tag + notmuch tag -$1 id:$2 +else + echo "adding tag: $1 to id:$2" + # add the tag + notmuch tag +$1 id:$2 +fi diff --git a/conf.d/astroid/hooks/tag_toggle_thread b/conf.d/astroid/hooks/tag_toggle_thread new file mode 100755 index 0000000..3a0002a --- /dev/null +++ b/conf.d/astroid/hooks/tag_toggle_thread @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# +# get a tag as first argument and thread id as second argument +# + +# check if the thread matches the tag +if [[ $(notmuch search thread:$2 and tag:$1) ]]; then + echo "removing tag: $1 from thread:$2" + # remove the tag + notmuch tag -$1 thread:$2 +else + echo "adding tag: $1 to thread:$2" + # add the tag + notmuch tag +$1 thread:$2 +fi diff --git a/conf.d/astroid/hooks/toggle_spam b/conf.d/astroid/hooks/toggle_spam new file mode 100755 index 0000000..60c5e3e --- /dev/null +++ b/conf.d/astroid/hooks/toggle_spam @@ -0,0 +1,44 @@ +#!/bin/bash +# File : toggle_spam +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 07.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +# All directory names relative to mail folder's root +DIR_JUNK="junk" # Junk directory path +DIR_INBOX="inbox" # Inbox directory path + +# Get thread ID and message ID +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:${TID}" "${MID:+id:$MID}") + +# Unspam it if it's spam +if [[ $(notmuch search "thread:${TID}" "${MID:+id:$MID}" \ + and tag:spam \ + and folder:/${DIR_JUNK}/) ]]; then + # unspam mail and reset inbox status + notmuch tag -spam +inbox -- "thread:${TID}" "${MID:+id:$MID}" + # Set mail as ham for bogofilter + echo "Unspam mail: ${TID}" + echo ${FILE} | bogofilter -Sn -l +else + # Spam it + notmuch tag -inbox +spam -- "thread:${TID}" "${MID:+id:$MID}" + # Set mail as spam for bogofilter + echo "Spam mail: ${TID}" + echo ${FILE} | bogofilter -Ns -l +fi + +# Move mail with afew +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/toggle_trash b/conf.d/astroid/hooks/toggle_trash new file mode 100755 index 0000000..6abcecb --- /dev/null +++ b/conf.d/astroid/hooks/toggle_trash @@ -0,0 +1,40 @@ +#!/bin/bash +# File : toggle_trash +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 07.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +echo "[ASTROID] $(basename $0)" + +# All directory names relative to mail folder's root +DIR_TRASH="trash" # Trash directory path +DIR_INBOX="inbox" # Inbox directory path + +# Get thread ID and message ID +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:$TID" "${MID:+id:$MID}") + +# Only do something if mail was deleted +if [[ $(notmuch search "thread:$TID" "${MID:+id:$MID}" and tag:deleted and folder:/${DIR_TRASH}/) ]]; then + # untrash mail and reset inbox status + echo "Untrash mail: ${TID}" + notmuch tag -deleted +inbox -- "thread:$TID" "${MID:+id:$MID}" +else + # Trash mail and unset inbox + echo "Trash mail: ${TID}" + notmuch tag -inbox +deleted -- "thread:${TID}" "${MID:+id:$MID}" +fi + +# Move mail with afew +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/trash b/conf.d/astroid/hooks/trash new file mode 100755 index 0000000..78f9d2c --- /dev/null +++ b/conf.d/astroid/hooks/trash @@ -0,0 +1,33 @@ +#!/bin/bash +# File : trash +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 06.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +echo "[ASTROID] $(basename $0)" + +# All directory names relative to mail folder's root +DIR_INBOX="inbox" # Inbox directory path +DIR_TRASH="trash" # Trash directory path + +# Get thread ID and message ID +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:${TID}" "${MID:+id:$MID}") + +# Trash mail and unset inbox +# notmuch tag --remove-all -- "thread:${TID}" "${MID:+id:$MID}" +notmuch tag -inbox +deleted -- "thread:${TID}" "${MID:+id:$MID}" + +# Move mail with afew +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/unspam b/conf.d/astroid/hooks/unspam new file mode 100755 index 0000000..bb3f8fb --- /dev/null +++ b/conf.d/astroid/hooks/unspam @@ -0,0 +1,45 @@ +#!/bin/bash +# File : unspam +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 04.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +# All directory names relative to mail folder's root +DIR_JUNK="junk" # Junk directory path +DIR_INBOX="inbox" # Inbox directory path + +# Get thread ID and message ID +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:${TID}" "${MID:+id:$MID}") + +# Only do something if mail is spam +if [[ $(notmuch search "thread:${TID}" "${MID:+id:$MID}" and tag:spam) ]]; then + # unspam mail and reset inbox status + notmuch tag -spam +inbox -- "thread:${TID}" "${MID:+id:$MID}" +fi + +# Delete mail from bogofilter spam database +echo ${FILE} | bogofilter -n + +# # If mail is in spam dir +# if $(echo ${FILE} | grep -q ${DIR_JUNK}); then +# # replace spam dir with inbox dir +# FILE_NEW=$(echo $FILE | sed "s|$DIR_JUNK/|$DIR_INBOX/|") +# # move from spam dir to inbox +# echo "Moving $FILE to $FILE_NEW" +# mv "$FILE" "$FILE_NEW" +# fi + +# Move mail with afew +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/hooks/untrash b/conf.d/astroid/hooks/untrash new file mode 100755 index 0000000..0cfe09a --- /dev/null +++ b/conf.d/astroid/hooks/untrash @@ -0,0 +1,35 @@ +#!/bin/bash +# File : untrash +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 04.05.2020 +# Last Modified By : Jeff LANCE +# +# $1 = message id + +echo "[ASTROID] $(basename $0)" + +# All directory names relative to mail folder's root +DIR_TRASH="trash" # Trash directory path +DIR_INBOX="inbox" # Inbox directory path + +# Get thread ID and message ID +TID=$1 +MID=$2 + +FILE=$(notmuch search --exclude=false --output=files\ + "thread:$TID" "${MID:+id:$MID}") + +# Only do something if mail was deleted +if [[ $(notmuch search "thread:$TID" "${MID:+id:$MID}" and tag:deleted and folder:/${DIR_TRASH}/) ]]; then + # untrash mail and reset inbox status + notmuch tag -deleted +inbox -- "thread:$TID" "${MID:+id:$MID}" +fi + +# Move mail with afew +afew --move-mails + +exit 0 + + +# vim:ft=sh diff --git a/conf.d/astroid/keybindings b/conf.d/astroid/keybindings new file mode 100644 index 0000000..0dc7afe --- /dev/null +++ b/conf.d/astroid/keybindings @@ -0,0 +1,146 @@ +# File : keybindings +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 07.05.2020 +# Last Modified By : Jeff LANCE + + +######## +# MAIN # +######## +# Start manual poll +main_window.poll=C-r +main_window.toggle_auto_poll=P + +### Searching in main window +main_window.search_tag=? +main_window.search=/ +main_window.show_help=h + +# Refresh +thread_index.run(hooks::refresh)=F5 + +############## +# NAVIGATION # +############## + +main_window.next_page=Page_Up +main_window.previous_page=Page_Down +main_window.open_new_window=C-n +main_window.jump_to_page= + +help.up=Up +Help.down=Down +help.page_up=Page_Up +help.page_down=Page_Down +help.next_page=C-Page_Up +help.previous_page=C-Page_Down +help.page_top=Home +help.page_end=End + +thread_view.up=Up +thread_view.down=Down +thread_view.page_up=Page_Up +thread_view.page_down=Page_Down +thread_view.next_page=C-Page_Up +thread_view.previous_page=C-Page_Down +thread_view.page_top=Home +thread_view.page_end=End + +thread_index.up=Up +thread_index.down=Down +thread_index.page_up=Page_Up +thread_index.page_down=Page_Down +thread_index.next_page=C-Page_Up +thread_index.previous_page=C-Page_Down +thread_index.page_top=Home +thread_index.page_end=End + +### undo +thread_index.undo=u + +### replying, composing, etc +main_window.new_mail=n + +edit_message.edit=e +edit_message.send=s +edit_message.cancel=C-c +edit_message.view_raw=v +edit_message.cycle_from=f +edit_message.attach=a +edit_messsage.attach_mids=M-a +edit_message.save_draft=C-s +edit_message.delete_draft=Delete +edit_message.toggle_signature=S +edit_message.toggle_markdown=M +edit_message.toggle_encrypt=E + +thread_index.reply= +thread_index.reply_all=M-r +thread_index.reply_sender=r +thread_index.reply_mailinglist=M-R +thread_index.edit_draft=e + +thread_view.reply= +thread_view.reply_all=R +thread_view.reply_sender=r +thread_view.reply_mailinglist=M-r +thread_view.edit_draft=e +thread_view.multi.toggle=Space # Toggle marked, default: t +thread_view.next_element=Tab +thread_view.previous_element=ISO_Left_Tab +thread_view.save=C-s # Save attachment or message, default: s +thread_view.save_all_attachments=C-S # Save all attachments, default: S + +### tagging, etc +thread_index.mute= +thread_index.archive=I # Toggle 'inbox' tag on thread, default: a +thread_index.unread=U # Toggle 'unread' tag on thread, default: N +thread_index.multi.archive=I +thread_index.multi.mark_unread=U # Toggle unread, default: N +thread_view.archive_thread=I # Toggle 'inbox' tag on the whole thread, default: a +thread_view.toggle_unread=U # Toggle the unread tag on the message, default: N + +### move to spam / remove from spam +# old version with two different hooks +thread_index.run(hooks::spam %1)=s +thread_index.run(hooks::unspam %1)=M-s +thread_view.run(hooks::spam %1 %2)=s +thread_view.run(hooks::unspam %1 %2)=M-s +# new version with a toggle hook +# thread_index.run(hooks::toggle_spam %1, hooks::toggle_spam %1)=S +# thread_view.run(hooks::toggle_spam %1 %2, hooks::toggle_spam %1 %2)=S + +### move to trash / remove from trash +# old version with two different hooks +thread_index.run(hooks::trash %1)=d +thread_index.run(hooks::trash %1)=Delete +thread_index.run(hooks::untrash %1)=M-d +thread_view.run(hooks::trash %1 %2)=d +thread_view.run(hooks::trash %1 %2)=Delete +thread_view.run(hooks::untrash %1 %2)=M-d +# new version with a toggle hook +# thread_index.run(hooks::toggle_trash %1, hooks::toggle_trash %1)=Delete +# thread_view.run(hooks::toggle_trash %1 %2, hooks::toggle_trash %1 %2)=Delete + +thread_index.run(hooks::move_mail %1)=C-m +thread_view.run(hooks::move_mail %1 %2)=C-m + +### delete +# thread_view.delete=C-Delete +# thread_index.delete=C-Delete +thread_index.run(hooks::purge_trash)=M-Delete + +### printing +thread_view.multi.print=C-p +thread_view.print=C-p + +### closing app, tabs +main_window.quit_ask=q # Quit astroid, default: q +main_window.quit=Q # Quit astroid (without asking), default: Q +main_window.close_page=C-w # Close mode (or window if other windows are open), default: C-w +main_window.close_page_force=C-W # Force close mode (or window if other windows are open), default: C-W +thread_index.close_pane=C-w # Close thread view pane if open, default: C-w + + +# vim:ft=sh diff --git a/conf.d/astroid/keybindings.default b/conf.d/astroid/keybindings.default new file mode 100644 index 0000000..d5320ba --- /dev/null +++ b/conf.d/astroid/keybindings.default @@ -0,0 +1,201 @@ +# main_window.quit_ask=q # Quit astroid, default: q +# main_window.quit=Q # Quit astroid (without asking), default: Q +# main_window.next_page=l # Next page, default: l, "b" +# main_window.previous_page=h # Previous page, default: h, "B" +# main_window.jump_to_page_1=M-1 # Jump to page 1, default: M-1 +# main_window.jump_to_page_2=M-2 # Jump to page 2, default: M-2 +# main_window.jump_to_page_3=M-3 # Jump to page 3, default: M-3 +# main_window.jump_to_page_4=M-4 # Jump to page 4, default: M-4 +# main_window.jump_to_page_5=M-5 # Jump to page 5, default: M-5 +# main_window.jump_to_page_6=M-6 # Jump to page 6, default: M-6 +# main_window.jump_to_page_7=M-7 # Jump to page 7, default: M-7 +# main_window.jump_to_page_8=M-8 # Jump to page 8, default: M-8 +# main_window.jump_to_page_9=M-9 # Jump to page 9, default: M-9 +# main_window.jump_to_page_0=M-0 # Jump to page 0, default: M-0 +# main_window.close_page=C-w # Close mode (or window if other windows are open), default: C-w +# main_window.close_page_force=C-W # Force close mode (or window if other windows are open), default: C-W +# main_window.search=o # Search, default: o +# main_window.show_saved_searches=M-s # Show saved searches, default: M-s +# main_window.search_tag=L # Search for tag:, default: L +# main_window.show_help=Key (GDK_KEY_question) # Show help, default: Key (GDK_KEY_question) +# main_window.show_log=z # Show log window, default: z +# main_window.undo=u # Undo last action, default: u +# main_window.new_mail=m # Compose new mail, default: m +# main_window.poll=P # Start manual poll, default: P +# main_window.toggle_auto_poll=M-p # Toggle auto poll, default: M-p +# main_window.cancel_poll=C-c # Cancel ongoing poll, default: C-c +# main_window.open_new_window=C-o # Open new main window, default: C-o +# main_window.clipboard=\" # Set target clipboard, default: \" +# main_window.clipboard.clipboard=+ # Set target clipboard to CLIPBOARD (default), default: + +# main_window.clipboard.primary=* # Set target clipboard to PRIMARY, default: * +# main_window.open_terminal=| # Open terminal, default: | +# edit_message.edit=Key (GDK_KEY_Return) # Edit message in editor, default: Key (GDK_KEY_Return), Key (GDK_KEY_KP_Enter) +# edit_message.send=y # Send message, default: y +# edit_message.cancel=C-c # Cancel sending message (unreliable), default: C-c +# edit_message.view_raw=V # View raw message, default: V +# edit_message.cycle_from=f # Cycle through From selector, default: f +# edit_message.attach=a # Attach file, default: a +# edit_messsage.attach_mids=A # Attach messages by mids, default: A +# edit_message.save_draft=s # Save draft, default: s +# edit_message.delete_draft=D # Delete draft, default: D +# edit_message.toggle_signature=S # Toggle signature, default: S +# edit_message.toggle_markdown=M # Toggle markdown, default: M +# edit_message.toggle_encrypt=E # Toggle encryption and signature, default: E +# help.down=j # Scroll down, default: j, Key("C-j"), Key (true, false, (guint) GDK_KEY_Down), Key(GDK_KEY_Down) +# help.up=k # Scroll up, default: k, Key ("C-k"), Key (true, false, (guint) GDK_KEY_Up), Key (GDK_KEY_Up) +# help.page_up=K # Page up, default: K, Key (GDK_KEY_Page_Up) +# help.page_down=J # Page down, default: J, Key (GDK_KEY_Page_Down) +# help.page_top=1 # Scroll to top, default: 1, Key (GDK_KEY_Home) +# help.page_end=0 # Scroll to end, default: 0, Key (GDK_KEY_End) +# reply.cycle_reply_to=r # Cycle through reply selector, default: r +# reply.open_reply_to=R # Open reply selector, default: R +# raw.down=j # Move down, default: j, Key (GDK_KEY_Down) +# raw.page_down=J # Page down, default: J +# raw.up=k # Move up, default: k, Key (GDK_KEY_Up) +# raw.page_up=K # Page up, default: K +# raw.home=1 # Scroll home, default: 1, Key (GDK_KEY_Home) +# raw.end=0 # Scroll to end, default: 0, Key (GDK_KEY_End) +# pane.swap_focus=Key (false, true, (guint) GDK_KEY_space) # Swap focus to other pane if open, default: Key (false, true, (guint) GDK_KEY_space) +# searches.down=j # Move cursor down, default: j, Key (GDK_KEY_Down) +# searches.up=k # Move cursor up, default: k, Key (GDK_KEY_Up) +# searches.save=s # Save recent query as saved search, default: s +# searches.delete=d # Delete saved query, default: d +# searches.clear_history=C # Clear search history, default: C +# searches.page_down=J # Page down, default: J +# searches.page_up=K # Page up, default: K +# searches.home=1 # Scroll home, default: 1, Key (GDK_KEY_Home) +# searches.end=0 # Scroll to end, default: 0, Key (GDK_KEY_End) +# searches.next_unread=Key (GDK_KEY_Tab) # Jump to next unread thread, default: Key (GDK_KEY_Tab) +# searches.previous_unread=Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) # Jump to previous unread thread, default: Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) +# searches.open=Key (GDK_KEY_Return) # Open query, default: Key (GDK_KEY_Return), Key (GDK_KEY_KP_Enter) +# searches.show_all_history=! # Show all history lines, default: ! +# log.down=j # Move cursor down, default: j, Key (GDK_KEY_Down) +# log.up=k # Move cursor up, default: k, Key (GDK_KEY_Up) +# log.page_down=J # Page down, default: J +# log.page_up=K # Page up, default: K +# log.home=1 # Scroll home, default: 1, Key (GDK_KEY_Home) +# log.end=0 # Scroll to end, default: 0, Key (GDK_KEY_End) +# thread_view.reload=$ # Reload everything, default: $ +# thread_view.show_web_inspector=C-I # Show web inspector, default: C-I +# thread_view.down=j # Scroll down or move focus to next element, default: j +# thread_view.next_element=C-j # Move focus to next element, default: C-j +# thread_view.scroll_down=J # Scroll down, default: J, Key (GDK_KEY_Down) +# thread_view.page_down=C-d # Page down, default: C-d, Key (true, false, (guint) GDK_KEY_Down), Key (GDK_KEY_Page_Down) +# thread_view.up=k # Scroll up or move focus to previous element, default: k +# thread_view.previous_element=C-k # Move focus to previous element, default: C-k +# thread_view.scroll_up=K # Scroll up, default: K, Key (GDK_KEY_Up) +# thread_view.page_up=C-u # Page up, default: C-u, Key (true, false, (guint) GDK_KEY_Up), Key (GDK_KEY_Page_Up) +# thread_view.home=1 # Scroll home, default: 1, Key (GDK_KEY_Home) +# thread_view.end=0 # Scroll to end, default: 0, Key (GDK_KEY_End) +# thread_view.activate=Key (GDK_KEY_Return) # Open/expand/activate focused element, default: Key (GDK_KEY_Return), Key (GDK_KEY_KP_Enter), Key (true, false, (guint) GDK_KEY_space) +# thread_view.save=s # Save attachment or message, default: s +# thread_view.delete_attachment=d # Delete attachment (if editing), default: d +# thread_view.expand=e # Toggle expand, default: e +# thread_view.toggle_expand_all=C-e # Toggle expand on all messages, default: C-e +# thread_view.mark=t # Mark or unmark message, default: t +# thread_view.toggle_mark_all=T # Toggle mark on all messages, default: T +# thread_view.show_remote_images=C-i # Show remote images (warning: approves all requests to remote content for this thread!), default: C-i +# thread_view.zoom_in=C-+ # Zoom in, default: C-+ +# thread_view.zoom_out=C-minus # Zoom out, default: C-minus +# thread_view.save_all_attachments=S # Save all attachments, default: S +# thread_view.next_message=n # Focus next message, default: n +# thread_view.next_message_expand=C-n # Focus next message (and expand if necessary), default: C-n +# thread_view.previous_message=p # Focus previous message, default: p +# thread_view.previous_message_expand=C-p # Focus previous message (and expand if necessary), default: C-p +# thread_view.next_unread=Key (GDK_KEY_Tab) # Focus the next unread message, default: Key (GDK_KEY_Tab) +# thread_view.previous_unread=Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) # Focus the previous unread message, default: Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) +# thread_view.compose_to_sender=c # Compose a new message to the sender of the message (or all recipients if sender is you), default: c +# thread_view.reply=r # Reply to current message, default: r +# thread_view.reply_all=G # Reply all to current message, default: G +# thread_view.reply_sender=R # Reply to sender of current message, default: R +# thread_view.reply_mailinglist=M # Reply to mailinglist of current message, default: M +# thread_view.forward=f # Forward current message, default: f +# thread_view.forward_inline=UnboundKey () # Forward current message inlined, no defaults. +# thread_view.forward_attached=UnboundKey () # Forward current message as attachment, no defaults. +# thread_view.flat=C-F # Toggle flat or indented view of messages, default: C-F +# thread_view.view_raw=V # View raw source for current message, default: V +# thread_view.edit_draft=E # Edit currently focused message as new or draft, default: E +# thread_view.delete_draft=D # Delete currently focused draft, default: D +# thread_view.multi.toggle=t # Toggle marked, default: t +# thread_view.multi.tag=+ # Tag, default: + +# thread_view.multi.yank_mids=C-y # Yank message id's, default: C-y +# thread_view.multi.yank=y # Yank, default: y +# thread_view.multi.yank_raw=Y # Yank raw, default: Y +# thread_view.multi.save=s # Save marked, default: s +# thread_view.multi.print=p # Print marked messages, default: p +# thread_view.multi=Key (GDK_KEY_semicolon) # Apply action to marked messages, default: Key (GDK_KEY_semicolon) +# thread_view.toggle_unread=N # Toggle the unread tag on the message, default: N +# thread_view.flag=* # Toggle the 'flagged' tag on the message, default: * +# thread_view.archive_thread=a # Toggle 'inbox' tag on the whole thread, default: a +# thread_view.print=C-P # Print focused message, default: C-P +# thread_view.tag_message=+ # Tag message, default: + +# thread_view.search.search_or_next=C-f # Search for text or go to next match, default: C-f +# thread_view.search.search=UnboundKey () # Search for text, no defaults. +# thread_view.search.cancel=GDK_KEY_Escape # Cancel current search, default: GDK_KEY_Escape +# thread_view.search.next=UnboundKey () # Go to next match, no defaults. +# thread_view.search.previous=P # Go to previous match, default: P +# thread_view.yank=y # Yank current element or message text to clipboard, default: y +# thread_view.yank_raw=Y # Yank raw content of current element or message to clipboard, default: Y +# thread_view.yank_mid=C-y # Yank the Message-ID of the focused message to clipboard, default: C-y +# thread_view.multi_next_thread=Key (":") # Open next after.., default: Key (":") +# thread_view.multi_next_thread.archive=Key ("a") # "Archive, default: Key ("a") +# thread_view.multi_next_thread.archive_next_unread_thread=Key ("A") # "Archive, default: Key ("A") +# thread_view.multi_next_thread.close=Key ("x") # "Archive, default: Key ("x") +# thread_view.multi_next_thread.next_thread=Key ("j") # Goto next, default: Key ("j") +# thread_view.multi_next_thread.previous_thread=Key ("k") # Goto previous, default: Key ("k") +# thread_view.multi_next_thread.next_unread=Key (GDK_KEY_Tab) # Goto next unread, default: Key (GDK_KEY_Tab) +# thread_view.multi_next_thread.previous_unread=Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) # Goto previous unread, default: Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) +# thread_view.archive_then_next=UnboundKey () # Alias for thread_view.multi_next_thread.archive, no defaults. +# thread_view.archive_then_next_unread=UnboundKey () # Alias for thread_view.multi_next_thread.archive_next_unread, no defaults. +# thread_view.archive_and_close=UnboundKey () # Alias for thread_view.multi_next_thread.close, no defaults. +# thread_view.next_thread=UnboundKey () # Alias for thread_view.multi_next_thread.next_thread, no defaults. +# thread_view.previous_thread=UnboundKey () # Alias for thread_view.multi_next_thread.previous_thread, no defaults. +# thread_view.next_unread_thread=UnboundKey () # Alias for thread_view.multi_next_thread.next_unread, no defaults. +# thread_view.previous_unread_thread=UnboundKey () # Alias for thread_view.multi_next_thread.previous_unread, no defaults. +# thread_index.close_pane=C-w # Close thread view pane if open, default: C-w +# thread_index.refresh=Key((guint) GDK_KEY_dollar) # Refresh query, default: Key((guint) GDK_KEY_dollar) +# thread_index.refine_query=O # Refine query, default: O +# thread_index.duplicate_refine_query=C-v # Duplicate and refine query, default: C-v +# thread_index.cycle_sort=C-s # "Cycle through sort options: 'oldest', default: C-s +# thread_index.page_up=C-u # Page up, default: C-u, Key (true, false, (guint) GDK_KEY_Up), Key (GDK_KEY_Page_Up) +# thread_index.page_down=C-d # Page down, default: C-d, Key (true, false, (guint) GDK_KEY_Down), Key (GDK_KEY_Page_Down) +# thread_index.save_query=C-S # Save query, default: C-S +# thread_index.next_thread=j # Next thread, default: j, Key(false, false, (guint) GDK_KEY_Down) +# thread_index.next_unread=Key (GDK_KEY_Tab) # Jump to next unread thread, default: Key (GDK_KEY_Tab) +# thread_index.previous_unread=Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) # Jump to previous unread thread, default: Key (false, false, (guint) GDK_KEY_ISO_Left_Tab) +# thread_index.previous_thread=k # Previous thread, default: k, Key(false, false, (guint) GDK_KEY_Up) +# thread_index.filter=C-f # Filter rows, default: C-f +# thread_index.filter_clear=Key (GDK_KEY_Escape) # Clear filter, default: Key (GDK_KEY_Escape) +# thread_index.multi.mark_unread=N # Toggle unread, default: N +# thread_index.multi.flag=* # Toggle flagged, default: * +# thread_index.multi.archive=a # Toggle archive, default: a +# thread_index.multi.mark_spam=S # Toggle spam, default: S +# thread_index.multi.tag=+ # Tag, default: + +# thread_index.multi.mute=C-m # Toggle mute, default: C-m +# thread_index.multi.toggle=t # Toggle marked, default: t +# thread_index.multi=Key (GDK_KEY_semicolon) # Apply action to marked threads, default: Key (GDK_KEY_semicolon) +# thread_index.scroll_down=J # Scroll down, default: J +# thread_index.scroll_up=K # Scroll up, default: K +# thread_index.scroll_home=1 # Scroll to first line, default: 1, Key(GDK_KEY_Home) +# thread_index.scroll_end=0 # Scroll to last line, default: 0, Key (GDK_KEY_End) +# thread_index.open_thread=Key (GDK_KEY_Return) # Open thread, default: Key (GDK_KEY_Return), Key (GDK_KEY_KP_Enter) +# thread_index.open_paned=Key (false, true, (guint) GDK_KEY_Return) # Open thread in pane, default: Key (false, true, (guint) GDK_KEY_Return), Key (false, true, (guint) GDK_KEY_KP_Enter) +# thread_index.open_new_window=Key (true, false, (guint) GDK_KEY_Return) # Open thread in new window, default: Key (true, false, (guint) GDK_KEY_Return), Key (true, false, (guint) GDK_KEY_KP_Enter) +# thread_index.reply=r # Reply to last message in thread, default: r +# thread_index.reply_all=G # Reply all to last message in thread, default: G +# thread_index.reply_sender=R # Reply to sender of last message in thread, default: R +# thread_index.reply_mailinglist=M # Reply to mailinglist of last message in thread, default: M +# thread_index.forward=f # Forward last message in thread, default: f +# thread_index.forward_inline=UnboundKey () # Forward last message in thread inlined, no defaults. +# thread_index.forward_attached=UnboundKey () # Forward last message in thread attached, no defaults. +# thread_index.toggle_marked_next=t # Toggle mark thread and move to next, default: t +# thread_index.toggle_marked=UnboundKey () # Toggle mark thread, no defaults. +# thread_index.toggle_marked_previous=UnboundKey () # Toggle mark thread and move to previous, no defaults. +# thread_index.toggle_marked_all=T # Toggle marked on all loaded threads, default: T +# thread_index.archive=a # Toggle 'inbox' tag on thread, default: a +# thread_index.flag=Key (GDK_KEY_asterisk) # Toggle 'flagged' tag on thread, default: Key (GDK_KEY_asterisk) +# thread_index.unread=N # Toggle 'unread' tag on thread, default: N +# thread_index.spam=S # Toggle 'spam' tag on thread, default: S +# thread_index.mute=C-m # "Toggle 'muted' tag on thread, default: C-m +# thread_index.tag=+ # Edit tags for thread, default: + +# thread_index.edit_draft=E # Edit first message marked as draft or last message in thread as new, default: E diff --git a/conf.d/astroid/plugins/astroid-plugin-avatar b/conf.d/astroid/plugins/astroid-plugin-avatar new file mode 160000 index 0000000..bac60a1 --- /dev/null +++ b/conf.d/astroid/plugins/astroid-plugin-avatar @@ -0,0 +1 @@ +Subproject commit bac60a15c9c8986a50d82c45d5b1b06217d46239 diff --git a/conf.d/astroid/plugins/astroid-plugin-seccomp b/conf.d/astroid/plugins/astroid-plugin-seccomp new file mode 160000 index 0000000..de95586 --- /dev/null +++ b/conf.d/astroid/plugins/astroid-plugin-seccomp @@ -0,0 +1 @@ +Subproject commit de95586b6ff6de0fcc553c9c00de8e0d74361470 diff --git a/conf.d/astroid/plugins/astroid-syntax-highlight b/conf.d/astroid/plugins/astroid-syntax-highlight new file mode 160000 index 0000000..45a21bc --- /dev/null +++ b/conf.d/astroid/plugins/astroid-syntax-highlight @@ -0,0 +1 @@ +Subproject commit 45a21bc29abd7c4fdf0d3379c7e38394518310cf diff --git a/conf.d/astroid/poll.sh b/conf.d/astroid/poll.sh new file mode 100755 index 0000000..eec3979 --- /dev/null +++ b/conf.d/astroid/poll.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# File : poll.sh +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 07.05.2020 +# Last Modified By : Jeff LANCE + +# Set some constants +MAILDIR=${HOME}/Mail + + +function test_connection() { + # Check if we have a connection + status=1 + if ! ping -w 1 -W 1 -c 1 mail.google.com; then + status=0 + fi + echo ${status} +} + +function test_maildir() { + # Check if ${MAILDIR} exists + status=1 + if [ ! -d ${MAILDIR} ]; then + status=0 + fi + echo ${status} +} + +function deal_with_spam() { + echo "Dealing with old spam" + notmuch tag --remove-all +deleted -spam \ + -- tag:spam folder:"/junk/" date:..7d +} + + +function purge_trash() { + echo "Purging trash" + notmuch search --output=files --format=text0 \ + -- tag:deleted date:...7d \ + folder:"/trash/" | xargs -0 --no-run-if-empty rm +} + +function sync_mail() { + # Sync new mail. + echo "Syncing mails !" + mbsync -a +} + +function tag_new() { + notmuch tag "$1 tag:inbox and $2" +} + +function sync_db() { + # Import new mail into the notmuch database. + echo "Update database" + NEW_MAIL=false + if ! (notmuch new | grep "No new mail."); then + NEW_MAIL=true + + ## Tag test mail + #tag_new "+test" "from:email@jefflance.me and subject:TEST" + + ## Tag all mail from + #tag_new "+evariste" "from:ce.0932047v@ac-creteil.fr" + + ## We've finished processing incoming mail + #tag_new "-inbox" "tag:test" + fi + + if [ $NEW_MAIL = true ]; then + notify-send \ + -i /usr/share/notify-osd/icons/hicolor/scalable/status/notification-message-email.svg -c Mail 'New mail.' 'You received new mails.' + fi +} + +function refresh() { + # Refresh the display of astroid + revision=$(notmuch count --lastmod | cut -f3) + echo "Refresh window" + astroid --refresh ${revision} +} + +if [ test_connection ]; then + if [ test_maildir ]; then + # deal_with_spam + purge_trash + sync_mail + sync_db + refresh + else + echo "[ASTROID]: no maildir" + fi +else + echo "[ASTROID]: no connection" +fi + +# We stop polling +# astroid --stop-polling + + +# vim:ft=sh diff --git a/conf.d/astroid/searches b/conf.d/astroid/searches new file mode 100644 index 0000000..1292cb4 --- /dev/null +++ b/conf.d/astroid/searches @@ -0,0 +1,334 @@ +{ + "saved": { + "none": "tag:inbox" + }, + "history": { + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "Pénélop", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "Tara", + "none": "junk", + "none": "buonocore", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:new", + "none": "tag:inbox", + "none": "to: jeff", + "none": "to:jeff.lance@mala.fr", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:inbox", + "none": "tag:inbox", + "none": "tag:spam", + "none": "tag:", + "none": "tag:new", + "none": "Aspen", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:inbox", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "From:FRee Mobile", + "none": "From: Free Mobile", + "none": "From:Free Mobile", + "none": "From:'Free Mobile'", + "none": "from:\"Free Mobile\"", + "none": "from:pascale", + "none": "tag:archive", + "none": "tag:spam", + "none": "folder:archives", + "none": "folder:\/archives\/", + "none": "from:Free\\ Mobile", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:archive", + "none": "tag:spam", + "none": "tag:sent", + "none": "tag:archive", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:archive", + "none": "tag:spam", + "none": "tag:draft", + "none": "tag:sent", + "none": "folder:\/archives\/", + "none": "folder:\/archives\/", + "none": "tag:spam", + "none": "tag:spam", + "none": "date:today", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:archive", + "none": "ENT Mon", + "none": "tag:spam", + "none": "tag:assurances", + "none": "tag:snes", + "none": "tag:snes", + "none": "tag:snes", + "none": "tag:spam", + "none": "tag:spam", + "none": "folder:\/amazon\/", + "none": "tag:deleted", + "none": "folder:\/junk\/", + "none": "folder:\/trash\/", + "none": "folder:\/trash\/", + "none": "tag:deleted", + "none": "folder:\/trash\/", + "none": "tag:paypal", + "none": "tag:paypal", + "none": "tag:inbox#", + "none": "tag:archive", + "none": "tag:inbox#", + "none": "tag:spam", + "none": "tag:archive", + "none": "maire", + "none": "tag:archive", + "none": "from:jeff.lance@mala.fr", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:snt", + "none": "tag:sent", + "none": "tag:labsud", + "none": "tag:deleted", + "none": "tag:sent", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:adria", + "none": "folder:evariste", + "none": "folder:\/evariste\/", + "none": "folder:\/evariste\/", + "none": "from:me", + "none": "from:jeff.lance@mala.fr", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:deleted", + "none": "pacale", + "none": "from:pascale", + "none": "tag:spam", + "none": "tag:spam", + "none": "folder:\/mathslance@gmail.com\/", + "none": "tag:deleted", + "none": "test 6", + "none": "tes2", + "none": "tes2\/0505", + "none": "tag:TES2\/0505", + "none": "tag:TES2\/0505\/•", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:2ND7\/0905", + "none": "Gael", + "none": "pascale", + "none": "pascale", + "none": "tag:spam", + "none": "gontier", + "none": "tag:deleted", + "none": "tag:spam", + "none": "folder:\/sent\/", + "none": "tag:deleted", + "none": "folder:\/sent\/", + "none": "tag:sent", + "none": "tag:flagged", + "none": "pascale lephilibert", + "none": "tag:deleted", + "none": "rambeau", + "none": "gontier", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:spam", + "none": "tag:dele", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:sent", + "none": "tag:inbox spam", + "none": "tag:inbox AND spam", + "none": "cousin", + "none": "tag:deleted", + "none": "amazon", + "none": "tag:pascale", + "none": "pascale", + "none": "tag:spam", + "none": "tag:deleted", + "none": "tag:spam", + "none": "tag:deleted", + "none": "?evariste", + "none": "tag:spam", + "none": "tag:spam", + "none": "farssac", + "none": "tag:evariste", + "none": "amicale", + "none": "lamoth", + "none": "tag:evariste", + "none": "monia", + "none": "tag:spam", + "none": "tag:evariste", + "none": "liard", + "none": "liard", + "none": "SPAM", + "none": "service@paypal.fr", + "none": "from:jeff.lance@mala.fr", + "none": "from:jeff.lance@mala.fr", + "none": "from:jeff.lance@mala.fr", + "none": "labeyrie", + "none": "tag:spam", + "none": "tag:spam and tag:inbox", + "none": "tag:spam", + "none": "seafile", + "none": "tag:evariste", + "none": "alain", + "none": "tag:sent", + "none": "maxicoffee", + "none": "tag:evariste", + "none": "veepee", + "none": "ne-pas-repon", + "none": "ENT Mon", + "none": "triumph", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "tag:deleted", + "none": "sylvain", + "none": "tag:evariste", + "none": "folder:famille", + "none": "folder:succession", + "none": "folder:jeff.lance@mala.fr\/famille", + "none": "folder:\/famille\/", + "none": "newfi", + "none": "alma", + "none": "Humble", + "none": "destreb", + "none": "Destrebecq", + "none": "Bureau", + "none": "tag:evariste", + "none": "Maxicoffee", + "none": "Maxicoffee", + "none": "tag:evariste", + "none": "tag:evariste", + "none": "Evariste", + "none": "sylvain", + "none": "tag:famille", + "none": "vails", + "none": "vailsyn", + "none": "tag:evariste", + "none": "tag:", + "none": "from:jeff.lance@mala.fr", + "none": "tag:test", + "none": "tag:new", + "none": "tag:deleted", + "none": "tag:test", + "none": "tag:spam", + "none": "tag:spam to:mathslance@gmail.com", + "none": "tag:spam and to:mathslance@gmail.com", + "none": "?spam", + "none": "tag:destr", + "none": "tag:spam", + "none": "LELO", + "none": "maxicoffee", + "none": "Validation de votre", + "none": "subject:[SPAM]", + "none": "subject:[SPAM]", + "none": "from:ProtonMail", + "none": "from:La Vignery", + "none": "from:flute de pan", + "none": "from:mgen", + "none": "from:the eyes", + "none": "from:quora", + "none": "from:france inter", + "none": "from: autonome", + "none": "Dafy", + "none": "wakatime", + "none": "microsoft", + "none": "Fleurus", + "none": "protonmail", + "none": "linkedin", + "none": "aliexpress", + "none": "astruc", + "none": "blizzard", + "none": "L'Autonome", + "none": "Communication", + "none": "Dedibox", + "none": "ENT", + "none": "Télérama", + "none": "blockchain", + "none": "Humble", + "none": "Trust", + "none": "from:service@paypal.fr", + "none": "from:service@paypal.fr and subject:maxicoffee", + "none": "from:service@paypal.fr and subject:steam", + "none": "from:service@paypal.fr and subject:steampowered", + "none": "from:service@paypal.fr and subject:ovh", + "none": "from:service@paypal.fr and subject:robert", + "none": "from:service@paypal.fr and subject:veepee", + "none": "from:service@paypal.fr and subject:veepee.com", + "none": "from:service@paypal.fr and subject:K&L", + "none": "shurgard", + "none": "folder:jeff.lance@mala.fr object:[SPAM}", + "none": "folder:\/jeff.lance@mala.fr\/ object:[SPAM}", + "none": "evariste", + "none": "no-reply", + "none": "no-reply@account", + "none": "no-reply@accounts.nintendo", + "none": "Kinguin", + "none": "Kinguin", + "none": "Twitch", + "none": "Fellow Traveller", + "none": "no-reply@second", + "none": "Dafy", + "none": "ENT", + "none": "ProtonMail", + "none": "[SPAM]", + "none": "Vignery", + "none": "LinkedIn", + "none": "LELO", + "none": "[SPAM]", + "none": "DAFY", + "none": "Linked", + "none": "LinkedIn", + "none": "service@paypal.fr", + "none": "gandi.net", + "none": "[SPAM] folder:\/inbox\/", + "none": "[SPAM]", + "none": "Evariste Galois" + } +} diff --git a/conf/mbsyncrc b/conf/mbsyncrc new file mode 100644 index 0000000..14530b6 --- /dev/null +++ b/conf/mbsyncrc @@ -0,0 +1,327 @@ +##################### +# __ _ _ # +# /__| / \|_) /\ | # +# \_||_\_/|_)/--\|_ # +# # +##################### + +# Attempt to keep the time-stamp based +# sorting intact +CopyArrivalDate yes +# Automatically create missing mailboxes, +# both locally and on the server +Create Slave + + + +########################## +# _ _ _ _____ # +# /\ / / / \| ||\ ||(_ # +# /--\\_\_\_/|_|| \||__) # +# # +########################## + +# jeff.lance@mala.fr +#------------------------- + +IMAPAccount jeff.lance@mala.fr +# Address to connect to +Host ssl0.ovh.net +User jeff.lance@mala.fr +PassCmd "secret-tool lookup email jeff.lance@mala.fr" +# Use SSL +# SSLType IMAPS +SSLType None +# The following line should work. +# If get certificate errors, uncomment the two +# following lines and read the "Troubleshooting" section. +CertificateFile /etc/ssl/certs/ca-certificates.crt + + +IMAPStore jeff.lance@mala.fr-remote +Account jeff.lance@mala.fr + + +MaildirStore jeff.lance@mala.fr-local +SubFolders Verbatim +# The trailing "/" is important +Path ~/Mail/jeff.lance@mala.fr/ +Inbox ~/Mail/jeff.lance@mala.fr/inbox + + +Channel jeff.lance@mala.fr-inbox +Master :jeff.lance@mala.fr-remote:"Inbox" +Slave :jeff.lance@mala.fr-local:inbox +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel jeff.lance@mala.fr-sent +Master :jeff.lance@mala.fr-remote:"Sent Items" +Slave :jeff.lance@mala.fr-local:sent +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel jeff.lance@mala.fr-trash +Master :jeff.lance@mala.fr-remote:"Deleted Items" +Slave :jeff.lance@mala.fr-local:trash +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel jeff.lance@mala.fr-drafts +Master :jeff.lance@mala.fr-remote:"Drafts" +Slave :jeff.lance@mala.fr-local:drafts +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel jeff.lance@mala.fr-junk +Master :jeff.lance@mala.fr-remote:"Junk Email" +Slave :jeff.lance@mala.fr-local:junk +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel jeff.lance@mala.fr-archives +Master :jeff.lance@mala.fr-remote:"Archives" +Slave :jeff.lance@mala.fr-local:archives +Pattern * +Create Slave +MaxMessages 500 +Sync New Delete Push +SyncState * +Expunge Both + + +Group jeff.lance@mala.fr +Channel jeff.lance@mala.fr-inbox +Channel jeff.lance@mala.fr-sent +Channel jeff.lance@mala.fr-trash +Channel jeff.lance@mala.fr-drafts +Channel jeff.lance@mala.fr-junk +Channel jeff.lance@mala.fr-archives + + + +# games@mala.fr +#------------------------- + +IMAPAccount games@mala.fr +# Address to connect to +Host ssl0.ovh.net +User games@mala.fr +PassCmd "secret-tool lookup email games@mala.fr" +# Use SSL +# SSLType IMAPS +SSLType None +# The following line should work. +# If get certificate errors, uncomment the two +# following lines and read the "Troubleshooting" section. +CertificateFile /etc/ssl/certs/ca-certificates.crt + + +IMAPStore games@mala.fr-remote +Account games@mala.fr + + +MaildirStore games@mala.fr-local +SubFolders Verbatim +# The trailing "/" is important +Path ~/Mail/games@mala.fr/ +Inbox ~/Mail/games@mala.fr/inbox + + +Channel games@mala.fr-inbox +Master :games@mala.fr-remote:"Inbox" +Slave :games@mala.fr-local:inbox +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel games@mala.fr-sent +Master :games@mala.fr-remote:"Sent Items" +Slave :games@mala.fr-local:sent +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel games@mala.fr-trash +Master :games@mala.fr-remote:"Deleted Items" +Slave :games@mala.fr-local:trash +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel games@mala.fr-drafts +Master :games@mala.fr-remote:"Drafts" +Slave :games@mala.fr-local:drafts +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel games@mala.fr-junk +Master :games@mala.fr-remote:"Junk Email" +Slave :games@mala.fr-local:junk +Sync PullNew PullDelete Push +SyncState * +Expunge Both + + +Channel games@mala.fr-archives +Master :games@mala.fr-remote:"Archives" +Slave :games@mala.fr-local:archives +Pattern * +Create Slave +MaxMessages 500 +Sync New Delete Push +SyncState * +Expunge Both + + +Group games@mala.fr +Channel games@mala.fr-inbox +Channel games@mala.fr-sent +Channel games@mala.fr-trash +Channel games@mala.fr-drafts +Channel games@mala.fr-junk +Channel games@mala.fr-archives + + +## jean-francois.lance@ac-creteil.fr +##-------------------------------------- + +#IMAPAccount jean-francois.lance@ac-montpellier.fr +## Address to connect to +#Host courrier.ac-montpellier.fr +#User jlance +#PassCmd "secret-tool lookup email jean-francois.lance@ac-montpellier.fr" +## Use SSL +#SSLType IMAPS +## The following line should work. +## If get certificate errors, uncomment the two +## following lines and read the "Troubleshooting" section. +#CertificateFile /etc/ssl/certs/ca-certificates.crt + +#IMAPStore jean-francois.lance@ac-montpellier.fr-remote +#Account jean-francois.lance@ac-montpellier.fr + +#MaildirStore jean-francois.lance@ac-montpellier.fr-local +#SubFolders Verbatim +## The trailing "/" is important +#Path ~/Mail/jean-francois.lance@ac-montpellier.fr/ +#Inbox ~/Mail/jean-francois.lance@ac-montpellier.fr/INBOX + +#Channel jean-francois.lance@ac-montpellier.fr-inbox +#Master :jean-francois.lance@ac-montpellier.fr-remote: +#Slave :jean-francois.lance@ac-montpellier.fr-local: +#Patterns "INBOX" +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-sent +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Sent" +#Slave :jean-francois.lance@ac-montpellier.fr-local:SENT +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-trash +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Trash" +#Slave :jean-francois.lance@ac-montpellier.fr-local:TRASH +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-drafts +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Drafts" +#Slave :jean-francois.lance@ac-montpellier.fr-local:DRAFTS +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-spams +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Spams" +#Slave :jean-francois.lance@ac-montpellier.fr-local:SPAMS +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-archives +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Archives" +#Slave :jean-francois.lance@ac-montpellier.fr-local:ARCHIVES +#Patterns * + +#Group jean-francois.lance@ac-montpellier.fr +#Channel jean-francois.lance@ac-montpellier.fr-inbox +#Channel jean-francois.lance@ac-montpellier.fr-sent +#Channel jean-francois.lance@ac-montpellier.fr-trash +#Channel jean-francois.lance@ac-montpellier.fr-drafts +#Channel jean-francois.lance@ac-montpellier.fr-spams +#Channel jean-francois.lance@ac-montpellier.fr-archives + + + +## jean-francois.lance@ac-montpellier.fr +##-------------------------------------- + +#IMAPAccount jean-francois.lance@ac-montpellier.fr +## Address to connect to +#Host courrier.ac-montpellier.fr +#User jlance +#PassCmd "secret-tool lookup email jean-francois.lance@ac-montpellier.fr" +## Use SSL +#SSLType IMAPS +## The following line should work. +## If get certificate errors, uncomment the two +## following lines and read the "Troubleshooting" section. +#CertificateFile /etc/ssl/certs/ca-certificates.crt + +#IMAPStore jean-francois.lance@ac-montpellier.fr-remote +#Account jean-francois.lance@ac-montpellier.fr + +#MaildirStore jean-francois.lance@ac-montpellier.fr-local +#SubFolders Verbatim +## The trailing "/" is important +#Path ~/Mail/jean-francois.lance@ac-montpellier.fr/ +#Inbox ~/Mail/jean-francois.lance@ac-montpellier.fr/INBOX + +#Channel jean-francois.lance@ac-montpellier.fr-inbox +#Master :jean-francois.lance@ac-montpellier.fr-remote: +#Slave :jean-francois.lance@ac-montpellier.fr-local: +#Patterns "INBOX" +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-sent +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Sent" +#Slave :jean-francois.lance@ac-montpellier.fr-local:SENT +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-trash +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Trash" +#Slave :jean-francois.lance@ac-montpellier.fr-local:TRASH +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-drafts +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Drafts" +#Slave :jean-francois.lance@ac-montpellier.fr-local:DRAFTS +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-spams +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Spams" +#Slave :jean-francois.lance@ac-montpellier.fr-local:SPAMS +#Expunge Both + +#Channel jean-francois.lance@ac-montpellier.fr-archives +#Master :jean-francois.lance@ac-montpellier.fr-remote:"Archives" +#Slave :jean-francois.lance@ac-montpellier.fr-local:ARCHIVES +#Patterns * + +#Group jean-francois.lance@ac-montpellier.fr +#Channel jean-francois.lance@ac-montpellier.fr-inbox +#Channel jean-francois.lance@ac-montpellier.fr-sent +#Channel jean-francois.lance@ac-montpellier.fr-trash +#Channel jean-francois.lance@ac-montpellier.fr-drafts +#Channel jean-francois.lance@ac-montpellier.fr-spams +#Channel jean-francois.lance@ac-montpellier.fr-archives diff --git a/conf/notmuch-config b/conf/notmuch-config new file mode 100644 index 0000000..f331fa6 --- /dev/null +++ b/conf/notmuch-config @@ -0,0 +1,25 @@ +# File : .notmuch-config +# Author : Jeff LANCE +# Date : 10.02.2015 +# Last Modified Date: 05.05.2020 +# Last Modified By : Jeff LANCE + +[database] +path=/home/jeff/Mail + +[user] +name=Jeff LANCE +primary_email=jeff.lance@mala.fr +# other_email=mathslance@gmail.com + +[new] +tags=new; +ignore=.mbsyncstate;.isyncuidmap.db;.uidvalidity;.mbsyncstate.journal;.mbsyncstate.new;.mbsyncstate.lock;/.*[.](json|lock|bak)$/; + +[search] +exclude_tags= + +[maildir] +synchronize_flags=true + +# vim:ft=sh diff --git a/meta/profiles/linux-desktop b/meta/profiles/linux-desktop index a8eaddf..819017e 100644 --- a/meta/profiles/linux-desktop +++ b/meta/profiles/linux-desktop @@ -1,6 +1,8 @@ aacskeys abcde ansiweather +alot +astroid beets conky editorconfig @@ -18,4 +20,4 @@ ncmpcpp nvim polybar x -zim +zsh diff --git a/meta/tasks/asymptote.yaml b/meta/tasks/_old/asymptote.yaml similarity index 100% rename from meta/tasks/asymptote.yaml rename to meta/tasks/_old/asymptote.yaml diff --git a/meta/tasks/awesome.yaml b/meta/tasks/_old/awesome.yaml similarity index 100% rename from meta/tasks/awesome.yaml rename to meta/tasks/_old/awesome.yaml diff --git a/meta/tasks/aacskeys.yaml b/meta/tasks/aacskeys.yaml index 0b06c5f..f8e8176 100644 --- a/meta/tasks/aacskeys.yaml +++ b/meta/tasks/aacskeys.yaml @@ -1,13 +1,7 @@ - shell: - - - command: '[[ ! -d ${HOME}/.config/aacs ]] && mkdir ${HOME}/.config/aacs || true' - #stdout: true - #stderr: true + - command: '[[ ! -d ${HOME}/.config/aacs ]] && mkdir ${HOME}/.config/aacs || true' description: Creating directory - - - command: '[[ ! -e ${HOME}/.config/aacs/KEYDB.cfg ]] && /bin/bash -c "curl -kfsSL https://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg -o ${HOME}/.config/aacs/KEYDB.cfg" || true' - #stdout: true - #stderr: true + - command: '[[ ! -e ${HOME}/.config/aacs/KEYDB.cfg ]] && /bin/bash -c "curl -kfsSL https://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg -o ${HOME}/.config/aacs/KEYDB.cfg" || true' description: Downloading AACS db keys diff --git a/meta/tasks/abcde.yaml b/meta/tasks/abcde.yaml index 6c5cf64..55c224a 100644 --- a/meta/tasks/abcde.yaml +++ b/meta/tasks/abcde.yaml @@ -1,2 +1,4 @@ - link: - ~/.abcde.conf: conf/abcde.conf + ~/.abcde.conf: + path: conf/abcde.conf + diff --git a/meta/tasks/ansiweather.yaml b/meta/tasks/ansiweather.yaml index cb0fe7e..ee24e5b 100644 --- a/meta/tasks/ansiweather.yaml +++ b/meta/tasks/ansiweather.yaml @@ -1,2 +1,3 @@ - link: - ~/.ansiweatherrc: conf/ansiweatherrc + ~/.ansiweatherrc: + path: conf/ansiweatherrc diff --git a/meta/tasks/beets.yaml b/meta/tasks/beets.yaml index e819a97..3c7116a 100644 --- a/meta/tasks/beets.yaml +++ b/meta/tasks/beets.yaml @@ -1,2 +1,3 @@ - link: - ~/.config/beets/config.yaml: conf/beets.yaml + ~/.config/beets/config.yaml: + path: conf/beets.yaml diff --git a/meta/tasks/conky.yaml b/meta/tasks/conky.yaml index ae671ae..05e8b28 100644 --- a/meta/tasks/conky.yaml +++ b/meta/tasks/conky.yaml @@ -1,2 +1,3 @@ - link: - ~/.config/conky: conf.d/conky + ~/.config/conky: + path: conf.d/conky diff --git a/meta/tasks/editorconfig.yaml b/meta/tasks/editorconfig.yaml index 0c8407f..a8bab56 100644 --- a/meta/tasks/editorconfig.yaml +++ b/meta/tasks/editorconfig.yaml @@ -1,2 +1,3 @@ - link: - ~/.editorconfig: conf/editorconfig + ~/.editorconfig: + path: conf/editorconfig diff --git a/meta/tasks/elinks.yaml b/meta/tasks/elinks.yaml index 05c4bae..2c85199 100644 --- a/meta/tasks/elinks.yaml +++ b/meta/tasks/elinks.yaml @@ -1,2 +1,3 @@ - link: - ~/.elinks.conf: conf/elinks.conf + ~/.elinks.conf: + path: conf/elinks.conf diff --git a/meta/tasks/emacs.yaml b/meta/tasks/emacs.yaml index f0b8f70..b7ac5ff 100644 --- a/meta/tasks/emacs.yaml +++ b/meta/tasks/emacs.yaml @@ -1,3 +1,5 @@ - link: - ~/.emacs: conf.d/emacs/emacs - ~/.emacs.d: conf.d/emacs/emacs.d + ~/.emacs: + path: conf.d/emacs/emacs + ~/.emacs.d: + path: conf.d/emacs/emacs.d diff --git a/meta/tasks/figlet.yaml b/meta/tasks/figlet.yaml index 37a2e20..1f3ab9e 100644 --- a/meta/tasks/figlet.yaml +++ b/meta/tasks/figlet.yaml @@ -1,2 +1,3 @@ - link: - ~/.figlet: conf.d/figlet + ~/.figlet: + path: conf.d/figlet diff --git a/meta/tasks/fonts-linux.yaml b/meta/tasks/fonts-linux.yaml index ac8abf1..0cf2a08 100644 --- a/meta/tasks/fonts-linux.yaml +++ b/meta/tasks/fonts-linux.yaml @@ -1,6 +1,7 @@ - link: - ~/.local/share/fonts: conf.d/fonts + ~/.local/share/fonts: + path: conf.d/fonts + - shell: - - - command: fc-cache -fv ~/.local/share/fonts + - command: 'fc-cache -fv ~/.local/share/fonts' stdout: true diff --git a/meta/tasks/fonts-macos.yaml b/meta/tasks/fonts-macos.yaml index 0531934..d07dc6f 100644 --- a/meta/tasks/fonts-macos.yaml +++ b/meta/tasks/fonts-macos.yaml @@ -3,4 +3,3 @@ glob: true force: false path: conf.d/fonts/* - relink: true diff --git a/meta/tasks/gitignore.global.yaml b/meta/tasks/gitignore.global.yaml index b49f2f5..e0dc8dd 100644 --- a/meta/tasks/gitignore.global.yaml +++ b/meta/tasks/gitignore.global.yaml @@ -1,6 +1,6 @@ - link: - ~/.gitignore.global: conf/gitignore.global + ~/.gitignore.global: + path: conf/gitignore.global - shell: - - - command: git config --global core.excludesfile ~/.gitignore.global + - command: 'git config --global core.excludesfile ~/.gitignore.global' diff --git a/meta/tasks/kitty.yaml b/meta/tasks/kitty.yaml index c140295..325835a 100644 --- a/meta/tasks/kitty.yaml +++ b/meta/tasks/kitty.yaml @@ -1,10 +1,9 @@ - link: - ~/.config/kitty: conf.d/kitty + ~/.config/kitty: + path: conf.d/kitty - shell: - - - command: echo "\n# completion for kitty" >> $HOME/.oh-my-zsh/custom/zshrc.zsh - - - command: echo "kitty + complete setup zsh | source /dev/stdin" >> $HOME/.oh-my-zsh/custom/zshrc.zsh + - command: 'echo "\n# completion for kitty" >> $HOME/.oh-my-zsh/custom/zshrc.zsh' + - command: 'echo "kitty + complete setup zsh | source /dev/stdin" >> $HOME/.oh-my-zsh/custom/zshrc.zsh' diff --git a/meta/tasks/latex.yaml b/meta/tasks/latex.yaml index b898732..4717cbe 100644 --- a/meta/tasks/latex.yaml +++ b/meta/tasks/latex.yaml @@ -1,5 +1,6 @@ - link: - ~/.latexmkrc: conf/latexmkrc + ~/.latexmkrc: + path: conf/latexmkrc - shell: - command: '/bin/bash -c helpers/install_latex.sh' diff --git a/meta/tasks/lgogdownloader.yaml b/meta/tasks/lgogdownloader.yaml index 0dc8177..48d8c67 100644 --- a/meta/tasks/lgogdownloader.yaml +++ b/meta/tasks/lgogdownloader.yaml @@ -1,4 +1,3 @@ - link: ~/.config/lgogdownloader/config.cfg: - create: true - path: conf/lgogdownloader.cfg + path: conf/lgogdownloader.cfg diff --git a/meta/tasks/mail.yaml b/meta/tasks/mail.yaml new file mode 100644 index 0000000..baa3ba3 --- /dev/null +++ b/meta/tasks/mail.yaml @@ -0,0 +1,10 @@ +- link: + ${HOME}/.mbsynrc: + path: conf/mbsynrc + ${HOME}/.notmuch-config: + path: conf/notmuch-config + ${HOME}/.config/astroid: + path: conf.d/astroid + ${HOME}/.config/alot: + path: conf.d/alot + diff --git a/meta/tasks/mopidy.yaml b/meta/tasks/mopidy.yaml index e859408..d4296cf 100644 --- a/meta/tasks/mopidy.yaml +++ b/meta/tasks/mopidy.yaml @@ -1,2 +1,3 @@ - link: - ~/.config/mopidy/mopidy.conf: conf/mopidy.conf + ~/.config/mopidy/mopidy.conf: + path: conf/mopidy.conf diff --git a/meta/tasks/ncmpcpp.yaml b/meta/tasks/ncmpcpp.yaml index 65889cc..90928f1 100644 --- a/meta/tasks/ncmpcpp.yaml +++ b/meta/tasks/ncmpcpp.yaml @@ -1,2 +1,3 @@ - link: - ~/.ncmpcpp/config: conf.d/ncmpcpp/config + ~/.ncmpcpp/config: + path: conf.d/ncmpcpp/config diff --git a/meta/tasks/nvim.yaml b/meta/tasks/nvim.yaml index 6cb8b3b..5365799 100644 --- a/meta/tasks/nvim.yaml +++ b/meta/tasks/nvim.yaml @@ -1,7 +1,6 @@ - link: ${HOME}/.config/nvim: - path: conf.d/nvim - relink: true + path: conf.d/nvim - shell: - command: '/bin/bash -c "$(which nvim) -es -u ${HOME}/.config/nvim/init.vim -i NONE -c PlugInstall -c qa || true"' diff --git a/meta/tasks/polybar.yaml b/meta/tasks/polybar.yaml index 096e9df..6df6399 100644 --- a/meta/tasks/polybar.yaml +++ b/meta/tasks/polybar.yaml @@ -1,3 +1,4 @@ - link: - ~/.config/polybar: conf.d/polybar + ~/.config/polybar: + path: conf.d/polybar diff --git a/meta/tasks/slate.yaml b/meta/tasks/slate.yaml index 736a523..afd4bd8 100644 --- a/meta/tasks/slate.yaml +++ b/meta/tasks/slate.yaml @@ -1,3 +1,5 @@ - link: - ~/.slate.d: conf.d/slate/slate.d - ~/.slate.js: conf.d/slate/slate.js + ~/.slate.d: + path: conf.d/slate/slate.d + ~/.slate.js: + path: conf.d/slate/slate.js diff --git a/meta/tasks/texstudio.yaml b/meta/tasks/texstudio.yaml index 60d80db..e2bc093 100644 --- a/meta/tasks/texstudio.yaml +++ b/meta/tasks/texstudio.yaml @@ -1,8 +1,6 @@ - link: ${HOME}/.config/texstudio/profile.txsprofile: path: conf.d/texstudio/profile.txsprofile - relink: true ${HOME}/.config/texstudio/macro: path: conf.d/texstudio/macro - relink: true force: true diff --git a/meta/tasks/tmux.yaml b/meta/tasks/tmux.yaml index 1261f71..87b2c94 100644 --- a/meta/tasks/tmux.yaml +++ b/meta/tasks/tmux.yaml @@ -1,3 +1,5 @@ - link: - ~/.tmux.conf: conf/tmux.conf - ~/.tmux.conf.local: conf/tmux.conf.local + ~/.tmux.conf: + path: conf/tmux.conf + ~/.tmux.conf.local: + path: conf/tmux.conf.local diff --git a/meta/tasks/vim.yaml b/meta/tasks/vim.yaml index f54feea..d8f2f5c 100644 --- a/meta/tasks/vim.yaml +++ b/meta/tasks/vim.yaml @@ -1,10 +1,8 @@ - link: ${HOME}/.vim/: path: conf.d/vim/vim - relink: true ${HOME}/.vimrc: path: conf.d/vim/vimrc - relink: true - shell: - command: '/bin/bash -c "$(which vim) -es -u ${HOME}/.vimrc -i NONE -c PlugInstall -c qa || true"' diff --git a/meta/tasks/x.yaml b/meta/tasks/x.yaml index 87edc04..ec5fd3d 100644 --- a/meta/tasks/x.yaml +++ b/meta/tasks/x.yaml @@ -1,5 +1,9 @@ - link: - ~/.xbindkeysrc: conf.d/x/xbindkeysrc - ~/.Xresources: conf.d/x/Xresources - ~/.Xresources.d: conf.d/x/Xresources.d - ~/.urxvt/urxvt-perls: conf.d/urxvt-perls + ~/.xbindkeysrc: + path: conf.d/x/xbindkeysrc + ~/.Xresources: + path: conf.d/x/Xresources + ~/.Xresources.d: + path: conf.d/x/Xresources.d + ~/.urxvt/urxvt-perls: + path: conf.d/urxvt-perls diff --git a/meta/tasks/zim.yaml b/meta/tasks/zim.yaml deleted file mode 100644 index c72ccb2..0000000 --- a/meta/tasks/zim.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- shell: - - command: '/bin/bash -c helpers/install_zsh.sh' - description: Create latex personal directory - stderr: true - stdout: true - diff --git a/meta/tasks/zim.yaml.old b/meta/tasks/zim.yaml.old deleted file mode 100644 index ab3a740..0000000 --- a/meta/tasks/zim.yaml.old +++ /dev/null @@ -1,18 +0,0 @@ -- defaults: - link: - relink: true - -- shell: - #- command: '/bin/bash -c "curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/src/templates/zshenv https://raw.githubusercontent.com/zimfw/install/master/src/templates/zshrc https://raw.githubusercontent.com/zimfw/install/master/src/templates/zlogin https://raw.githubusercontent.com/zimfw/install/master/src/templates/zimrc -o $HOME/.zshenv -o $HOME/.zshrc -o $HOME/.zlogin -o $HOME/.zimrc"' - # description: Getting dotfiles for Zsh IMproved FrameWork - - - command: '[[ ! -d "${HOME}/.zim" ]] && mkdir "${HOME}/.zim" ; /bin/bash -c "curl -fsSL https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh -o ${HOME}/.zim/zimfw.zsh"' - description: Creating and getting zim dir and installation file - - - command: '' - description: Linking zsh and zim configuration files - -- shell: - - - command: '/bin/bash -c "$(which zsh) ${HOME}/.zim/zimfw.zsh install"' - description: Installing the Zsh IMproved FrameWork diff --git a/meta/tasks/zsh.yaml b/meta/tasks/zsh.yaml index 096ae03..c72ccb2 100644 --- a/meta/tasks/zsh.yaml +++ b/meta/tasks/zsh.yaml @@ -1,37 +1,6 @@ -- link: - ~/.zshenv: conf.d/zsh/zshenv - ~/.zshrc: conf.d/zsh/zshrc - ~/.oh-my-zsh: - force: true - path: meta/github/oh-my-zsh - # ~/.oh-my-zsh/custom/: - # glob: true - # force: false - # path: zsh/custom/* - # ~/.oh-my-zsh/custom/plugins/: - # glob: true - # force: false - # path: zsh/custom/plugins/* - # ~/.oh-my-zsh/custom/themes/: - # glob: true - # force: false - # path: zsh/custom/themes/* - shell: - - - command: ln -s $HOME/Dotfiles/zsh/custom/aliases.zsh $HOME/.oh-my-zsh/custom/aliases.zsh - stdout: true - - - command: ln -s $HOME/Dotfiles/zsh/custom/zshrc.zsh $HOME/.oh-my-zsh/custom/zshrc.zsh - stdout: true - - - command: rm -rf $HOME/.oh-my-zsh/custom/plugins - stdout: true - - - command: ln -s $HOME/Dotfiles/zsh/custom/plugins $HOME/.oh-my-zsh/custom/plugins - stdout: true - - - command: rm -rf $HOME/.oh-my-zsh/custom/themes - stdout: true - - - command: ln -s $HOME/Dotfiles/zsh/custom/themes $HOME/.oh-my-zsh/custom/themes + - command: '/bin/bash -c helpers/install_zsh.sh' + description: Create latex personal directory + stderr: true stdout: true +