]> git.madduck.net Git - etc/neomutt.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

replace identical files with symlinks main
authormartin f. krafft <madduck@madduck.net>
Thu, 23 May 2024 11:40:48 +0000 (13:40 +0200)
committermartin f. krafft <madduck@madduck.net>
Thu, 23 May 2024 11:40:48 +0000 (13:40 +0200)
13 files changed:
.config/neomutt/.gitignore [new file with mode: 0644]
.config/neomutt/aliases [deleted file]
.config/neomutt/append-header [changed from file to symlink]
.config/neomutt/bgview [changed from file to symlink]
.config/neomutt/bgview-delay [changed from file to symlink]
.config/neomutt/bgview-fifo [changed from file to symlink]
.config/neomutt/htmlmail.css
.config/neomutt/lists
.config/neomutt/neomuttrc
.config/neomutt/remove-header [changed from file to symlink]
.config/neomutt/replace-header [changed from file to symlink]
.config/neomutt/sendmail-checks.d/ack-recipients
.config/neomutt/supersede-header [changed from file to symlink]

diff --git a/.config/neomutt/.gitignore b/.config/neomutt/.gitignore
new file mode 100644 (file)
index 0000000..0427d87
--- /dev/null
@@ -0,0 +1 @@
+aliases
diff --git a/.config/neomutt/aliases b/.config/neomutt/aliases
deleted file mode 100644 (file)
index 2ac2f57..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-alias daddy Dr. Hartmut Krafft <krafft@gestion.de>
-alias ruth Ruth Krafft <ruth@krafftwerk.de>
-alias tombo Thomas Krafft <thomas@krafftwerk.de>
-alias andy Andreas Krafft <andreas@krafftwerk.de>
-alias brüder tombo andy
-alias eltern daddy ruth
-alias familie eltern brüder
-
-alias penny Penny Krafft <penny@mjollnir.org>
-
-alias pius Prof. Dr. Pius Baschera <bascpiu@hilti.com>
-
-alias lesser Andreas Lesser <andreas.lesser@toni-kg.de>
-
-alias wiedemann Prof. Dr. Andreas Wiedemann <wiedemann@hennerkes.de>
-
-alias alex Alexander Grüter <alexander.grueter@mtfk.de>
-
-alias wolfgruber Dr. Matthias Wolfgruber <matthias.wolfgruber@gmx.de>
-alias meyrat Marco Meyrat <marco.meyrat@hilti.com>
-alias fd Nicola Fortmann-Drühe <ardex@fortmann-druehe.de-DRAFT>
-alias krauch Dr. Tilman Krauch <tilman.krauch@freudenberg.de>
-alias fd Nicola Fortmann-Drühe <ardex@fortmann-druehe.de-DRAFT>
-alias beirat fd wolfgruber krauch meyrat
-
-alias eslam Mark Eslamlooy <mark.eslamlooy@ardex.de>
-alias eslam1 Mark Eslamlooy <eslamlooy1@ardex.de>
-
-alias distler Renate Distler <renate.distler@m.pkf.de>
-
-alias wirtz Markus Wirtz <mw@opensourcepress.de>
-
-alias pohlmann Peter Pohlmann <peter.pohlmann@tripos-gmbh.de>
-alias kohorst Stephan Kohorst <skohorst@draco.de>
-alias burmester Dr. Helmut Burmester <dhburmester@aol.com>
-alias bästlein Dr. Hanno Bästlein <hanno.baestlein@oneequity.com>
-alias iwu pohlmann kohorst burmester bästlein
-
-alias weg WEG Hanfstaenglstrasse 15/17 <weg@hanfstaenglstrasse.de>
-alias wegbr WEG-Beirat Hanfstaenglstrasse 15/17 <weg-beirat@hanfstaenglstrasse.de>
-
-alias freya Freya Oehle <f.oehle@spottster.com>
-alias tobi Tobias Kempkensteffen <t.kempkensteffen@spottster.com>
-alias stroeher Jan-Hendrik Ströher <jh.stroeher@mithril-holding.de>
-alias forum Roland Hradek <hradek@doldemedien.de>
-alias saule Sabrina Saule <saule@jochen-schweizer.de>
-alias spottster-gv freya tobi stroeher forum saule
-
-alias mario Mario Witte <mario@ri.de>
-alias zeifang Nico Zeifang <nico@ri.de>
-alias wiegard Stefan Wiegard <stefan@ri.de>
-alias ri mario zeifang wiegard
-
-alias moe Maximilian Möhring <max@keyp.io>
-alias mang Simon Mang <simon@keyp.io>
-alias jonathan Jonathan Berroth <jonathan@keyp.io>
-alias keyp moe mang jonathan
-alias rahul Rahul Watson Govindan <rahulgovindan@hotmail.com>
-alias harry Harry Strasser <strasser@digitalconvergence.eu>
-alias chenxi Chenxi Wang <chenxi@raincapital.vc>
-alias freddy Freddy Dezeure <freddy@freddydezeure.eu>
-alias keyp-board rahul harry chenxi
-
-alias fabian Fabian Eckert <fabian.eckert@recup.de>
-alias florian Florian Pachaly <florian.pachaly@recup.de>
-alias christian Christian Vilsmaier <christian@myidkeeper.com>
-alias iris Iris Vilsmaier <iris.vilsmaier@recup.de>
-alias chicco Christian Kohlhof <kohlhof@chicco-di-caffe.com>, Ralf Meyer <meyer@chicco-di-caffe.com>
-alias recup fabian florian steffen christian iris chicco
-
-## FAMILY-ELGER
-#alias ini christine wenninger <iniwenn@web.de>
-#alias bigi brigitte wenninger <bbas.wenninger@web.de>
-#alias bernie bernward wenninger <bernward.wenninger@audi.de>
-#alias kathi-privat katharina wenninger <kathi@madduck.net>
-#alias kathi-compuware katharina wenninger <katharina.wenninger@de.compuware.com>
-#alias kathi kathi-privat
-#alias peti petra wenninger <petrawenn@web.de>
-#alias karsten karsten beckmann <karsten@thebeckmanns.de>
-#alias ingo ingo ludwig <ingo.ludwig@aramark.de>
-#alias isabelelger isabel elger <isabel.elger@stud.uni-muenchen.de>
-#alias wenninger ini bigi bernie kathi peti karsten
-#
-## FAMILY-KRAFFT
-#alias uwe uwe soltesz <uwe.soltesz@t-online.de>
-#alias stefan stefan soltesz <stefansoltesz@gmx.de>
-#alias ulli ulli soltesz <so@gleisslutz.com>
-#alias till till soltesz <soltesz@gmx.de>
-#alias juergenwaage juergen waage <ritaundjuergen@aol.com>
-#alias ecki eckart waage <ewaage@studio-b-music.de>
-#alias gerrit gerrit waage <wa.ge@gmx.de>
-#alias gert gert soltesz <ggsol@t-online.de>
-#alias inga inga soltesz <ingasz@aol.com>
-#alias soltesz uwe stefan ulli till
-#alias waage ecki juergenwaage gerrit
-
-# LISTS
-alias slug slug <slug@sccs.swarthmore.edu>
-alias debian-user debian users <debian-user@lists.debian.org>
-alias debian-project debian project list <debian-project@lists.debian.org>
-alias debian-devel debian developers <debian-devel@lists.debian.org>
-alias debian-mentors debian mentors <debian-mentors@lists.debian.org>
-alias debian-curiosa debian curiosa list <debian-curiosa@lists.debian.org>
-alias debian-firewall debian firewall list <debian-firewall@lists.debian.org>
-alias debian-ipv6 debian ipv6 <debian-ipv6@lists.debian.org>
-alias debian-isp debian isp list <debian-isp@lists.debian.org>
-alias debian-events debian events <debian-events@lists.debian.org>
-alias debian-events-eu debian events in europe <debian-events-eu@lists.debian.org>
-alias debian-muc muenchner debianers <area-muc@teams.debian.net>
-alias debian-ch swiss debian community <community@lists.debian.ch>
-alias debian-vote debian vote list <debian-vote@lists.debian.org>
-alias debian-private debian private list <debian-private@lists.debian.org>
-alias debian-books debian books <debian-books@lists.debian.org>
-alias debian-release debian release team <debian-release@lists.debian.org>
-alias debian-research debian research discussions <debian-research@lists.debian.org>
-alias mutt-users mutt users <mutt-users@mutt.org>
-alias mutt mutt-users
-alias postfix-users postfix users <postfix-users@postfix.org>
-alias postfix postfix-users
-alias cypherpunks cypherpunks <cypherpunks@cpunks.org>
-alias buffy buffy developers list <buffy-devel@lists.alioth.debian.org>
-alias netconf netconf developers list <netconf-devel@lists.alioth.debian.org>
-alias debconf-discuss debconf discussion list <debconf-discuss@lists.debconf.org>
-alias debconf-team debconf team list <debconf-team@lists.debconf.org>
-alias dc-team debconf-team
-alias debconf debconf-discuss
-alias debconf-sponsors-team debconf sponsorship team list <debconf-sponsors-team@lists.debconf.org>
-alias dc-sponsors debconf-sponsors-team
-alias dc15-team dc15 team discussion list <debconf15-team@lists.debian.org>
-alias dc15 dc15 team mailbox <debconf15@debconf.org>
-alias dc16-team dc16 team discussion list <debconf16-team@lists.debian.org>
-alias dc16 dc16-team
-alias debconf-kids debconf kids mailing list <debconf-kids@lists.debian.org>
-alias dc-kids debconf-kids
-alias vim vim help list <vim@vim.org>
-alias dovecot dovecot mailing list <dovecot@dovecot.org>
-alias vcs-home home in vcs discussion list <vcs-home@lists.madduck.net>
-alias vcs-pkg vcs distro packaging discussion list <vcs-pkg-discuss@lists.alioth.debian.org>
-alias offlineimap offlineimap list <offlineimap@complete.org>
-alias mailtags mailtags discussion list <mailtags@lists.madduck.net>
-alias asterisk asterisk users mailing list <asterisk-users@lists.digium.com>
-alias unbound unbound users list <unbound-users@unbound.net>
-alias foo foo camp discussion list <campers@groups.baacamp.org>
-alias rsyslog rsyslog list <rsyslog@lists.adiscon.com>
-alias salt salt users list <salt-users@googlegroups.com>
-alias ansible ansible project list <ansible-project@googlegroups.com>
-alias libvirt libvirt users list <libvirt-users@redhat.com>
-alias vmm vmm users list <vmm-users@lists.sourceforge.net>
-alias osmand osm android users list <osmand@googlegroups.com>
-alias libreoffice libreoffice users list <users@global.libreoffice.org>
-alias lkml linux kernel mailing list <linux-kernel@vger.kernel.org>
-alias django django users list <django-users@googlegroups.com>
-alias django-devel django developers list <django-developers@googlegroups.com>
-alias openssh OpenSSH development mailing list <openssh-unix-dev@mindrot.org>
-alias unison unison users lists <unison-users@yahoogroups.com>
-alias unison-hackers unison hackers lists <unison-hackers@lists.seas.upenn.edu>
-alias sogo sogo users list <users@sogo.nu>
-alias systemd systemd devel list <systemd-devel@lists.freedesktop.org>
-alias odoo odoo community discussion list <community@mail.odoo.com>
-alias munin-users munin users list <munin-users@lists.sourceforge.net>
-alias awesome awesome window manager list <awesome@naquadah.org>
-alias fsfe.de FSFE Koordinationsliste Deutschland <germany@lists.fsfe.org>
-alias zsh-users zsh users list <zsh-users@zsh.org>
-alias zsh-workers zsh workers list <zsh-workers@zsh.org>
-alias zsh-devel zsh-workers
-alias gnupg-users gnupg users list <gnupg-users@gnupg.org>
-alias gpg gnupg-users
-alias gnupg gnupg-users
-alias ccc-muc µC3 talk Liste <talk@lists.muc.ccc.de>
-alias lca lca chat list <lca2021-chat@lists.lca2021.linux.org.au>
-alias openedu-parents OpenEDU parents list <openedu-parents@lists.openstem.com.au>
-alias stafford Stafford & Port Streets neighbourhood <staffordstreet@lists.madduck.net>
-alias tigervnc-users TigerVNC users list <tigervnc-users@googlegroups.com>
-alias netfilter netfilter users list <netfilter@vger.kernel.org>
-
-alias btsc Debian bug tracker control bot <control@bugs.debian.org>
-
-# vim:tw=0:ft=muttrc
deleted file mode 100755 (executable)
index ab7444bb5eb7b68f98666dd381c0434d7877fb22..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# edit-header - helper script to append/replace/remove headers with mutt
-#
-# Based on an idea by David Champion <dgc at uchicago.edu>
-#
-# Copyright © 2008 martin f. krafft <madduck@madduck.net>
-# Released under the terms of the Artistic Licence 2.0
-#
-set -eu
-
-if [ ! -x "$(command -v formail)" ]; then
-  echo E: formail not installed. >&2
-  exit 1
-fi
-
-header="${1:-}"
-if [ -z "$header" ]; then
-  echo "E: no header specified" >&2
-  exit 1
-fi
-
-get_header_contents()
-{
-  local contents
-  printf "Enter ${1:-header} contents: " >/dev/tty
-  read contents </dev/tty
-  echo "$contents"
-}
-
-script="${0%/*}/${2:-}"
-if [ -f "$script" ] && [ -x "$script" ]; then
-  if [ -z "${__RLWRAPPED:-}" ] && [ -x $(command -v rlwrap) ]; then
-    __RLWRAPPED=true exec rlwrap "$0" "$@"
-  fi
-
-  contents_source="$script"
-  shift
-else
-  contents_source=get_header_contents
-fi
-
-editor=
-case "$0" in
-  *append-header|*supersede-header|*replace-header)
-    contents="${2:-}"
-    [ -n "$contents" ] || contents="$(eval $contents_source $header)"
-    case "$0" in
-      *append-header) flag=-A;;
-      *supersede-header) flag=-i;;
-      *replace-header) flag=-I;;
-    esac
-    editor="${0%/*}/filter-proxy formail $flag \'$header: $contents\'"
-    ;;
-
-  *remove-header)
-    editor="${0%/*}/filter-proxy formail -I \'$header:\'"
-    ;;
-
-  *)
-    echo "E: unknown invocation: ${0##*/}" >&2
-    exit 1
-    ;;
-
-esac
-
-echo "set my_editor=\"\$editor\""
-echo "set my_filter=\"$editor\""
-echo -n "push '"
-echo -n "<enter-command>set editor=\"\$my_filter\"<enter>"
-echo -n "<edit>"
-echo -n "<enter-command>set editor=\"\$my_editor\"<enter>"
-echo -n "<enter-command>unset my_filter<enter>"
-echo -n "<enter-command>unset my_editor<enter>"
-echo "'"
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..5cc745f68f42c214c8db7f63b6fa650810fbebcc
--- /dev/null
@@ -0,0 +1 @@
+edit-header
\ No newline at end of file
deleted file mode 100755 (executable)
index 37f40ad63f90f0060f4d740b4a76b6fb0dd74365..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/bin/sh
-
-#exec 2>> /tmp/bgrun.stderr
-#set -x
-
-SELF="${0##*/}"
-
-TEMPDIR=
-TEMPRUNDIR=.tempdir-run.d
-cleanup() {
-  if [ -d $TEMPRUNDIR ]; then
-    local TEMPDIR; TEMPDIR="$PWD"
-    notify_output
-    cd /
-    rm -rf "$TEMPDIR"
-  fi
-  trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-}
-trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-
-enter_tempdir() {
-  if [ -d $TEMPRUNDIR ]; then
-    return
-
-  else
-    if [ -z "${TMPDIR:-}" ]; then
-      TMPDIR=/tmp
-    fi
-    for i in $LOGNAME volatile; do
-      if [ -d "${TMPDIR}/$i" ]; then
-        TMPDIR="${TMPDIR}/$i"
-        break
-      fi
-    done
-    cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX)
-    mkdir $TEMPRUNDIR
-  fi
-}
-
-notify() {
-  if [ -x "$(command -v awesome-client)" ]; then
-    local stdout stderr escaped output
-    stdout="${2:-}"
-    stderr="${3:-}"
-    for i in stdout stderr; do
-      if eval test -s $TEMPRUNDIR/output.$i; then
-        escaped=$(eval sed -e 's,\",\\\",g' $TEMPRUNDIR/output.$i)
-        output="${output:+$output
-}${i}:
-$escaped"
-      fi
-    done
-    [ -n "${escaped:-}" ] || return
-    awesome-client <<-_eof
-       local naughty = require("naughty")
-       naughty.notify({ preset = naughty.config.presets.low,
-               title  = "${1:-Output from mutt/$SELF}",
-               text   = [[$output]]
-               })
-       _eof
-  fi
-}
-
-notify_output() {
-  [ -d $TEMPRUNDIR ] || return
-  local stdout stderr anything
-
-  for i in stdout stderr; do
-    if [ -s "$TEMPRUNDIR/output.$i" ]; then
-      eval $i="'$TEMPRUNDIR/output.$i'"
-    else
-      eval $i=/dev/null
-    fi
-  done
-
-  notify "Output from mutt/$SELF" $stdout $stderr
-}
-
-guess_extension() {
-  python3 -c "import mimetypes; print(mimetypes.guess_extension('$1'))"
-}
-
-get_file() {
-  local t
-  if [ -z "$1" ]; then
-    t=$(mktemp -p "$PWD" tmp.XXXXXXXXXX$(guess_extension "$MIMETYPE"))
-    cat > "$t"
-    echo "$t"
-  else
-    t="$(echo -n ${1##*/} | sed -re 's![^[:alnum:],.@%^+=_-]!_!gi')"
-    ln "$1" "$t" 2>/dev/null || cp "$1" "$t"
-    echo "$PWD/$t"
-  fi
-}
-
-MIMETYPE= FILENAME= VIEWER= DELAY=1
-state=
-for arg in "$@"; do
-  case "$state/$arg" in
-
-    (/-t) state=t;;
-    (t/*) MIMETYPE="$arg"; state=;;
-
-    (/-f) state=f;;
-    (f/*) FILENAME="$arg"; state=;;
-
-    (/-d) state=d;;
-    (d/*) DELAY="$arg"; state=;;
-
-    (/-v) state=v;;
-    (v/*) VIEWER="$arg"; state=;;
-
-    (*)
-      echo >&2 "E: Invalid argument: $i"
-      exit 1
-      ;;
-
-  esac
-done
-
-launch_viewer() {
-  local filename; filename="$1"
-  if [ -z "$VIEWER" ]; then
-    [ -n "${2:-}" ] && filename="${2}:${1}"
-    run-mailcap "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  else
-    $VIEWER "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  fi
-}
-
-case "$SELF" in
-  (bgview)
-    # make a copy of the file, then launch a shell process in the background
-    # to divert to run-mailcap, after which the temporary directory gets
-    # cleaned up.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    (
-      ts=$(($(date +%s) + $DELAY))
-      launch_viewer "$FILE" "$MIMETYPE"
-      while [ $(date +%s) -lt $ts ]; do sleep 1; done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-  (bgview-fifo)
-    # hack to stay around until the viewer has read the file: make a fifo and
-    # wait for the cat process to finish writing to it, which means that it
-    # must have been consumed on the other end.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    FIFO="fifo-${FILE##*/}"
-    mkfifo "$FIFO"
-    cat "$FILE" > "$FIFO" &
-    # For some reason, we do have to write a tempfile and cannot seem to
-    # redirect stdin directly to the fifo, i.e. this does not work instead of
-    # the previous three lines:
-    ## cat > "$FIFO" &
-    launch_viewer "$FIFO" "$MIMETYPE"
-    wait
-    cleanup
-    ;;
-  (bgview-delay)
-    # hack to stay around until the file hasn't been accessed for a few
-    # seconds, so that we can clean up. This is for cases when the FIFO method
-    # doesn't work, because e.g. Firefox randomly chooses it needs to read
-    # HTML files twice.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    touch "$FILE"
-    (launch_viewer "$FILE" "$MIMETYPE") &
-    (
-      while [ $(($(stat -c%X "$FILE") + $DELAY)) -gt $(date +%s) ]; do
-        sleep 1
-      done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-esac
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..b07e7aa9214f3112d249dce94d87d013e7d8441d
--- /dev/null
@@ -0,0 +1 @@
+bgrun
\ No newline at end of file
deleted file mode 100755 (executable)
index 37f40ad63f90f0060f4d740b4a76b6fb0dd74365..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/bin/sh
-
-#exec 2>> /tmp/bgrun.stderr
-#set -x
-
-SELF="${0##*/}"
-
-TEMPDIR=
-TEMPRUNDIR=.tempdir-run.d
-cleanup() {
-  if [ -d $TEMPRUNDIR ]; then
-    local TEMPDIR; TEMPDIR="$PWD"
-    notify_output
-    cd /
-    rm -rf "$TEMPDIR"
-  fi
-  trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-}
-trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-
-enter_tempdir() {
-  if [ -d $TEMPRUNDIR ]; then
-    return
-
-  else
-    if [ -z "${TMPDIR:-}" ]; then
-      TMPDIR=/tmp
-    fi
-    for i in $LOGNAME volatile; do
-      if [ -d "${TMPDIR}/$i" ]; then
-        TMPDIR="${TMPDIR}/$i"
-        break
-      fi
-    done
-    cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX)
-    mkdir $TEMPRUNDIR
-  fi
-}
-
-notify() {
-  if [ -x "$(command -v awesome-client)" ]; then
-    local stdout stderr escaped output
-    stdout="${2:-}"
-    stderr="${3:-}"
-    for i in stdout stderr; do
-      if eval test -s $TEMPRUNDIR/output.$i; then
-        escaped=$(eval sed -e 's,\",\\\",g' $TEMPRUNDIR/output.$i)
-        output="${output:+$output
-}${i}:
-$escaped"
-      fi
-    done
-    [ -n "${escaped:-}" ] || return
-    awesome-client <<-_eof
-       local naughty = require("naughty")
-       naughty.notify({ preset = naughty.config.presets.low,
-               title  = "${1:-Output from mutt/$SELF}",
-               text   = [[$output]]
-               })
-       _eof
-  fi
-}
-
-notify_output() {
-  [ -d $TEMPRUNDIR ] || return
-  local stdout stderr anything
-
-  for i in stdout stderr; do
-    if [ -s "$TEMPRUNDIR/output.$i" ]; then
-      eval $i="'$TEMPRUNDIR/output.$i'"
-    else
-      eval $i=/dev/null
-    fi
-  done
-
-  notify "Output from mutt/$SELF" $stdout $stderr
-}
-
-guess_extension() {
-  python3 -c "import mimetypes; print(mimetypes.guess_extension('$1'))"
-}
-
-get_file() {
-  local t
-  if [ -z "$1" ]; then
-    t=$(mktemp -p "$PWD" tmp.XXXXXXXXXX$(guess_extension "$MIMETYPE"))
-    cat > "$t"
-    echo "$t"
-  else
-    t="$(echo -n ${1##*/} | sed -re 's![^[:alnum:],.@%^+=_-]!_!gi')"
-    ln "$1" "$t" 2>/dev/null || cp "$1" "$t"
-    echo "$PWD/$t"
-  fi
-}
-
-MIMETYPE= FILENAME= VIEWER= DELAY=1
-state=
-for arg in "$@"; do
-  case "$state/$arg" in
-
-    (/-t) state=t;;
-    (t/*) MIMETYPE="$arg"; state=;;
-
-    (/-f) state=f;;
-    (f/*) FILENAME="$arg"; state=;;
-
-    (/-d) state=d;;
-    (d/*) DELAY="$arg"; state=;;
-
-    (/-v) state=v;;
-    (v/*) VIEWER="$arg"; state=;;
-
-    (*)
-      echo >&2 "E: Invalid argument: $i"
-      exit 1
-      ;;
-
-  esac
-done
-
-launch_viewer() {
-  local filename; filename="$1"
-  if [ -z "$VIEWER" ]; then
-    [ -n "${2:-}" ] && filename="${2}:${1}"
-    run-mailcap "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  else
-    $VIEWER "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  fi
-}
-
-case "$SELF" in
-  (bgview)
-    # make a copy of the file, then launch a shell process in the background
-    # to divert to run-mailcap, after which the temporary directory gets
-    # cleaned up.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    (
-      ts=$(($(date +%s) + $DELAY))
-      launch_viewer "$FILE" "$MIMETYPE"
-      while [ $(date +%s) -lt $ts ]; do sleep 1; done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-  (bgview-fifo)
-    # hack to stay around until the viewer has read the file: make a fifo and
-    # wait for the cat process to finish writing to it, which means that it
-    # must have been consumed on the other end.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    FIFO="fifo-${FILE##*/}"
-    mkfifo "$FIFO"
-    cat "$FILE" > "$FIFO" &
-    # For some reason, we do have to write a tempfile and cannot seem to
-    # redirect stdin directly to the fifo, i.e. this does not work instead of
-    # the previous three lines:
-    ## cat > "$FIFO" &
-    launch_viewer "$FIFO" "$MIMETYPE"
-    wait
-    cleanup
-    ;;
-  (bgview-delay)
-    # hack to stay around until the file hasn't been accessed for a few
-    # seconds, so that we can clean up. This is for cases when the FIFO method
-    # doesn't work, because e.g. Firefox randomly chooses it needs to read
-    # HTML files twice.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    touch "$FILE"
-    (launch_viewer "$FILE" "$MIMETYPE") &
-    (
-      while [ $(($(stat -c%X "$FILE") + $DELAY)) -gt $(date +%s) ]; do
-        sleep 1
-      done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-esac
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..b07e7aa9214f3112d249dce94d87d013e7d8441d
--- /dev/null
@@ -0,0 +1 @@
+bgrun
\ No newline at end of file
deleted file mode 100755 (executable)
index 37f40ad63f90f0060f4d740b4a76b6fb0dd74365..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/bin/sh
-
-#exec 2>> /tmp/bgrun.stderr
-#set -x
-
-SELF="${0##*/}"
-
-TEMPDIR=
-TEMPRUNDIR=.tempdir-run.d
-cleanup() {
-  if [ -d $TEMPRUNDIR ]; then
-    local TEMPDIR; TEMPDIR="$PWD"
-    notify_output
-    cd /
-    rm -rf "$TEMPDIR"
-  fi
-  trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-}
-trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-
-enter_tempdir() {
-  if [ -d $TEMPRUNDIR ]; then
-    return
-
-  else
-    if [ -z "${TMPDIR:-}" ]; then
-      TMPDIR=/tmp
-    fi
-    for i in $LOGNAME volatile; do
-      if [ -d "${TMPDIR}/$i" ]; then
-        TMPDIR="${TMPDIR}/$i"
-        break
-      fi
-    done
-    cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX)
-    mkdir $TEMPRUNDIR
-  fi
-}
-
-notify() {
-  if [ -x "$(command -v awesome-client)" ]; then
-    local stdout stderr escaped output
-    stdout="${2:-}"
-    stderr="${3:-}"
-    for i in stdout stderr; do
-      if eval test -s $TEMPRUNDIR/output.$i; then
-        escaped=$(eval sed -e 's,\",\\\",g' $TEMPRUNDIR/output.$i)
-        output="${output:+$output
-}${i}:
-$escaped"
-      fi
-    done
-    [ -n "${escaped:-}" ] || return
-    awesome-client <<-_eof
-       local naughty = require("naughty")
-       naughty.notify({ preset = naughty.config.presets.low,
-               title  = "${1:-Output from mutt/$SELF}",
-               text   = [[$output]]
-               })
-       _eof
-  fi
-}
-
-notify_output() {
-  [ -d $TEMPRUNDIR ] || return
-  local stdout stderr anything
-
-  for i in stdout stderr; do
-    if [ -s "$TEMPRUNDIR/output.$i" ]; then
-      eval $i="'$TEMPRUNDIR/output.$i'"
-    else
-      eval $i=/dev/null
-    fi
-  done
-
-  notify "Output from mutt/$SELF" $stdout $stderr
-}
-
-guess_extension() {
-  python3 -c "import mimetypes; print(mimetypes.guess_extension('$1'))"
-}
-
-get_file() {
-  local t
-  if [ -z "$1" ]; then
-    t=$(mktemp -p "$PWD" tmp.XXXXXXXXXX$(guess_extension "$MIMETYPE"))
-    cat > "$t"
-    echo "$t"
-  else
-    t="$(echo -n ${1##*/} | sed -re 's![^[:alnum:],.@%^+=_-]!_!gi')"
-    ln "$1" "$t" 2>/dev/null || cp "$1" "$t"
-    echo "$PWD/$t"
-  fi
-}
-
-MIMETYPE= FILENAME= VIEWER= DELAY=1
-state=
-for arg in "$@"; do
-  case "$state/$arg" in
-
-    (/-t) state=t;;
-    (t/*) MIMETYPE="$arg"; state=;;
-
-    (/-f) state=f;;
-    (f/*) FILENAME="$arg"; state=;;
-
-    (/-d) state=d;;
-    (d/*) DELAY="$arg"; state=;;
-
-    (/-v) state=v;;
-    (v/*) VIEWER="$arg"; state=;;
-
-    (*)
-      echo >&2 "E: Invalid argument: $i"
-      exit 1
-      ;;
-
-  esac
-done
-
-launch_viewer() {
-  local filename; filename="$1"
-  if [ -z "$VIEWER" ]; then
-    [ -n "${2:-}" ] && filename="${2}:${1}"
-    run-mailcap "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  else
-    $VIEWER "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
-  fi
-}
-
-case "$SELF" in
-  (bgview)
-    # make a copy of the file, then launch a shell process in the background
-    # to divert to run-mailcap, after which the temporary directory gets
-    # cleaned up.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    (
-      ts=$(($(date +%s) + $DELAY))
-      launch_viewer "$FILE" "$MIMETYPE"
-      while [ $(date +%s) -lt $ts ]; do sleep 1; done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-  (bgview-fifo)
-    # hack to stay around until the viewer has read the file: make a fifo and
-    # wait for the cat process to finish writing to it, which means that it
-    # must have been consumed on the other end.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    FIFO="fifo-${FILE##*/}"
-    mkfifo "$FIFO"
-    cat "$FILE" > "$FIFO" &
-    # For some reason, we do have to write a tempfile and cannot seem to
-    # redirect stdin directly to the fifo, i.e. this does not work instead of
-    # the previous three lines:
-    ## cat > "$FIFO" &
-    launch_viewer "$FIFO" "$MIMETYPE"
-    wait
-    cleanup
-    ;;
-  (bgview-delay)
-    # hack to stay around until the file hasn't been accessed for a few
-    # seconds, so that we can clean up. This is for cases when the FIFO method
-    # doesn't work, because e.g. Firefox randomly chooses it needs to read
-    # HTML files twice.
-    enter_tempdir
-    FILE="$(get_file "$FILENAME")"
-    touch "$FILE"
-    (launch_viewer "$FILE" "$MIMETYPE") &
-    (
-      while [ $(($(stat -c%X "$FILE") + $DELAY)) -gt $(date +%s) ]; do
-        sleep 1
-      done
-      cleanup
-    ) &
-    trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
-    ;;
-esac
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..b07e7aa9214f3112d249dce94d87d013e7d8441d
--- /dev/null
@@ -0,0 +1 @@
+bgrun
\ No newline at end of file
index 0a843b2f09b59d9ddaf4407feff79fad7506a825..6c911a306aaa0b0949c3965bbcf69627ebded81c 100644 (file)
@@ -1,7 +1,6 @@
 body, .signature, #signature {
     font-family: Lato, Calibri, Tahoma, sans-serif;
     max-width: 32em;
-    margin: 0 auto;
 }
 
 p {
@@ -46,13 +45,12 @@ blockquote, .blockquote {
     margin: 0;
     font-style: italic;
     border-left: 2px solid #666;
-    color: #666;
-    font-size: 80%;
 }
 
 .admonition blockquote {
     font-size: inherit;
     border-left: inherit;
+    color: #666;
 }
 
 table, th, td {
index c2fb824afcfd721d7e467928729b0e94f6e3fce6..5a90c1ed6d0df647934271791e685c3d850b87c6 100644 (file)
@@ -99,13 +99,13 @@ subscribe webis-android-beta@googlegroups.com
 
 subscribe django-users@googlegroups.com
 
+subscribe unbound-users@lists.nlnetlabs.nl
+
 subscribe (alteherren|info)@sudetia\.de
 
 subscribe ip@(v2.)?listbox.com
 subscribe cypherpunks@cpunks.org
 
-subscribe thorndon-c@lists.madduck.net
-
 subscribe staffordstreet@lists.madduck.net
 
 subscribe .+@r2e\.madduck\.net
index d7b4a3299d05da2217b87452219e4fa424e1649c..6562dcff9119320d63ec29f9b440b8c0d8ba2b70 100644 (file)
@@ -66,5 +66,4 @@ tag-formats "inbox"   "GI" \
 set pager_format="<%a> %*  %J (%P)"
 
 set my_markdown_extensions="admonition,codehilite,sane_lists,smarty,pymdownx.extra,pymdownx.highlight,pymdownx.critic,pymdownx.keys,pymdownx.magiclink,pymdownx.mark,pymdownx.saneheaders,pymdownx.smartsymbols,nl2br"
-macro compose y "<enter-command> source '$my_confdir/buildmimetree.py --extensions $my_markdown_extensions --tempdir $tmpdir --only-build --css-file $my_confdir/htmlmail.css|'<enter><enter-command> source \$my_mdwn_postprocess_cmd_file<enter>" "Convert message into a modern MIME tree with inline images"
-bind compose Y send-message
+macro compose y "<enter-command> source '$my_confdir/buildmimetree.py --extensions $my_markdown_extensions --tempdir $tmpdir --css-file $my_confdir/htmlmail.css|'<enter><enter-command> source \$my_mdwn_postprocess_cmd_file<enter>" "Convert message into a modern MIME tree with inline images"
deleted file mode 100755 (executable)
index ab7444bb5eb7b68f98666dd381c0434d7877fb22..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# edit-header - helper script to append/replace/remove headers with mutt
-#
-# Based on an idea by David Champion <dgc at uchicago.edu>
-#
-# Copyright © 2008 martin f. krafft <madduck@madduck.net>
-# Released under the terms of the Artistic Licence 2.0
-#
-set -eu
-
-if [ ! -x "$(command -v formail)" ]; then
-  echo E: formail not installed. >&2
-  exit 1
-fi
-
-header="${1:-}"
-if [ -z "$header" ]; then
-  echo "E: no header specified" >&2
-  exit 1
-fi
-
-get_header_contents()
-{
-  local contents
-  printf "Enter ${1:-header} contents: " >/dev/tty
-  read contents </dev/tty
-  echo "$contents"
-}
-
-script="${0%/*}/${2:-}"
-if [ -f "$script" ] && [ -x "$script" ]; then
-  if [ -z "${__RLWRAPPED:-}" ] && [ -x $(command -v rlwrap) ]; then
-    __RLWRAPPED=true exec rlwrap "$0" "$@"
-  fi
-
-  contents_source="$script"
-  shift
-else
-  contents_source=get_header_contents
-fi
-
-editor=
-case "$0" in
-  *append-header|*supersede-header|*replace-header)
-    contents="${2:-}"
-    [ -n "$contents" ] || contents="$(eval $contents_source $header)"
-    case "$0" in
-      *append-header) flag=-A;;
-      *supersede-header) flag=-i;;
-      *replace-header) flag=-I;;
-    esac
-    editor="${0%/*}/filter-proxy formail $flag \'$header: $contents\'"
-    ;;
-
-  *remove-header)
-    editor="${0%/*}/filter-proxy formail -I \'$header:\'"
-    ;;
-
-  *)
-    echo "E: unknown invocation: ${0##*/}" >&2
-    exit 1
-    ;;
-
-esac
-
-echo "set my_editor=\"\$editor\""
-echo "set my_filter=\"$editor\""
-echo -n "push '"
-echo -n "<enter-command>set editor=\"\$my_filter\"<enter>"
-echo -n "<edit>"
-echo -n "<enter-command>set editor=\"\$my_editor\"<enter>"
-echo -n "<enter-command>unset my_filter<enter>"
-echo -n "<enter-command>unset my_editor<enter>"
-echo "'"
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..5cc745f68f42c214c8db7f63b6fa650810fbebcc
--- /dev/null
@@ -0,0 +1 @@
+edit-header
\ No newline at end of file
deleted file mode 100755 (executable)
index ab7444bb5eb7b68f98666dd381c0434d7877fb22..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# edit-header - helper script to append/replace/remove headers with mutt
-#
-# Based on an idea by David Champion <dgc at uchicago.edu>
-#
-# Copyright © 2008 martin f. krafft <madduck@madduck.net>
-# Released under the terms of the Artistic Licence 2.0
-#
-set -eu
-
-if [ ! -x "$(command -v formail)" ]; then
-  echo E: formail not installed. >&2
-  exit 1
-fi
-
-header="${1:-}"
-if [ -z "$header" ]; then
-  echo "E: no header specified" >&2
-  exit 1
-fi
-
-get_header_contents()
-{
-  local contents
-  printf "Enter ${1:-header} contents: " >/dev/tty
-  read contents </dev/tty
-  echo "$contents"
-}
-
-script="${0%/*}/${2:-}"
-if [ -f "$script" ] && [ -x "$script" ]; then
-  if [ -z "${__RLWRAPPED:-}" ] && [ -x $(command -v rlwrap) ]; then
-    __RLWRAPPED=true exec rlwrap "$0" "$@"
-  fi
-
-  contents_source="$script"
-  shift
-else
-  contents_source=get_header_contents
-fi
-
-editor=
-case "$0" in
-  *append-header|*supersede-header|*replace-header)
-    contents="${2:-}"
-    [ -n "$contents" ] || contents="$(eval $contents_source $header)"
-    case "$0" in
-      *append-header) flag=-A;;
-      *supersede-header) flag=-i;;
-      *replace-header) flag=-I;;
-    esac
-    editor="${0%/*}/filter-proxy formail $flag \'$header: $contents\'"
-    ;;
-
-  *remove-header)
-    editor="${0%/*}/filter-proxy formail -I \'$header:\'"
-    ;;
-
-  *)
-    echo "E: unknown invocation: ${0##*/}" >&2
-    exit 1
-    ;;
-
-esac
-
-echo "set my_editor=\"\$editor\""
-echo "set my_filter=\"$editor\""
-echo -n "push '"
-echo -n "<enter-command>set editor=\"\$my_filter\"<enter>"
-echo -n "<edit>"
-echo -n "<enter-command>set editor=\"\$my_editor\"<enter>"
-echo -n "<enter-command>unset my_filter<enter>"
-echo -n "<enter-command>unset my_editor<enter>"
-echo "'"
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..5cc745f68f42c214c8db7f63b6fa650810fbebcc
--- /dev/null
@@ -0,0 +1 @@
+edit-header
\ No newline at end of file
index 350ec449ac0a1cf3449cf7ae66fe421ae216574d..30f0fe2c86de84e6cc43e180d2973f72ae8370dc 100755 (executable)
@@ -22,7 +22,7 @@
 #
 set -eu
 
-CHECKLIST="$HOME/.config/mutt/ack-recipients"
+CHECKLIST="${0%/*}/../ack-recipients"
 HEADER=X-Acked
 ACKED_RCPTS=$(formail -czx ${HEADER}: < $1 | sed -re 's/,\s*/ /g' | tr '[[:upper:]]' '[[:lower:]]')
 MAILFILE="$1"; shift
deleted file mode 100755 (executable)
index ab7444bb5eb7b68f98666dd381c0434d7877fb22..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-# edit-header - helper script to append/replace/remove headers with mutt
-#
-# Based on an idea by David Champion <dgc at uchicago.edu>
-#
-# Copyright © 2008 martin f. krafft <madduck@madduck.net>
-# Released under the terms of the Artistic Licence 2.0
-#
-set -eu
-
-if [ ! -x "$(command -v formail)" ]; then
-  echo E: formail not installed. >&2
-  exit 1
-fi
-
-header="${1:-}"
-if [ -z "$header" ]; then
-  echo "E: no header specified" >&2
-  exit 1
-fi
-
-get_header_contents()
-{
-  local contents
-  printf "Enter ${1:-header} contents: " >/dev/tty
-  read contents </dev/tty
-  echo "$contents"
-}
-
-script="${0%/*}/${2:-}"
-if [ -f "$script" ] && [ -x "$script" ]; then
-  if [ -z "${__RLWRAPPED:-}" ] && [ -x $(command -v rlwrap) ]; then
-    __RLWRAPPED=true exec rlwrap "$0" "$@"
-  fi
-
-  contents_source="$script"
-  shift
-else
-  contents_source=get_header_contents
-fi
-
-editor=
-case "$0" in
-  *append-header|*supersede-header|*replace-header)
-    contents="${2:-}"
-    [ -n "$contents" ] || contents="$(eval $contents_source $header)"
-    case "$0" in
-      *append-header) flag=-A;;
-      *supersede-header) flag=-i;;
-      *replace-header) flag=-I;;
-    esac
-    editor="${0%/*}/filter-proxy formail $flag \'$header: $contents\'"
-    ;;
-
-  *remove-header)
-    editor="${0%/*}/filter-proxy formail -I \'$header:\'"
-    ;;
-
-  *)
-    echo "E: unknown invocation: ${0##*/}" >&2
-    exit 1
-    ;;
-
-esac
-
-echo "set my_editor=\"\$editor\""
-echo "set my_filter=\"$editor\""
-echo -n "push '"
-echo -n "<enter-command>set editor=\"\$my_filter\"<enter>"
-echo -n "<edit>"
-echo -n "<enter-command>set editor=\"\$my_editor\"<enter>"
-echo -n "<enter-command>unset my_filter<enter>"
-echo -n "<enter-command>unset my_editor<enter>"
-echo "'"
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..5cc745f68f42c214c8db7f63b6fa650810fbebcc
--- /dev/null
@@ -0,0 +1 @@
+edit-header
\ No newline at end of file