Update.
[scripts.git] / bashrc
diff --git a/bashrc b/bashrc
index f23078a..d16c2ca 100644 (file)
--- a/bashrc
+++ b/bashrc
@@ -28,6 +28,9 @@ PRIVATE_BASHRC="${HOME}/private/bashrc.perso"
 
 [[ "${MANPATH}" ]] || MANPATH=$(manpath)
 
+export EDITOR='emacs -nw'
+export GIT_EDITOR=${EDITOR}
+
 # If the private bashrc exists, execute it
 
 [[ -f "${PRIVATE_BASHRC}" ]] && source "${PRIVATE_BASHRC}"
@@ -46,11 +49,17 @@ export HISTIGNORE="${HISTIGNORE}:&:[ ]*"
 export HISTTIMEFORMAT=""
 
 shopt -s histappend
+shopt -s autocd
 
 # I realized that most of my settings are meaningful only in
 # interactive mode. This should maybe be done more properly through
 # using different .bash_profile and .bash_login
 
+######################################################################
+
+# added by Miniconda3 installer
+export PATH="/home/fleuret/conda/bin:$PATH"
+
 [ ${TERM} == "dumb" ] || [[ ! -t 0 ]] && return
 
 # Remove the annoying beeps in console
@@ -127,6 +136,16 @@ alias s='screen -d -R default -U && clear'
 alias p='feh --force-aliasing -d --full-screen --auto-zoom'
 alias gp=gnuplot
 
+function ext () {
+    find . -maxdepth 1 -type f | \grep \. | sed -e 's/^.*\.\([^/.]*\)$/\1/'
+}
+
+function obs () {
+    dir=${HOME}/misc/use-by-$(date --date='+3 months' +%Y-%b-%d)
+    mkdir -p "${dir}"
+    pushd "${dir}"
+}
+
 function nh () {
     export HISTFILE=/dev/null
     unalias cd
@@ -170,9 +189,6 @@ else
     alias l='ls -p -I "*~" -I "*.o"'
 fi
 
-export EDITOR=emacsclient
-export GIT_EDITOR=${EDITOR}
-
 ######################################################################
 # Ignored extensions when completing
 
@@ -319,7 +335,13 @@ function scan () {
 # A password generator
 
 function genpw () {
-    PW=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c16)
+    if [[ "$1" == "-e" ]]
+    then
+        PW=$(tr -dc A-Z0-9 < /dev/urandom | head -c6)
+        shift
+    else
+        PW=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c16)
+    fi
     if [[ ! "$1" == "-s" ]]
     then
        echo "$(date) ${PW}" >> ${HOME}/private/genpw.log
@@ -373,7 +395,7 @@ function cap () {
     then
         name=$2
     else
-        name="capture-$(date +%s).png"
+        name="capture-$(date +%Y%m%d-%H%M%S).png"
     fi
 
     if [[ "$1" ]]
@@ -421,16 +443,26 @@ alias t='cd /tmp'
 alias a='cd /tmp/at'
 
 function trash () {
-    TRASH=$(date +/tmp/trash-${USER}-%Y-%b-%d-%Hh)
-    LINK=/tmp/trash
-
-    mkdir -p ${TRASH}
 
-    [[ -h ${LINK} ]] && \rm ${LINK}
+    [[ "${TRASH_ROOT}" ]] || TRASH_ROOT="${HOME}/.trash"
 
-    [[ ! -f ${LINK} ]] && ln -s ${TRASH} ${LINK}
+    if [[ "$1" == "--" ]]
+    then
+        shift
+    elif [[ "$1" == "-t" ]]
+    then
+        shift
+        TRASH_DIR="${TRASH_ROOT}"
+        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}
+    mv "$@" "${TRASH_DIR}"
     echo "Trashed $@"
 }
 
@@ -1104,8 +1136,3 @@ PROMPT_COMMAND="prompt_command"
 ######################################################################
 
 source /usr/share/bash-completion/bash_completion
-
-######################################################################
-
-# added by Miniconda3 installer
-export PATH="/home/fleuret/conda/bin:$PATH"