Update.
[scripts.git] / bashrc
diff --git a/bashrc b/bashrc
index 20cb77d..33e84b7 100644 (file)
--- a/bashrc
+++ b/bashrc
@@ -120,8 +120,9 @@ alias find='ionice -c3 find'
 alias pd=pushd
 alias val='valgrind --leak-check=full --show-reachable=yes --db-attach=yes '
 
-alias s='screen -d -R -U && clear'
+alias s='screen -d -R default -U && clear'
 alias p='feh --force-aliasing -d --full-screen --auto-zoom'
+alias gp=gnuplot
 
 function nh () {
     export HISTFILE=/dev/null
@@ -314,7 +315,12 @@ function scan () {
 # A password generator
 
 function genpw () {
-    tr -dc A-Za-z0-9 < /dev/urandom | head -c16
+    PW=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c16)
+    if [[ ! "$1" == "-s" ]]
+    then
+       echo "$(date) ${PW}" >> ${HOME}/private/genpw.log
+    fi
+    echo ${PW}
     # tr -dc [:graph:] < /dev/urandom | head -c16
     echo
 }
@@ -424,6 +430,23 @@ function trash () {
     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}
+}
+
 ######################################################################
 ## A version of pho which stores the image numbers in environment
 ## variables
@@ -585,11 +608,54 @@ function checkgw () {
 # Show the most recent files, no scroll
 
 function lr () {
-    HEIGHT=$(stty size | awk '{print $1}')
-    WIDTH=$(stty size | awk '{print $2}')
-    \ls -goth --time-style="+%Y %b %d %H:%M" "$@" | \
-        head -$((HEIGHT-2)) | \
-        cut -b1-${WIDTH}
+    TERM_SIZE=($(stty size))
+    INVIS="${VT_GREEN_FG}${VT_RESET}"
+    \ls -goth --time-style="+${VT_GREEN_FG}%Y %b %d %H:%M${VT_RESET}" "$@" | \
+        head -$((TERM_SIZE[0]-2)) | cut -b1-$((TERM_SIZE[1]+${#INVIS}))
+}
+
+######################################################################
+
+reduce-pdf () {
+
+    # /screen selects low-resolution output
+    # /ebook selects medium-resolution output
+    # /printer selects "Print Optimized" setting.
+    # /prepress selects "Prepress Optimized" setting.
+
+    quality="printer"
+
+    while [[ "$1" ]]
+    do
+        if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]
+        then
+            echo "$0 [<file.pdf>|--quality <screen|ebook|printer|prepress>] ..."
+            return 0
+
+        elif [[ "$1" == "--quality" ]]
+        then
+            shift
+            quality="$1"
+
+        elif [[ -f "$1" ]]
+        then
+            result="$(basename "$1" .pdf)-${quality}.pdf"
+            echo -n "Generating ${result} with quality ${quality} ... "
+            gs -sDEVICE=pdfwrite \
+               -dCompatibilityLevel=1.4 \
+               -dPDFSETTINGS=/${quality} \
+               -dColorConversionStrategy=/LeaveColorUnchanged \
+               -dNOPAUSE -dQUIET -dBATCH \
+               -sOutputFile="${result}" "$1"
+            echo "done."
+            ls -hl "$1" "${result}"
+
+        else
+            echo "Cannot fine $1"
+
+        fi
+        shift
+    done
 }
 
 ######################################################################