+# Create a dir and cd there
+
+function mcd () {
+ mkdir -vp "$1"
+ cd "$1"
+}
+
+# Capture the screen in a dated png
+
+function cap () {
+ if [[ $2 ]]
+ then
+ name=$2
+ else
+ name="capture-$(date +%Y%m%d-%H%M%S).png"
+ fi
+
+ if [[ "$1" ]]
+ then
+ echo "Waiting $1 s and saving to ${name}."
+ sleep "$1"
+ else
+ echo "Saving to ${name}."
+ fi
+
+ echo "Please click on the window to capture."
+ xwd | convert xwd:- ${name}
+ \ls -l ${name}
+}
+
+# Create and CD in a /tmp/tmp.XXXXXX directory. With the '-'
+# arguments, do not create one and CD in the most recent instead
+
+function cdt () {
+ if [[ "$1" ]]
+ then
+ if [[ "$1" == "-" ]]
+ then
+ cd $(\ls -td /tmp/tmp.?????? | head -1)
+ else
+ echo "USAGE: cdt [-]" >&2
+ return 1
+ fi
+ else
+ dir=$(mktemp -d /tmp/tmp.XXXXXX)
+ link=/tmp/tmp
+ if [[ -h ${link} ]]
+ then
+ \rm ${link}
+ fi
+ if [[ ! -a ${link} ]]
+ then
+ ln -s ${dir} ${link}
+ fi
+ cd ${dir}
+ fi
+}
+
+alias t='cd /tmp'
+alias a='cd /tmp/at'
+
+function trash () {
+
+ [[ "${TRASH_LATER_ROOT}" ]] || TRASH_LATER_ROOT="${HOME}/.trash"
+
+ if [[ "$1" == "--" ]]
+ then
+ shift
+ elif [[ "$1" == "-l" ]]
+ then
+ shift
+ echo "Trashin in 3 months"
+ TRASH_DIR="${TRASH_LATER_ROOT}/remove-after-$(date --date='+3 months' +%Y-%b-%d)"
+ mkdir -p "${TRASH_DIR}"
+ else
+ TRASH_DIR=$(date +/tmp/trash-${USER}-%Y-%b-%d-%Hh)
+ LINK=/tmp/trash
+ mkdir -p ${TRASH_DIR}
+ [[ -h ${LINK} ]] && \rm ${LINK}
+ [[ ! -f ${LINK} ]] && ln -s ${TRASH_DIR} ${LINK}
+ fi
+
+ mv "$@" "${TRASH_DIR}"
+ echo "Trashed $@"
+}
+
+function trashlatex () {
+ TRASH=$(date +/tmp/trash-latex-${USER}-%Y-%b-%d-%Hh)
+ LINK=/tmp/trash
+
+ mkdir -p ${TRASH}
+
+ [[ -h ${LINK} ]] && \rm ${LINK}
+
+ [[ ! -f ${LINK} ]] && ln -s ${TRASH} ${LINK}
+
+ mv -v \
+ *.log *.pdf *.aux *.nav *.pdfpc *.snm *.toc *.out \
+ *.bbl *.blg \
+ *.*.table *.*.gnuplot \
+ ${TRASH}
+}
+