summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <shumakl@purdue.edu>2015-09-19 15:49:29 -0400
committerLuke Shumaker <shumakl@purdue.edu>2015-09-19 15:49:29 -0400
commit118f849aed5aef3bf2750ca102007b4a38e44486 (patch)
tree47eb202ab5e4ed21a43122a44ed331e76a7bf258
parent739fa0ff2b7b0581b2d294f8de8b9e79234ed66c (diff)
parent641fc49fc651b6a67fb8ff90198e889e0e3920bb (diff)
Merge remote-tracking branch 'origin/master' into purdue-cs/master
# Conflicts: # .config/X11/clientrc # .config/bash/rc.sh # .config/cron/make-config # .config/emacs/custom.el # .config/emacs/init.el # .config/login.d/10_selected-editor.sh # .config/login.sh
-rw-r--r--.config/Makefile18
-rw-r--r--[-rwxr-xr-x].config/X11/clientrc12
-rwxr-xr-x.config/X11/login9
-rw-r--r--.config/X11/modmap2
-rw-r--r--[l---------].config/X11/serverrc7
-rw-r--r--.config/bash/login.sh5
-rw-r--r--.config/bash/logout.sh3
-rw-r--r--.config/bash/rc.d/aliases.sh (renamed from .config/bash/aliases.sh)17
-rw-r--r--.config/bash/rc.d/emacs.sh2
-rw-r--r--.config/bash/rc.sh12
-rw-r--r--.config/cron/make-config2
-rw-r--r--.config/emacs/custom.el22
-rw-r--r--.config/emacs/init.el51
-rw-r--r--.config/git/ignore3
-rw-r--r--.config/gpg/gpg.conf242
-rw-r--r--.config/libretools/.gitignore1
-rw-r--r--.config/libretools/libretools.conf4
-rw-r--r--.config/login.d/00_coredumps.sh1
-rw-r--r--.config/login.d/00_path.sh1
-rw-r--r--.config/login.d/00_umask.sh1
-rw-r--r--.config/login.d/01_xdg.sh33
-rw-r--r--.config/login.d/02_tmpdir.sh2
-rw-r--r--.config/login.d/02_xdg_runtime_dir.sh29
-rw-r--r--.config/login.d/03_tmpdir.sh5
-rw-r--r--.config/login.d/10_gpg.sh1
-rw-r--r--.config/login.d/10_java.sh1
-rw-r--r--.config/login.d/10_less.sh1
-rw-r--r--.config/login.d/10_makeflags.sh2
-rw-r--r--.config/login.d/10_selected-editor.sh5
-rw-r--r--.config/login.d/10_spell-check.sh3
-rw-r--r--.config/login.d/10_xauthority.sh3
-rw-r--r--.config/login.sh21
-rw-r--r--.config/maildirproc/att.rc168
-rw-r--r--.config/maildirproc/purdue.rc26
-rw-r--r--.config/offlineimaprc2
-rw-r--r--.config/pacman/makepkg.conf2
-rw-r--r--.config/ssh/config19
-rw-r--r--.config/symlinks10
-rw-r--r--.config/systemd/user/maildirproc@.service2
-rw-r--r--.config/wmii-hg/config.sh7
-rwxr-xr-x.config/wmii-hg/help-events2
-rwxr-xr-x.config/wmii-hg/help-keys2
-rw-r--r--.config/wmii-hg/include.sh2
-rwxr-xr-x.config/wmii-hg/quit2
-rwxr-xr-x.config/wmii-hg/rbar6
-rw-r--r--.config/wmii-hg/rbar.sh2
-rwxr-xr-x.config/wmii-hg/rbar_acpi2
-rwxr-xr-x.config/wmii-hg/rbar_clock2
-rwxr-xr-x.config/wmii-hg/rbar_wifi5
-rw-r--r--.config/wmii-hg/rules3
-rw-r--r--.config/wmii-hg/theme-solarized1
-rw-r--r--.config/wmii-hg/theme-solarized-dark2
-rw-r--r--.config/wmii-hg/theme-tango1
-rw-r--r--.config/wmii-hg/theme-tango-dark2
-rw-r--r--.config/wmii-hg/util.sh2
-rwxr-xr-x.config/wmii-hg/wmiirc6
-rwxr-xr-x.local/bin/config-path4
57 files changed, 321 insertions, 482 deletions
diff --git a/.config/Makefile b/.config/Makefile
index 909486d..9ee3115 100644
--- a/.config/Makefile
+++ b/.config/Makefile
@@ -1,7 +1,11 @@
#!/usr/bin/make -f
+ifeq ($(XDG_CACHE_HOME),)
+default: all; @:
+%:
+ . ~/.profile && $(MAKE) '$@'
+else
-SHELL = /bin/bash
-
+SHELL = /bin/bash -o pipefail
GIT_DIR = ${HOME}/.git
targets = \
@@ -12,10 +16,11 @@ targets = \
all: $(targets)
clean:
- rm -f $(targets)
+ rm -f -- $(targets)
+.PHONY: all clean
${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 -0 dirname -z -- | sort -zu | xargs -0 printf -- '.%s\n' >'$@'
+ find -L $< -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@^\./@/@' ) > $@
@@ -36,6 +41,5 @@ ${HOME}/Maildir/%: | ${HOME}/Maildir
touch '$@'/maildirfolder
.DELETE_ON_ERROR:
-.PHONY: FORCE PHONY
-FORCE: ;
-PHONY: ;
+.SECONDARY:
+endif
diff --git a/.config/X11/clientrc b/.config/X11/clientrc
index 1ad935f..8bced30 100755..100644
--- a/.config/X11/clientrc
+++ b/.config/X11/clientrc
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/hint/sh
# Load system xinit modules (disabled)
# Remove "false &&" to enable
@@ -19,9 +19,11 @@ fi
exec mate-session
-trap "rm -f $(printf '%q' "${XDG_RUNTIME_DIR}/x11-wm@${DISPLAY}")" EXIT
-mkfifo "${XDG_RUNTIME_DIR}/x11-wm@${DISPLAY}"
+[ -n "$XDG_RUNTIME_DIR" ] || exit 1
+_DISPLAY="$(systemd-escape -- "$DISPLAY")"
+trap "rm -f $(printf '%q' "${XDG_RUNTIME_DIR}/x11-wm@${_DISPLAY}")" EXIT
+mkfifo "${XDG_RUNTIME_DIR}/x11-wm@${_DISPLAY}"
-cat "${XDG_RUNTIME_DIR}/x11-wm@${DISPLAY}" &
-systemctl --user start "wm@${DISPLAY}.target" &
+cat "${XDG_RUNTIME_DIR}/x11-wm@${_DISPLAY}" &
+systemctl --user start "wm@${_DISPLAY}.target" &
wait
diff --git a/.config/X11/login b/.config/X11/login
index 84931df..d02088a 100755
--- a/.config/X11/login
+++ b/.config/X11/login
@@ -1,9 +1,4 @@
#!/bin/sh
+# ~/.xsession: Executed by the XDM at login, maybe after sourcing ~/.xprofile
-#
-# ~/.xsession
-#
-# Executed by xdm/gdm/kdm at login
-#
-
-exec bash --login -i ~/.xinitrc
+exec bash --login ~/.xinitrc
diff --git a/.config/X11/modmap b/.config/X11/modmap
index 1736e09..b332204 100644
--- a/.config/X11/modmap
+++ b/.config/X11/modmap
@@ -1,3 +1,5 @@
+! -*- Mode: Xmodmap -*-
+
! My desktop doesn't have a super key, so I map Caps_Lock to Super_L
! Also, use Caps_Lock for the compose key
remove lock = Caps_Lock
diff --git a/.config/X11/serverrc b/.config/X11/serverrc
index ce14133..e6f4c8f 120000..100644
--- a/.config/X11/serverrc
+++ b/.config/X11/serverrc
@@ -1 +1,6 @@
-/etc/X11/xinit/xserverrc \ No newline at end of file
+#!/hint/sh
+if [ -z "$XDG_VTNR" ]; then
+ exec /usr/bin/X -nolisten tcp "$@"
+else
+ exec /usr/bin/X -nolisten tcp "$@" vt$XDG_VTNR
+fi
diff --git a/.config/bash/login.sh b/.config/bash/login.sh
index 1269a03..08f26b8 100644
--- a/.config/bash/login.sh
+++ b/.config/bash/login.sh
@@ -1,6 +1,5 @@
-# ~/.bash_login: executed by bash(1) when login shell starts.
-
-# I think this is sane default behavior
+#!/hint/bash
+# ~/.bash_login: Sourced by bash(1) when login shell starts
# Load user settings
. "$HOME/.profile"
diff --git a/.config/bash/logout.sh b/.config/bash/logout.sh
index 5dd8f7d..623f0a0 100644
--- a/.config/bash/logout.sh
+++ b/.config/bash/logout.sh
@@ -1,4 +1,5 @@
-# ~/.bash_logout: sourced by bash(1) when login shell exits.
+#!/hint/bash
+# ~/.bash_logout: Sourced by bash(1) when login shell exits
# Clear the screen for privacy's sake.
clear
diff --git a/.config/bash/aliases.sh b/.config/bash/rc.d/aliases.sh
index 28b9923..cd2cfd8 100644
--- a/.config/bash/aliases.sh
+++ b/.config/bash/rc.d/aliases.sh
@@ -1,6 +1,4 @@
-#!/bin/bash
-# The above line probably should never be *used* in this file, but it
-# lets text editors know that this is BASH syntax.
+#!/hint/bash
######################################################################
# Set up colors and settings for ls/dir/vdir #
@@ -48,7 +46,18 @@ alias userctl='systemctl --user'
######################################################################
alias lock="clear; away -C 'This terminal is locked'"
alias plock="term-title Terminal Locked;lock"
-mvln() { mv $1 $2; ln -s $2 $1; }
+mvln() {
+ if [[ ! -L "$1" ]]; then
+ libremessages error 'Not a soft link: %s' "$1"
+ fi
+ target=$(readlink -f -- "$1")
+ ln -srT -- "$target" "$2"
+ if cmp -- "$1" "$2"; then
+ rm -f -- "$1"
+ else
+ libremessages error 'Failed moving link: %s -> %s' "$1" "$2"
+ fi
+}
jarls() { jar tf "$1" | sed -n 's/\.class$//p' | LC_ALL=C sort | xargs -r -d $'\n' javap -classpath "$1"; }
tarls() { local file; for file in "$@"; do bsdtar tf "$file" | sed "s|^|$file:|"; done; }
jarmain() { jarls "$1" 2>/dev/null | grep -E '(^[a-z]|public static void main\(java\.lang\.String\[\]\))' | grep -B1 '^ '; }
diff --git a/.config/bash/rc.d/emacs.sh b/.config/bash/rc.d/emacs.sh
index bb6454b..d8e1d80 100644
--- a/.config/bash/rc.d/emacs.sh
+++ b/.config/bash/rc.d/emacs.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
if [[ $TERM == eterm* ]]; then
SELECTED_EDITOR='emacsclient'
diff --git a/.config/bash/rc.sh b/.config/bash/rc.sh
index c7acaf8..a85d308 100644
--- a/.config/bash/rc.sh
+++ b/.config/bash/rc.sh
@@ -1,7 +1,6 @@
-# ~/.bashrc: executed by bash(1) for interactive non-login shells.
-# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
-# for examples
-
+#!/hint/bash
+# ~/.bashrc: Sourced by bash(1) for interactive non-login shells
+#
# I include this file for all interactive invocations of bash(1), whether
# they are login shells or not.
@@ -74,11 +73,6 @@ unset make_prompt
################################################################################
-# Load my aliases
-if [[ -f ${XDG_CONFIG_HOME}/bash/aliases.sh ]]; then
- . ${XDG_CONFIG_HOME}/bash/aliases.sh
-fi
-
# Include modular config files
if [[ -d ${XDG_CONFIG_HOME}/bash/rc.d ]]; then
for file in "${XDG_CONFIG_HOME}/bash/rc.d"/*.sh; do
diff --git a/.config/cron/make-config b/.config/cron/make-config
index 30985df..a4a3480 100644
--- a/.config/cron/make-config
+++ b/.config/cron/make-config
@@ -1,2 +1,2 @@
#m h dom mon dow command
-*/5 * * * * $HOME/.local/bin/cronic bash -l -c 'make -C "$XDG_CONFIG_HOME"'
+*/5 * * * * chronic make -C ~/.config
diff --git a/.config/emacs/custom.el b/.config/emacs/custom.el
index e4208b5..8291602 100644
--- a/.config/emacs/custom.el
+++ b/.config/emacs/custom.el
@@ -16,6 +16,28 @@
((Nginx-indent-tabs-mode)
(Nginx-indent-level . 4)
(Nginx-indent-level . 8))))
+ '(graphviz-dot-auto-indent-on-semi nil)
+ '(org-latex-default-packages-alist
+ (quote
+ (("" "fontspec" t)
+ ("" "fixltx2e" nil)
+ ("" "graphicx" t)
+ ("" "longtable" nil)
+ ("" "float" nil)
+ ("" "wrapfig" nil)
+ ("" "rotating" nil)
+ ("normalem" "ulem" t)
+ ("" "amsmath" t)
+ ("" "textcomp" t)
+ ("" "marvosym" t)
+ ("" "wasysym" t)
+ ("" "amssymb" t)
+ ("" "hyperref" nil)
+ "\\tolerance=1000")))
+ '(org-latex-pdf-process
+ (quote
+ ("xelatex -interaction nonstopmode -output-directory %o %f" "xelatex -interaction nonstopmode -output-directory %o %f" "xelatex -interaction nonstopmode -output-directory %o %f")))
+ '(org-src-fontify-natively t)
'(scroll-bar-mode nil)
'(scss-compile-at-save nil)
'(send-mail-function (quote smtpmail-send-it))
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index f8f19e0..e14d0f5 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -1,4 +1,5 @@
;; This config requires Emacs 24.4(+?)
+;; Hey, Emacs: -*- Indent-tabs-mode: nil -*-
;; Without (advice-add) it should work in older versions of Emacs 24.
;;;; Use XDG-ish locations ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq xdg-cache-home (file-name-as-directory (or (getenv "XDG_CACHE_HOME") "~/.cache")))
@@ -88,13 +89,16 @@
(:name dtrt-indent :type elpa ;; Detect indent style for existing files
:after (dtrt-indent-mode 1))
(:name page-break-lines :type elpa ;; Display form-feeds pretty
- :before (advice-add 'page-break-lines-mode-maybe :override #'page-break-lines-mode)
+ :before (advice-add 'page-break-lines-mode-maybe
+ :override #'page-break-lines-mode)
:after (global-page-break-lines-mode 1))
(:name smart-tabs-mode :type elpa ;; Indent with tabs, align with spaces
:after (progn
(smart-tabs-mode 1)
- (apply 'smart-tabs-insinuate (mapcar 'car smart-tabs-insinuate-alist))))
+ (apply 'smart-tabs-insinuate
+ (mapcar 'car smart-tabs-insinuate-alist))))
;; Major modes
+ (:name bison-mode :type elpa)
(:name coffee-mode :type elpa
:after (add-hook 'coffee-mode-hook
'(lambda ()
@@ -102,6 +106,7 @@
(set (make-local-variable 'indent-tabs-mode) nil)
)))
(:name graphviz-dot-mode :type elpa)
+ (:name haml-mode :type elpa)
(:name markdown-mode :type elpa
:after (add-to-list 'auto-mode-alist '("\\.ronn\\'" . markdown-mode)))
(:name nginx-mode :type elpa
@@ -110,19 +115,28 @@
))
;; What packages el-get should install, both from above, and it's
;; internal list of sources.
-(el-get 'sync '(el-get
+(el-get 'sync (append
+ '(el-get)
;; Minor modes
- dtrt-indent
- smart-tabs-mode
- page-break-lines
+ '(dtrt-indent
+ page-break-lines
+ smart-tabs-mode
+ )
;; Major modes
- ;;apel flim semi wanderlust
- graphviz-dot-mode
- markdown-mode
- nginx-mode
- ;;nxhtml ; nxhtml is invasive, only enable if actively using
- php-mode-improved
- ))
+ (if (file-exists-p "~/Maildir") ; wanderlust is huge, only use on emailing boxes
+ '(apel flim semi wanderlust)
+ '())
+ '(
+ ;;nxhtml ; nxhtml is invasive, only enable if actively using
+ bison-mode
+ coffee-mode
+ graphviz-dot-mode
+ haml-mode
+ markdown-mode
+ nginx-mode
+ php-mode-improved
+ scss-mode
+ )))
;; Misc. crap
@@ -223,6 +237,16 @@ sh-script.el is broken."
(smerge-mode 1))))
(add-hook 'find-file-hook 'try-smerge-mode t)
+;; http://www.emacswiki.org/emacs/XModMapMode
+(when (not (fboundp 'xmodmap-mode))
+ (define-generic-mode 'xmodmap-mode
+ '(?!)
+ '("add" "clear" "keycode" "keysym" "pointer" "remove")
+ nil
+ '("[xX]modmap\\(rc\\)?\\'")
+ nil
+ "Simple mode for xmodmap files."))
+
;; All my weird mode-specific settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -273,3 +297,4 @@ sh-script.el is broken."
(add-to-list 'auto-mode-alist '("PKGBUILD" . sh-mode))
(add-to-list 'auto-mode-alist '("SRCBUILD" . sh-mode))
+(add-to-list 'auto-mode-alist '("\\.jad\\'" . java-mode))
diff --git a/.config/git/ignore b/.config/git/ignore
index e69de29..d0f607c 100644
--- a/.config/git/ignore
+++ b/.config/git/ignore
@@ -0,0 +1,3 @@
+#*#
+.#*
+*~
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/libretools/.gitignore b/.config/libretools/.gitignore
deleted file mode 100644
index 1881962..0000000
--- a/.config/libretools/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-blacklist.txt
diff --git a/.config/libretools/libretools.conf b/.config/libretools/libretools.conf
new file mode 100644
index 0000000..a2f2c24
--- /dev/null
+++ b/.config/libretools/libretools.conf
@@ -0,0 +1,4 @@
+HOOKPOSTRELEASE=":"
+if [[ -n "${ONLY_ARCH:-}" ]]; then
+ ARCHES=("$ONLY_ARCH")
+fi
diff --git a/.config/login.d/00_coredumps.sh b/.config/login.d/00_coredumps.sh
index 8fcc61b..45d19b8 100644
--- a/.config/login.d/00_coredumps.sh
+++ b/.config/login.d/00_coredumps.sh
@@ -1 +1,2 @@
+#!/hint/sh
ulimit -c unlimited # save core dumps
diff --git a/.config/login.d/00_path.sh b/.config/login.d/00_path.sh
index f4ca3a6..2d5f4a5 100644
--- a/.config/login.d/00_path.sh
+++ b/.config/login.d/00_path.sh
@@ -1,3 +1,4 @@
+#!/hint/sh
if type config-path &>/dev/null; then
config_path=config-path
else
diff --git a/.config/login.d/00_umask.sh b/.config/login.d/00_umask.sh
index 8e71ad5..c6187dd 100644
--- a/.config/login.d/00_umask.sh
+++ b/.config/login.d/00_umask.sh
@@ -1 +1,2 @@
+#!/hint/sh
umask 022
diff --git a/.config/login.d/01_xdg.sh b/.config/login.d/01_xdg.sh
index 4464764..ed17ddb 100644
--- a/.config/login.d/01_xdg.sh
+++ b/.config/login.d/01_xdg.sh
@@ -1,4 +1,4 @@
-# This should be readable by /bin/sh
+#!/hint/sh
# Sets up XDG environmental variables, so programs using them don't have to
# worry about checking if they are set.
@@ -9,35 +9,12 @@
[ -n "$XDG_DATA_DIRS" ] || export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
[ -n "$XDG_CONFIG_DIRS" ] || export XDG_CONFIG_DIRS="/etc/xdg"
[ -n "$XDG_CACHE_HOME" ] || export XDG_CACHE_HOME="$HOME/.cache"
+[ -n "$XDG_VTNR" ] || export XDG_VTNR="$(tty 2>/dev/null | sed -n 's,^/dev/tty,,p')"
+
+# Check if XDG_VTNR got set to empty
+[ -n "$XDG_VTNR" ] || unset XDG_VTNR
# Check if XDG_RUNTIME_DIR is set, but has a bogus setting
if [ -n "$XDG_RUNTIME_DIR" ] && [ ! -d "$XDG_RUNTIME_DIR" ]; then
unset XDG_RUNTIME_DIR
fi
-
-# Set XDG_RUNTIME_DIR if we can
-if [ -z "$XDG_RUNTIME_DIR" ] && type flock &>/dev/null; then
- _diy_xdg_runtime_login() {
- export XDG_RUNTIME_DIR="$XDG_CACHE_HOME/xdg-runtime-dir/$HOSTNAME"
- # There's a race condition here, between the `ln -s` and `flock`.
- # But it's not like I'll be hammering a box with logins.
- if [ ! -d "$XDG_RUNTIME_DIR" ]; then
- local tmp="$(mktemp -d --tmpdir -- "${USER}@${HOSTNAME}-runtime.XXXXXXXXXX")"
- mkdir -p -- "$XDG_CACHE_HOME/xdg-runtime-dir"
- ln -sfT -- "$tmp" "$XDG_RUNTIME_DIR"
- fi
- if ! [ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]; then
- exec 7>"$XDG_CACHE_HOME/xdg-runtime-dir/.lock"
- if flock -sn 7; then
- # Unfortunately this doesn't survive across exec(1).
- trap _diy_xdg_runtime_logout EXIT
- fi
- fi
- }
- _diy_xdg_runtime_logout() {
- if flock -xn 7; then
- rm -rf -- "$(readlink "$XDG_RUNTIME_DIR")"
- fi
- }
- _diy_xdg_runtime_login
-fi
diff --git a/.config/login.d/02_tmpdir.sh b/.config/login.d/02_tmpdir.sh
deleted file mode 100644
index c0d5f18..0000000
--- a/.config/login.d/02_tmpdir.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-mkdir -p -- "$XDG_RUNTIME_DIR/tmpdir"
-export TMPDIR="$XDG_RUNTIME_DIR/tmpdir"
diff --git a/.config/login.d/02_xdg_runtime_dir.sh b/.config/login.d/02_xdg_runtime_dir.sh
new file mode 100644
index 0000000..864eadd
--- /dev/null
+++ b/.config/login.d/02_xdg_runtime_dir.sh
@@ -0,0 +1,29 @@
+#!/hint/sh
+
+# Set XDG_RUNTIME_DIR if we can
+if [ -z "$XDG_RUNTIME_DIR" ] && shopt -q login_shell && type flock &>/dev/null; then
+ _diy_xdg_runtime_login() {
+ export XDG_RUNTIME_DIR="$XDG_CACHE_HOME/xdg-runtime-dir/$HOSTNAME"
+ if ! [ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]; then
+ exec 7>"$XDG_CACHE_HOME/xdg-runtime-dir/.lock"
+ if flock -xn 7; then
+ if [ ! -d "$XDG_RUNTIME_DIR" ]; then
+ local tmp="$(mktemp -d --tmpdir -- "${USER}@${HOSTNAME}-runtime.XXXXXXXXXX")"
+ mkdir -p -- "$XDG_CACHE_HOME/xdg-runtime-dir"
+ ln -sfT -- "$tmp" "$XDG_RUNTIME_DIR"
+ fi
+ # Unfortunately this doesn't survive across exec(1).
+ trap _diy_xdg_runtime_logout EXIT
+ flock -sn 7
+ fi
+ fi
+ }
+ _diy_xdg_runtime_logout() {
+ exec 7>&-
+ exec 7>"$XDG_CACHE_HOME/xdg-runtime-dir/.lock"
+ if flock -xn 7; then
+ rm -rf -- "$(readlink "$XDG_RUNTIME_DIR")"
+ fi
+ }
+ _diy_xdg_runtime_login
+fi
diff --git a/.config/login.d/03_tmpdir.sh b/.config/login.d/03_tmpdir.sh
new file mode 100644
index 0000000..62413a7
--- /dev/null
+++ b/.config/login.d/03_tmpdir.sh
@@ -0,0 +1,5 @@
+#!/hint/sh
+if [ -n "$XDG_RUNTIME_DIR" ]; then
+ mkdir -p -- "$XDG_RUNTIME_DIR/tmpdir"
+ export TMPDIR="$XDG_RUNTIME_DIR/tmpdir"
+fi
diff --git a/.config/login.d/10_gpg.sh b/.config/login.d/10_gpg.sh
index cf3c88c..c1c5f82 100644
--- a/.config/login.d/10_gpg.sh
+++ b/.config/login.d/10_gpg.sh
@@ -1,3 +1,4 @@
+#!/hint/sh
if [[ -z $GPGKEY ]] && [[ -f "${HOME}/.gnupg/gpg.conf" ]]; then
export GPGKEY=`sed -nr 's/^\s*default-key\s+//p' "${GNUPG_HOME:-${HOME}/.gnupg}/gpg.conf"`
fi
diff --git a/.config/login.d/10_java.sh b/.config/login.d/10_java.sh
index 3c49368..94452a9 100644
--- a/.config/login.d/10_java.sh
+++ b/.config/login.d/10_java.sh
@@ -1,3 +1,4 @@
+#!/hint/sh
_JAVA_OPTIONS=''
_JAVA_OPTIONS+=' -Dawt.useSystemAAFontSettings=on'
_JAVA_OPTIONS+=' -Dswing.aatext=true'
diff --git a/.config/login.d/10_less.sh b/.config/login.d/10_less.sh
index c5934d6..314a8b9 100644
--- a/.config/login.d/10_less.sh
+++ b/.config/login.d/10_less.sh
@@ -1,2 +1,3 @@
+#!/hint/sh
export LESSHISTFILE="$XDG_CACHE_HOME/less/histfile"
mkdir -p -- "${LESSHISTFILE%/*}"
diff --git a/.config/login.d/10_makeflags.sh b/.config/login.d/10_makeflags.sh
new file mode 100644
index 0000000..671c6d3
--- /dev/null
+++ b/.config/login.d/10_makeflags.sh
@@ -0,0 +1,2 @@
+#!/hint/sh
+export MAKEFLAGS="-j$(nproc)"
diff --git a/.config/login.d/10_selected-editor.sh b/.config/login.d/10_selected-editor.sh
index c1c18fb..1a33e76 100644
--- a/.config/login.d/10_selected-editor.sh
+++ b/.config/login.d/10_selected-editor.sh
@@ -1,8 +1,9 @@
+#!/hint/sh
# PAM seems to be setting EDITOR...
-if [[ $EDITOR = /usr/bin/vi ]]; then
+if [ "$EDITOR" = /usr/bin/vi ]; then
unset EDITOR
fi
-if [[ -f "$HOME/.selected_editor" ]]; then
+if [ -f "$HOME/.selected_editor" ]; then
. "$HOME/.selected_editor"
export SELECTED_EDITOR
export ALTERNATE_EDITOR
diff --git a/.config/login.d/10_spell-check.sh b/.config/login.d/10_spell-check.sh
index 9a24b7e..3f67b8f 100644
--- a/.config/login.d/10_spell-check.sh
+++ b/.config/login.d/10_spell-check.sh
@@ -1,3 +1,4 @@
-if [[ -z "$DICTIONARY" ]] && [[ -n "$LANG" ]]; then
+#!/hint/sh
+if [ -z "$DICTIONARY" ] && [ -n "$LANG" ]; then
export DICTIONARY="${LANG%%.*}"
fi
diff --git a/.config/login.d/10_xauthority.sh b/.config/login.d/10_xauthority.sh
index a27202c..787b6ed 100644
--- a/.config/login.d/10_xauthority.sh
+++ b/.config/login.d/10_xauthority.sh
@@ -1,4 +1,5 @@
+#!/hint/sh
# This was needed once with SSH and Fedora boxes.
-if [[ -z $XAUTHORITY ]]; then
+if [ -z $XAUTHORITY ]; then
export XAUTHORITY="$HOME/.Xauthority"
fi
diff --git a/.config/login.sh b/.config/login.sh
index c09f15c..9499299 100644
--- a/.config/login.sh
+++ b/.config/login.sh
@@ -1,16 +1,15 @@
-#!/bin/bash
-# ~/.profile: sourced by the command interpreter for login shells.
-# I like that graphical login scripts be configured to load this, so
-# it always runs, graphical or not.
+#!/hint/sh
+# ~/.profile: Sourced by the command interpreter for login shells
#
-# This file should be executable by /bin/sh, but I'm going to assume bash(1)
-#
-# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
-# exists.
-
-# the default umask is set in /etc/profile; for setting the umask
-# for ssh logins, install and configure the libpam-umask package.
+# Other ~/.*profile scripts may take precedence, or be used instead
+# (for example: ~/.bash_{profile,login} takes precidence, and
+# ~/.xprofile is used for graphical logins). I dislike duplication,
+# so I have them all configured to source this.
+if [ -z "$HOME" ]; then
+ eval 'HOME=~'
+ export HOME
+fi
for file in "${XDG_CONFIG_HOME:-$HOME/.config}/login.d/"*.sh; do
. "$file"
done
diff --git a/.config/maildirproc/att.rc b/.config/maildirproc/att.rc
index 6b31260..792b42c 100644
--- a/.config/maildirproc/att.rc
+++ b/.config/maildirproc/att.rc
@@ -4,10 +4,24 @@ import os
import os.path
import subprocess
import datetime
+import re
processor.maildir_base = "~/Maildir"
processor.auto_reload_rcfile = True
-processor.logfile = os.getenv('XDG_CACHE_HOME', "~/.cache")+"/maildirproc/att.log"
+
+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:
+ 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(1)
+ return None
def is_to_or_from(mail,address):
"""
@@ -77,17 +91,21 @@ def handle_incoming_unknown(mail):
or is_to_or_from(mail, "parabola.nu")
or is_to_or_from(mail, "parabolagnulinux.org")
or mail["From"] == "MAILER-DAEMON@yahoo.com"
+ or mail["From"] == "3174451635@mms.att.net"
or mail["From"].contains("@facebookmail.com>")
or mail["From"].contains("@gandi.net")
+ or mail["From"].contains("@github.com>")
or mail["From"].contains("@goodwillindy.org>")
+ or mail["From"].contains("@kickstarter.com>")
or mail["From"].contains("@lpi.org>")
or mail["From"].contains("@msdlt.k12.in.us>")
or mail["From"].contains("@parabola.nu")
or mail["From"].contains("@post.oreilly.com>")
or mail["From"].contains("@scouting.org>")
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]")
@@ -112,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"):
@@ -254,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",
@@ -271,28 +268,34 @@ 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]"):
+ mail.delete()
+ return
# Sort mail from software people
for address in [
"@archlinux.org",
"@canonical.org",
"@cnuk.org",
+ "@core3.amsl.com",
+ "@defectivebydesign.org",
"@eff.org",
+ "@fedorahosted.org",
"@foocorp.net",
"@fsf.org",
"@github.com",
@@ -301,41 +304,24 @@ def my_filters(mail):
"@gnu.org",
"@ietf.org",
"@kde.org",
+ "@lists.fedorahosted.org",
+ "@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
@@ -363,7 +349,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 b1f64af..f086eee 100644
--- a/.config/maildirproc/purdue.rc
+++ b/.config/maildirproc/purdue.rc
@@ -5,7 +5,6 @@ import subprocess
processor.maildir_base = "~/Maildir.purdue"
processor.auto_reload_rcfile = True
-processor.logfile = os.getenv('XDG_CACHE_HOME', "~/.cache")+"/maildirproc/purdue.log"
def is_to_or_from(mail,address):
"""
@@ -106,6 +105,15 @@ def my_filters(mail):
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
+
+ if (
+ False
or mail["Subject"].contains("[CS Opportunity Update]")
or mail["Subject"].contains("[CS Majors]")
):
@@ -265,13 +273,25 @@ def my_filters(mail):
return
# CS448 (Databases)
if piazza_topic(mail, "CS 44800"):
- mail.move("INBOX.classes.2015.1.CS448")
+ 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)
- if mail["Subject"].contains("[ME297]"):
+ if (False
+ or mail["Subject"].contains("[ME297]")
+ or is_to_or_from(mail, "heller5@purdue.edu")
+ ):
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/offlineimaprc b/.config/offlineimaprc
index 36b382c..4b3d4e3 100644
--- a/.config/offlineimaprc
+++ b/.config/offlineimaprc
@@ -17,7 +17,7 @@ folderfilter = lambda folder: folder in [ 'Inbox', 'Bulk Mail' ]
[Repository Remote-SBCGlobal]
type = IMAP
ssl = yes
-cert_fingerprint = 9751f610c2631b3d4e63afcd096e5eb94c1f6fc8
+cert_fingerprint = a920541d377a4249259bcc59846a1faf621b4287
remotehost = imap.mail.yahoo.com
remoteuser = lukeshu@sbcglobal.net
folderfilter = lambda folder: folder in [ 'Inbox', 'Bulk Mail' ]
diff --git a/.config/pacman/makepkg.conf b/.config/pacman/makepkg.conf
index 8389fb5..dc3c5ba 100644
--- a/.config/pacman/makepkg.conf
+++ b/.config/pacman/makepkg.conf
@@ -1,4 +1,4 @@
-#!/phony/bash
+#!/hint/bash
PKGDEST="${LIBREHOME:-$HOME}/packages/pkgdest"
SRCDEST="${LIBREHOME:-$HOME}/packages/srcdest"
diff --git a/.config/ssh/config b/.config/ssh/config
index 07240a6..dc32703 100644
--- a/.config/ssh/config
+++ b/.config/ssh/config
@@ -6,10 +6,9 @@ Host *
# Purdue ###################################################
-Host lore
- HostName lore.cs.purdue.edu
-Host data
- HostName data.cs.purdue.edu
+Host data lore borg?? xinu?? sac?? sslab?? moore??
+ HostName %h.cs.purdue.edu
+ User shumakl
Host *.cs.purdue.edu
User shumakl
@@ -25,16 +24,14 @@ Host lukeshu.com
Port 1863
User lukeshu
+Match host build64-par exec "host %n.lan."
+ HostName build64-par
+ Port 22
+ ForwardX11 yes
+ ForwardX11Trusted yes
Host build64-par
User luke
-
HostName lukeshu.com
Port 1864
ForwardX11 no
ForwardX11Trusted no
-
- Match host %h.lan.
- HostName build64-par
- Port 22
- ForwardX11 yes
- ForwardX11Trusted yes
diff --git a/.config/symlinks b/.config/symlinks
index 37a7267..c99afba 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
@@ -26,16 +23,14 @@
.config/irbrc .irbrc
.config/linphonerc .linphonerc #
.config/selected_editor .selected_editor
+.config/X11/login .vnc/xstartup
.config/offlineimaprc .offlineimaprc
.cache/offlineimap .offlineimap
# Directories
-.cache/maildirproc/ .maildirproc
-
.config/arduino/ .arduino
.config/bazaar/ .bazaar
-.config/cpan/ .cpan
.config/emacs/ .emacs.d
.config/icons/ .icons
.config/mozilla/ .mozilla #
@@ -46,6 +41,9 @@
.config/wmii-hg/ .wmii-hg
.config/wmii/ .wmii #
+# .maildirproc is not used, but must exist
+/tmp/ .maildirproc
+
# KDE
.config/ .kde/share/apps #
.config/ .kde/share/config #
diff --git a/.config/systemd/user/maildirproc@.service b/.config/systemd/user/maildirproc@.service
index bdca746..9c4181c 100644
--- a/.config/systemd/user/maildirproc@.service
+++ b/.config/systemd/user/maildirproc@.service
@@ -3,7 +3,7 @@ Description=maildirproc mail filter
[Service]
Type=simple
-ExecStart=/usr/bin/maildirproc -r ${HOME}/.config/maildirproc/%I.rc
+ExecStart=/usr/bin/maildirproc --rcfile=${HOME}/.config/maildirproc/%I.rc --logfile=-
Restart=on-failure
[Install]
diff --git a/.config/wmii-hg/config.sh b/.config/wmii-hg/config.sh
index 7ef8305..785529e 100644
--- a/.config/wmii-hg/config.sh
+++ b/.config/wmii-hg/config.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
MODKEY=Mod4 # "super"
UP=p
@@ -52,6 +52,7 @@ Event() {
done < <(lstags)
;;
WmiircQuit) ## No args
+ trap - EXIT
echo ' ==> Stopping wmiirc'
exit;;
WmiircMount) ## No args
@@ -67,9 +68,7 @@ Event() {
## WMII-meta events
Quit) ## No args
trap - EXIT
- if [ -S "$NOTIFY_SOCKET" ]; then
- echo STOPPING=1 | socat STDIO UNIX-SENDTO:"$NOTIFY_SOCKET"
- fi
+ systemd-notify STOPPING=1 || true
Event WmiircUnmount
Event WmiircQuit;;
Warning) ## $@=string
diff --git a/.config/wmii-hg/help-events b/.config/wmii-hg/help-events
index 08abd18..9aeb3e9 100755
--- a/.config/wmii-hg/help-events
+++ b/.config/wmii-hg/help-events
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/usr/bin/env bash
. include.sh
scansection Event | xmessage -file -
diff --git a/.config/wmii-hg/help-keys b/.config/wmii-hg/help-keys
index 6f4bd1c..f7a975e 100755
--- a/.config/wmii-hg/help-keys
+++ b/.config/wmii-hg/help-keys
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/usr/bin/env bash
. include.sh
scansection Key | xmessage -file -
diff --git a/.config/wmii-hg/include.sh b/.config/wmii-hg/include.sh
index f9e3078..4e86276 100644
--- a/.config/wmii-hg/include.sh
+++ b/.config/wmii-hg/include.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
if [[ -z "$WMII_NAMESPACE" ]]; then
export WMII_NAMESPACE="$(wmiir namespace)"
diff --git a/.config/wmii-hg/quit b/.config/wmii-hg/quit
index 341468e..b34a913 100755
--- a/.config/wmii-hg/quit
+++ b/.config/wmii-hg/quit
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
if type systemctl &>/dev/null; then
systemctl --user stop "wmii@$DISPLAY.service"
else
diff --git a/.config/wmii-hg/rbar b/.config/wmii-hg/rbar
index 9aaa485..0709ed3 100755
--- a/.config/wmii-hg/rbar
+++ b/.config/wmii-hg/rbar
@@ -1,8 +1,4 @@
-#!/bin/bash
-IFS=:
-read -r name prefix DISPLAY <<<"$1"
-export DISPLAY
-
+#!/usr/bin/env bash
id=$1
name=${id#[0-9][0-9]_}
diff --git a/.config/wmii-hg/rbar.sh b/.config/wmii-hg/rbar.sh
index 8bff558..0c9efa6 100644
--- a/.config/wmii-hg/rbar.sh
+++ b/.config/wmii-hg/rbar.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
setup_trap() {
trap "rm -f -- \"\${XDG_RUNTIME_DIR}\"/n/wmii*/rbar/${1}" EXIT
}
diff --git a/.config/wmii-hg/rbar_acpi b/.config/wmii-hg/rbar_acpi
index 5e77abb..2e9f3d4 100755
--- a/.config/wmii-hg/rbar_acpi
+++ b/.config/wmii-hg/rbar_acpi
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
update() {
id=$1
diff --git a/.config/wmii-hg/rbar_clock b/.config/wmii-hg/rbar_clock
index a09f016..e84d5c3 100755
--- a/.config/wmii-hg/rbar_clock
+++ b/.config/wmii-hg/rbar_clock
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
update() {
id=$1
diff --git a/.config/wmii-hg/rbar_wifi b/.config/wmii-hg/rbar_wifi
index 195df7c..dad4e61 100755
--- a/.config/wmii-hg/rbar_wifi
+++ b/.config/wmii-hg/rbar_wifi
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
iwinfo() {
local interface=$1
@@ -29,7 +29,7 @@ right-click() {
IFS=''
while read -r line; do
list+=("$line")
- done < <({ netctl-auto list; printf '> %s\n' 'New Network' 'Disable All' 'Enable All';} | sed 's,$,$,' | column -s '$' -t)
+ done < <({ netctl-auto list | sort -k1.2; printf '> %s\n' 'New Network' 'Disable All' 'Enable All';} | sed 's,$,$,' | column -s '$' -t)
cur=''
for item in "${list[@]}"; do
@@ -38,6 +38,7 @@ right-click() {
fi
done
+ IFS=$' \t\n'
item=$(wmii9menu -i "$cur" "${list[@]}")
case "$item" in
'')
diff --git a/.config/wmii-hg/rules b/.config/wmii-hg/rules
index 3576983..6334a7c 100644
--- a/.config/wmii-hg/rules
+++ b/.config/wmii-hg/rules
@@ -1,8 +1,5 @@
/wimenu/ floating=always
/panel/ tags=/.*/ floating=always
-/xfce4-notifyd/ tags=/.*/ floating=always
-
-/nm-applet/ floating=off
/^FLTK:FLTK:/ floating=always
diff --git a/.config/wmii-hg/theme-solarized b/.config/wmii-hg/theme-solarized
index 5dc830d..8c40e4d 100644
--- a/.config/wmii-hg/theme-solarized
+++ b/.config/wmii-hg/theme-solarized
@@ -1,3 +1,4 @@
+#!/hint/bash
SOL_BASE03='#002b36'
SOL_BASE02='#073642'
SOL_BASE01='#586e75'
diff --git a/.config/wmii-hg/theme-solarized-dark b/.config/wmii-hg/theme-solarized-dark
index fde361b..fc74b6c 100644
--- a/.config/wmii-hg/theme-solarized-dark
+++ b/.config/wmii-hg/theme-solarized-dark
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/hint/bash
# Solarized-dark
. theme-solarized
diff --git a/.config/wmii-hg/theme-tango b/.config/wmii-hg/theme-tango
index f4c20a2..6ba744f 100644
--- a/.config/wmii-hg/theme-tango
+++ b/.config/wmii-hg/theme-tango
@@ -1,3 +1,4 @@
+#!/hint/bash
TANGO_butter=("#fce94f" "#edd400" "#c4a000")
TANGO_orange=("#fcaf3e" "#f57900" "#ce5c00")
TANGO_choc=( "#e9b96e" "#c17d11" "#8f5902")
diff --git a/.config/wmii-hg/theme-tango-dark b/.config/wmii-hg/theme-tango-dark
index 04a9fa6..efea1e9 100644
--- a/.config/wmii-hg/theme-tango-dark
+++ b/.config/wmii-hg/theme-tango-dark
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
# Tango-tark
. theme-tango
diff --git a/.config/wmii-hg/util.sh b/.config/wmii-hg/util.sh
index b28a3b6..55344b2 100644
--- a/.config/wmii-hg/util.sh
+++ b/.config/wmii-hg/util.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/hint/bash
################################################################################
# Added shell features #
diff --git a/.config/wmii-hg/wmiirc b/.config/wmii-hg/wmiirc
index 6fd348f..379de79 100755
--- a/.config/wmii-hg/wmiirc
+++ b/.config/wmii-hg/wmiirc
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
unset WMII_NAMESPACE
unset WMII_DIR
@@ -13,9 +13,7 @@ wmiir xwrite /event WmiircQuit # close any existing wmiirc's
Event WmiircStart
# Notify systemd that we're ready
-if [ -S "$NOTIFY_SOCKET" ]; then
- echo READY=1 | socat STDIO UNIX-SENDTO:"$NOTIFY_SOCKET"
-fi
+systemd-notify READY=1 || true
trap "Event Quit" EXIT
diff --git a/.local/bin/config-path b/.local/bin/config-path
index 1d4d4d1..4b7cccb 100755
--- a/.local/bin/config-path
+++ b/.local/bin/config-path
@@ -8,6 +8,7 @@ prefixes=(
"$HOME/.prefix.$(uname -m)"
"$HOME/.prefix"
"$HOME"/.gem/ruby/*
+ "$HOME"/.npm-prefix
)
in_array() {
@@ -43,6 +44,9 @@ var_done() {
}
main() {
+ export LC_ALL=C # Work around brokenly slow Unicode handling
+ # in Bash
+
IFS=:
# Import existing values
var_init PATH