summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/Makefile2
-rw-r--r--.config/gpg/gpg.conf242
-rw-r--r--.config/maildirproc/att.rc159
-rw-r--r--.config/maildirproc/purdue.rc16
-rw-r--r--.config/symlinks11
5 files changed, 89 insertions, 341 deletions
diff --git a/.config/Makefile b/.config/Makefile
index c530806..94d0cca 100644
--- a/.config/Makefile
+++ b/.config/Makefile
@@ -19,7 +19,7 @@ clean:
rm -f $(targets)
${HOME}/.folders: ${HOME}/Maildir $(MAKEFILE_LIST)
- find $< -mindepth 2 -maxdepth 2 \( -type f -name "maildirfolder" -o -type d -name new -o -type d -name tmp -o -type d -name cur \) -printf '%P\0' | xargs -r0 dirname -z -- | sort -zu | xargs -0 printf -- '.%s\n' >'$@'
+ find $< -mindepth 2 -maxdepth 2 \( -type f -name "maildirfolder" -o -type d -name new -o -type d -name tmp -o -type d -name cur \) -printf '%P\0' | xargs -r0 dirname -z -- | sort -zu | xargs -0 printf -- '.%s\n' | grep -vP '^\.FOLDERS.Ham.20(?!15)' > '$@'
${GIT_DIR}/info/exclude: ${HOME}/.git.info.exclude.in $(shell echo .??*/)
( cat $<; find $^ -type f -name 'CACHEDIR.TAG' -printf '%h\n'|sed 's@^\./@/@' ) > $@
diff --git a/.config/gpg/gpg.conf b/.config/gpg/gpg.conf
deleted file mode 100644
index f43a58e..0000000
--- a/.config/gpg/gpg.conf
+++ /dev/null
@@ -1,242 +0,0 @@
-# Options for GnuPG
-# Copyright 1998, 1999, 2000, 2001, 2002, 2003,
-# 2010 Free Software Foundation, Inc.
-#
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-#
-# This file is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# Unless you specify which option file to use (with the command line
-# option "--options filename"), GnuPG uses the file ~/.gnupg/gpg.conf
-# by default.
-#
-# An options file can contain any long options which are available in
-# GnuPG. If the first non white space character of a line is a '#',
-# this line is ignored. Empty lines are also ignored.
-#
-# See the man page for a list of options.
-
-# Uncomment the following option to get rid of the copyright notice
-
-no-greeting
-
-# If you have more than 1 secret key in your keyring, you may want to
-# uncomment the following option and set your preferred keyid.
-
-default-key D4FFBFC9
-
-# If you do not pass a recipient to gpg, it will ask for one. Using
-# this option you can encrypt to a default key. Key validation will
-# not be done in this case. The second form uses the default key as
-# default recipient.
-
-#default-recipient some-user-id
-#default-recipient-self
-
-# Use --encrypt-to to add the specified key as a recipient to all
-# messages. This is useful, for example, when sending mail through a
-# mail client that does not automatically encrypt mail to your key.
-# In the example, this option allows you to read your local copy of
-# encrypted mail that you've sent to others.
-
-#encrypt-to some-key-id
-
-# By default GnuPG creates version 4 signatures for data files as
-# specified by OpenPGP. Some earlier (PGP 6, PGP 7) versions of PGP
-# require the older version 3 signatures. Setting this option forces
-# GnuPG to create version 3 signatures.
-
-#force-v3-sigs
-
-# Because some mailers change lines starting with "From " to ">From "
-# it is good to handle such lines in a special way when creating
-# cleartext signatures; all other PGP versions do it this way too.
-
-#no-escape-from-lines
-
-# If you do not use the Latin-1 (ISO-8859-1) charset, you should tell
-# GnuPG which is the native character set. Please check the man page
-# for supported character sets. This character set is only used for
-# metadata and not for the actual message which does not undergo any
-# translation. Note that future version of GnuPG will change to UTF-8
-# as default character set. In most cases this option is not required
-# as GnuPG is able to figure out the correct charset at runtime.
-
-charset utf-8
-
-# Group names may be defined like this:
-# group mynames = paige 0x12345678 joe patti
-#
-# Any time "mynames" is a recipient (-r or --recipient), it will be
-# expanded to the names "paige", "joe", and "patti", and the key ID
-# "0x12345678". Note there is only one level of expansion - you
-# cannot make an group that points to another group. Note also that
-# if there are spaces in the recipient name, this will appear as two
-# recipients. In these cases it is better to use the key ID.
-
-#group mynames = paige 0x12345678 joe patti
-
-# Lock the file only once for the lifetime of a process. If you do
-# not define this, the lock will be obtained and released every time
-# it is needed, which is usually preferable.
-
-#lock-once
-
-# GnuPG can send and receive keys to and from a keyserver. These
-# servers can be HKP, email, or LDAP (if GnuPG is built with LDAP
-# support).
-#
-# Example HKP keyserver:
-# hkp://keys.gnupg.net
-# hkp://subkeys.pgp.net
-#
-# Example email keyserver:
-# mailto:pgp-public-keys@keys.pgp.net
-#
-# Example LDAP keyservers:
-# ldap://keyserver.pgp.com
-#
-# Regular URL syntax applies, and you can set an alternate port
-# through the usual method:
-# hkp://keyserver.example.net:22742
-#
-# Most users just set the name and type of their preferred keyserver.
-# Note that most servers (with the notable exception of
-# ldap://keyserver.pgp.com) synchronize changes with each other. Note
-# also that a single server name may actually point to multiple
-# servers via DNS round-robin. hkp://keys.gnupg.net is an example of
-# such a "server", which spreads the load over a number of physical
-# servers. To see the IP address of the server actually used, you may use
-# the "--keyserver-options debug".
-
-#keyserver hkp://keys.gnupg.net
-#keyserver mailto:pgp-public-keys@keys.nl.pgp.net
-#keyserver ldap://keyserver.pgp.com
-
-#keyserver hkps://keys.indymedia.org
-#keyserver-options ca-cert-file=/etc/ssl/certs/cacert.org.pem
-
-keyserver hkps://zimmermann.mayfirst.org
-keyserver-options ca-cert-file=/home/luke/.gnupg/mfpl.crt
-
-# Common options for keyserver functions:
-#
-# include-disabled : when searching, include keys marked as "disabled"
-# on the keyserver (not all keyservers support this).
-#
-# no-include-revoked : when searching, do not include keys marked as
-# "revoked" on the keyserver.
-#
-# verbose : show more information as the keys are fetched.
-# Can be used more than once to increase the amount
-# of information shown.
-#
-# use-temp-files : use temporary files instead of a pipe to talk to the
-# keyserver. Some platforms (Win32 for one) always
-# have this on.
-#
-# keep-temp-files : do not delete temporary files after using them
-# (really only useful for debugging)
-#
-# http-proxy="proxy" : set the proxy to use for HTTP and HKP keyservers.
-# This overrides the "http_proxy" environment variable,
-# if any.
-#
-# auto-key-retrieve : automatically fetch keys as needed from the keyserver
-# when verifying signatures or when importing keys that
-# have been revoked by a revocation key that is not
-# present on the keyring.
-#
-# no-include-attributes : do not include attribute IDs (aka "photo IDs")
-# when sending keys to the keyserver.
-
-#keyserver-options auto-key-retrieve
-
-# Display photo user IDs in key listings
-
-# list-options show-photos
-
-# Display photo user IDs when a signature from a key with a photo is
-# verified
-
-# verify-options show-photos
-
-# Use this program to display photo user IDs
-#
-# %i is expanded to a temporary file that contains the photo.
-# %I is the same as %i, but the file isn't deleted afterwards by GnuPG.
-# %k is expanded to the key ID of the key.
-# %K is expanded to the long OpenPGP key ID of the key.
-# %t is expanded to the extension of the image (e.g. "jpg").
-# %T is expanded to the MIME type of the image (e.g. "image/jpeg").
-# %f is expanded to the fingerprint of the key.
-# %% is %, of course.
-#
-# If %i or %I are not present, then the photo is supplied to the
-# viewer on standard input. If your platform supports it, standard
-# input is the best way to do this as it avoids the time and effort in
-# generating and then cleaning up a secure temp file.
-#
-# If no photo-viewer is provided, GnuPG will look for xloadimage, eog,
-# or display (ImageMagick). On Mac OS X and Windows, the default is
-# to use your regular JPEG image viewer.
-#
-# Some other viewers:
-# photo-viewer "qiv %i"
-# photo-viewer "ee %i"
-#
-# This one saves a copy of the photo ID in your home directory:
-# photo-viewer "cat > ~/photoid-for-key-%k.%t"
-#
-# Use your MIME handler to view photos:
-# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
-
-# Passphrase agent
-#
-# We support the old experimental passphrase agent protocol as well as
-# the new Assuan based one (currently available in the "newpg" package
-# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent,
-# you have to run an agent as daemon and use the option
-#
-use-agent
-#
-# which tries to use the agent but will fallback to the regular mode
-# if there is a problem connecting to the agent. The normal way to
-# locate the agent is by looking at the environment variable
-# GPG_AGENT_INFO which should have been set during gpg-agent startup.
-# In certain situations the use of this variable is not possible, thus
-# the option
-#
-# --gpg-agent-info=<path>:<pid>:1
-#
-# may be used to override it.
-
-# Automatic key location
-#
-# GnuPG can automatically locate and retrieve keys as needed using the
-# auto-key-locate option. This happens when encrypting to an email
-# address (in the "user@example.com" form), and there are no
-# user@example.com keys on the local keyring. This option takes the
-# following arguments, in the order they are to be tried:
-#
-# cert = locate a key using DNS CERT, as specified in RFC-4398.
-# GnuPG can handle both the PGP (key) and IPGP (URL + fingerprint)
-# CERT methods.
-#
-# pka = locate a key using DNS PKA.
-#
-# ldap = locate a key using the PGP Universal method of checking
-# "ldap://keys.(thedomain)". For example, encrypting to
-# user@example.com will check ldap://keys.example.com.
-#
-# keyserver = locate a key using whatever keyserver is defined using
-# the keyserver option.
-#
-# You may also list arbitrary keyservers here by URL.
-#
-# Try CERT, then PKA, then LDAP, then hkp://subkeys.net:
-#auto-key-locate cert pka ldap hkp://subkeys.pgp.net
diff --git a/.config/maildirproc/att.rc b/.config/maildirproc/att.rc
index 7ee5f42..98ef8ae 100644
--- a/.config/maildirproc/att.rc
+++ b/.config/maildirproc/att.rc
@@ -4,10 +4,26 @@ import os
import os.path
import subprocess
import datetime
+import re
processor.maildir_base = "~/Maildir"
processor.auto_reload_rcfile = True
+def mailman_domain(mail, domain):
+ """
+ Return a string that is the list-name for a mailman domain
+ """
+ m = mail["List-Id"].matches("(.*<)?([^<]*)\."+re.escape(domain))
+ if m:
+ if mail["Subject"].contains("["+m.group(2)+"]"):
+ return m.group(2)
+ for hdr in [ 'To', 'Cc', 'From' ]:
+ m = mail[hdr].matches("(\w*)@"+re.escape(domain))
+ if m:
+ if mail["Subject"].contains("["+m.group(1)+"]"):
+ return m.group(2)
+ return None
+
def is_to_or_from(mail,address):
"""
Return true if [mail] is to or from an address that contains [address].
@@ -89,7 +105,7 @@ def handle_incoming_unknown(mail):
or mail["From"].contains("@wolframalpha.com>")
or mail["From"].contains("margieshu@sbcglobal.net")
or mail["From"].contains("parabolagnulinux.org")
- or mail["List-Id"].matches(".*\.(gnu|gnome|archlinux|parabolagnulinuxlibre)\.org")
+ or mail["List-Id"].matches(".*\.(gnu|gnome|archlinux|parabolagnulinuxlibre|fedorahosted)\.org")
or mail["List-Id"].matches(".*\.parabola\.nu")
or mail["Subject"].contains("[Dev]")
or mail["Subject"].contains("[Maintenance]")
@@ -114,66 +130,30 @@ def handle_incoming_unknown(mail):
return
def my_filters(mail):
- # Sort mail from GNU mailing lists
- for list in [ 'bug-gsrc', 'bug-make', 'help-make', 'social', 'help-grub', 'bug-gnuzilla', 'bug-librejs' ]:
- if (
- False
- or mail["List-Id"].matches(list+"\.gnu\.org")
- or mail["Subject"].contains('['+list+']')
- ):
- move_ham(mail,".software."+list)
+ # Sort mail from various mailing lists
+ # https://lists.gnu.org/mailman/options/bug-librejs/lukeshu@sbcglobal.net
+ # https://lists.nongnu.org/mailman/options/libreboot/lukeshu@sbcglobal.net
+ # https://mail.gnome.org/mailman/options/networkmanager-list/lukeshu@sbcglobal.net
+ for pair in [ [ 'gnu.org', 'gnu' ],
+ [ 'nongnu.org', 'nongnu' ],
+ [ 'gnome.org', 'gnome' ],
+ [ 'archlinux.org', 'archlinux' ],
+ [ 'lists.freedesktop.org', 'freedesktop' ],
+ [ 'lists.fedorahosted.org', 'fedorahosted' ],
+ [ 'lists.parabola.nu', 'parabola' ],
+ [ 'parabola.nu', 'parabola' ] ]:
+ list = mailman_domain(mail, pair[0])
+ if list:
+ move_ham(mail,".software."+pair[1]+"."+list)
return
-
- # Sort mail from other software mailing lists
if (
False
- or mail["List-Id"].matches("social-discuss\.gnu\.org")
- or mail["Subject"].contains("social-discuss")
- ):
- move_ham(mail,".software.social")
- return
-
- if mail["List-Id"].matches("networkmanager-list\.gnome\.org"):
- move_ham(mail,".software.networkmanager")
- return
-
- if mail["List-Id"].matches("maintenance\.lists\.parabola(gnulinux\.org|\.nu)"):
- move_ham(mail,".software.parabola.maintenance")
- return
-
- if is_to_or_from(mail, "labs@parabola.nu"):
- move_ham(mail,".software.parabola.labs")
- return
-
- if (
- False
- or mail["List-Id"].matches("parabolagnulinux\.org")
- or mail["List-Id"].matches("parabola\.nu")
- or is_to_or_from(mail, "parabolagnulinux.org")
- or is_to_or_from(mail, "kiwwwi.com.ar")
- or is_to_or_from(mail, "parabola.nu")
+ or is_to_or_from(mail, "parabolagnulinux.org")
+ or is_to_or_from(mail, "parabola.nu")
+ or is_to_or_from(mail, "kiwwwi.com.ar")
):
- if mail["Subject"].contains("[Django]"):
- move_ham(mail,".software.parabola.maintenance.django")
- return
- else:
- move_ham(mail,".software.parabola.dev")
- return
-
- if (mail["List-Id"].matches("pacman-dev.archlinux.org")):
- move_ham(mail,".software.pacman-dev")
+ move_ham(mail,".software.parabola")
return
-
- if (mail["List-Id"].matches("systemd-devel.lists.freedesktop.org") or is_to_or_from(mail, "systemd-devel@lists.freedesktop.org")):
- move_ham(mail,".software.systemd-devel")
- return
-
- for subject_re in [
- "\[Stow-[^\]]*\].*",
- ]:
- if mail["Subject"].matches(subject_re):
- move_ham(mail,".software")
- return
# Sort mail from some social websites
if mail["From"].matches("facebook(|mail)\.com"):
@@ -256,12 +236,27 @@ def my_filters(mail):
return
# Sort mail from FRC people
+ # Generic
+ for address in [ "@ni.com", "@usfirst.org" ]:
+ if is_to_or_from(mail,address):
+ move_ham(mail,".FRC")
+ return
+ # FRC 829
+ for address in [
+ "wcxctrack829@aim.com", # Pat
+ "william.walk@gmail.com",
+ ]:
+ if is_to_or_from(mail,address):
+ move_ham(mail,".FRC.829")
+ return
+ if mail["Subject"].matches("\b829\b"):
+ move_hame(mail,".FRC.829")
+ return
+ # FRC 1024
for address in [
- "@ni.com",
- "@usfirst.org",
"BBonahoom@stanleyworks.com",
- "allison.m.babcock@gmail.com",
"bryanbonahoom@gmail.com",
+ "allison.m.babcock@gmail.com",
"cdewalt3@yahoo.com",
"dave.nelson@ecolab.com",
"dickaustin190@yahoo.com",
@@ -273,24 +268,23 @@ def my_filters(mail):
"silioso@gmail.com",
"skiplittell@comcast.net",
"tswilson4801@att.net",
- "wcxctrack829@aim.com", # Pat
- "william.walk@gmail.com",
]:
if is_to_or_from(mail,address):
- move_ham(mail,".School.Robotics")
+ move_ham(mail,".FRC.1024")
return
- for subject_re in [
- "robotics",
- "\b1024\b",
- "\b4272\b",
- "kil-?a-?bytes",
- ]:
+ for subject_re in [ "\b1024\b", "kil-?a-?bytes" ]:
if mail["Subject"].matches(subject_re):
- move_ham(mail,".School.Robotics")
+ move_ham(mail,".FRC.1024")
return
+ # FRC 4272
+ if mail["Subject"].matches("\b4272\b"):
+ move_hame(mail,".FRC.4272")
+ return
+ # Catch BS things because of CS classes before the general
+ # software filters
if mail["Subject"].contains("[Quizroom]"):
- move_ham(mail,".School.CS408")
+ mail.delete()
return
# Sort mail from software people
@@ -298,6 +292,8 @@ def my_filters(mail):
"@archlinux.org",
"@canonical.org",
"@cnuk.org",
+ "@core3.amsl.com",
+ "@defectivebydesign.org",
"@eff.org",
"@foocorp.net",
"@fsf.org",
@@ -310,39 +306,20 @@ def my_filters(mail):
"@nongnu.org",
"@sourceforge.com",
"@thyrsus.com",
- "trustees@core3.amsl.com",
]:
if is_to_or_from(mail,address):
move_ham(mail,".software")
return
-
# Sort mail from the school newspaper
if (
False
or is_to_or_from(mail, "@lnnorthstar.org")
or is_to_or_from(mail, "lnnorthstar.org@tigertech.net")
):
- move_ham(mail,".School.Newspaper")
- return
-
- # Sort mail from various employers/people who pay me
- if is_to_or_from(mail, "@precisepath.com"):
- move_ham(mail,".Work.PrecisePath")
+ move_ham(mail,".HighSchool.Newspaper")
return
- if is_to_or_from(mail,"susyphil@aol.com"):
- move_ham(mail,".Work.PMCH")
-
- for address in [
- "d.farrar@comcast.net",
- "dfarrar@avacoustics.net",
- "@vmware.com",
- ]:
- if is_to_or_from(mail,address):
- move_ham(mail,".Work.FAST")
- return
-
# Sort misc newsletters
if (
False
@@ -370,7 +347,7 @@ def my_filters(mail):
or mail["Subject"].contains("NHS")
or mail["Subject"].contains("National Honor Society")
):
- move_ham(mail,".School")
+ move_ham(mail,".HighSchool")
return
# from college stuff
diff --git a/.config/maildirproc/purdue.rc b/.config/maildirproc/purdue.rc
index d1505f9..f086eee 100644
--- a/.config/maildirproc/purdue.rc
+++ b/.config/maildirproc/purdue.rc
@@ -103,7 +103,12 @@ def my_filters(mail):
mail.move("INBOX.work.2013.Comcast")
return
- if is_to_or_from(mail,"@Cartus.com"):
+ if (
+ False
+ or is_to_or_from(mail,"@qualcomm.com")
+ or is_to_or_from(mail,"@Cartus.com")
+ or is_to_or_from(mail,"@quicinc.com")
+ ):
mail.move("INBOX.work.2015.qualcomm")
return
@@ -268,6 +273,9 @@ def my_filters(mail):
return
# CS448 (Databases)
if piazza_topic(mail, "CS 44800"):
+ mail.move("INBOX.classes.2015-1.CS448.Piazza")
+ return
+ if mail["Subject"].matches("CS *448"):
mail.move("INBOX.classes.2015-1.CS448")
return
# ME297 (FRC)
@@ -278,6 +286,12 @@ def my_filters(mail):
mail.move("INBOX.classes.2015-1.ME297")
return
# SOC324 (Criminology)
+ if mail["Subject"].contains("spring-2015-soc-32400"):
+ mail.move("INBOX.classes.2015-1.SOC324")
+ return
+
+ # Everything else #####################################################
+ mail.move("INBOX.ham");
handle_mapping = {
"INBOX": my_filters,
diff --git a/.config/symlinks b/.config/symlinks
index af0f1af..83f6a2f 100644
--- a/.config/symlinks
+++ b/.config/symlinks
@@ -15,9 +15,6 @@
.config/bash/login.sh .bash_login
.config/bash/logout.sh .bash_logout
-# Files plucked out of multi-purpose directories
-.config/gpg/gpg.conf .gnupg/gpg.conf
-
# Individual config files
.config/abs.conf .abs.conf
.config/conkerorrc .conkerorrc
@@ -31,9 +28,6 @@
.cache/offlineimap .offlineimap
# Directories
-.cache/maildirproc/ .maildirproc
-.cache/xdg-runtime-dir/ .runtime
-
.config/arduino/ .arduino
.config/bazaar/ .bazaar
.config/cpan/ .cpan
@@ -47,6 +41,11 @@
.config/wmii-hg/ .wmii-hg
.config/wmii/ .wmii #
+# .maildirproc is not used, but must exist
+/tmp/ .maildirproc
+# There's a silly maximum length on Domain Sockets, so alias
+.cache/xdg-runtime-dir/ .runtime
+
# KDE
.config/ .kde/share/apps #
.config/ .kde/share/config #