######################################################################
## The interactive part
-export VT_RESET=$'\033[0m'
-export VT_BOLD=$'\033[1m'
-export VT_UNDERLINE=$'\033[4m'
-export VT_BLINK=$'\033[5m'
+export VT_RESET=$'\e[0m'
+export VT_BOLD=$'\e[1m'
+export VT_UNDERLINE=$'\e[4m'
+export VT_BLINK=$'\e[5m'
-export VT_SET_TITLE=$'\033]0;'
+export VT_SET_TITLE=$'\e]0;'
export VT_END_TITLE=$'\007'
-export VT_BLACK_FG=$'\033[30m'
-export VT_RED_FG=$'\033[31m'
-export VT_GREEN_FG=$'\033[32m'
-export VT_YELLOW_FG=$'\033[33m'
-export VT_BLUE_FG=$'\033[34m'
-export VT_MAGENTA_FG=$'\033[35m'
-export VT_CYAN_FG=$'\033[36m'
-export VT_WHITE_FG=$'\033[37m'
-
-export VT_BLACK_BG=$'\033[40m'
-export VT_RED_BG=$'\033[41m'
-export VT_GREEN_BG=$'\033[42m'
-export VT_YELLOW_BG=$'\033[43m'
-export VT_BLUE_BG=$'\033[44m'
-export VT_MAGENTA_BG=$'\033[45m'
-export VT_CYAN_BG=$'\033[46m'
-export VT_WHITE_BG=$'\033[47m'
+export VT_BLACK_FG=$'\e[30m'
+export VT_RED_FG=$'\e[31m'
+export VT_GREEN_FG=$'\e[32m'
+export VT_YELLOW_FG=$'\e[33m'
+export VT_BLUE_FG=$'\e[34m'
+export VT_MAGENTA_FG=$'\e[35m'
+export VT_CYAN_FG=$'\e[36m'
+export VT_WHITE_FG=$'\e[37m'
+
+export VT_BLACK_BG=$'\e[40m'
+export VT_RED_BG=$'\e[41m'
+export VT_GREEN_BG=$'\e[42m'
+export VT_YELLOW_BG=$'\e[43m'
+export VT_BLUE_BG=$'\e[44m'
+export VT_MAGENTA_BG=$'\e[45m'
+export VT_CYAN_BG=$'\e[46m'
+export VT_WHITE_BG=$'\e[47m'
+
+# Colorize man pages!
+
+export LESS_TERMCAP_us=${VT_GREEN_FG}
+export LESS_TERMCAP_ue=${VT_RESET}
+export LESS_TERMCAP_md=${VT_BLUE_FG}${VT_BOLD}
+export LESS_TERMCAP_me=${VT_RESET}
+
+# export LESS_TERMCAP_md=$'\e[1;34;40m'
# This prevents ^S from freezing the shell
alias s='screen -d -R -U && clear'
alias mc='echo Try mv ' # I'm fed up with midnight commander
-alias kj="keyjnote -s -D 1000 -t Crossfade -T 100"
+# alias kj="keyjnote -s -D 1000 -t Crossfade -T 100"
+alias impressive="impressive -s -D 1000 -t Crossfade -T 100"
# alias fdupes='fdupes -r .'
# alias ll='ls --color -lth'
alias lt='ls --color -gohtr --time-style="+%Y %b %d %H:%M"'
alias ll='ls --color -goh --time-style="+%Y %b %d %H:%M"'
+ alias lll='ls --color -lth'
alias l='ls --color -I "*~" -I "*.o"'
alias less='less -R'
else
# alias ll='ls -lth'
alias lt='ls -gohtr --time-style="+%Y %b %d %H:%M"'
alias ll='ls -goh --time-style="+%Y %b %d %H:%M"'
+ alias lll='ls -lth'
alias l='ls -I "*~" -I "*.o"'
fi
function fn () {
name=$1
shift
- find $* -name "*${name}*";
+ find "$@" -name "*${name}*";
}
# Create a dir and cd there
cd $1
}
-alias trash=trash.sh
+# Capture the screen in a dated png
+
+function cap () {
+ if [[ $2 ]]; then
+ name=$2
+ else
+ name="capture-$(date +%s).png"
+ fi
+ echo "Waiting $1 s and saving to ${name}."
+ [[ $1 ]] && sleep $1
+ echo "Please click on the window to capture."
+ xwd | convert - ${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
+ cd $(mktemp -d /tmp/tmp.XXXXXX)
+ fi
+}
+
+alias t='cd /tmp'
+
+function trash () {
+ TRASH=$(date +/tmp/trash-%Y-%b-%d-%Hh)
+
+ if [[ -d ${TRASH} ]]; then
+ echo "Re-use ${TRASH}"
+ else
+ mkdir ${TRASH}
+ echo "Created ${TRASH}"
+ fi
+
+ mv "$@" ${TRASH}
+ echo "Trashed $@"
+}
+
+# alias trash=trash.sh
function mmsget () {
mplayer $1 -dumpstream -dumpfile $(basename $1)
function pho () {
PHO_BIN=/usr/bin/pho
TEMP=$(mktemp /tmp/pho.XXXXXXX)
- ${PHO_BIN} $* | tee ${TEMP}
+ ${PHO_BIN} "$@" | tee ${TEMP}
PHO_NOTE_1=$(grep ^"Note 1: " ${TEMP} | sed -e "s/^[^:]*: //")
PHO_NOTE_2=$(grep ^"Note 2: " ${TEMP} | sed -e "s/^[^:]*: //")
PHO_NOTE_3=$(grep ^"Note 3: " ${TEMP} | sed -e "s/^[^:]*: //")
function ifup () {
echo "${VT_BOLD}${VT_GREEN_FG}This is the bash function ifup from .bashrc${VT_RESET}"
- if [[ ! $* ]] && [[ -s ${IFUPRC} ]]; then
- # If we have no argument and there is a .ifuprc, use it
- ARGS=$(cat ${IFUPRC})
+ if [[ "$1" == "-s" ]]; then
+ chosen_ifup=$(mktemp /tmp/chosen_ifup.XXXXXX)
+ selector -i -d -o ${chosen_ifup} ${IFUPRC}
+ ARGS=$(cat ${chosen_ifup})
+ rm -f ${chosen_ifup}
+ echo ${ARGS} >> ${IFUPRC}
else
- # Otherwise uses the given arguments, and store them
- ARGS=$*
- echo ${ARGS} > ${IFUPRC}
+ if [[ ! $* ]] && [[ -s ${IFUPRC} ]]; then
+ # If we have no argument and there is a .ifuprc, use it
+ ARGS=$(tail -1 ${IFUPRC})
+ else
+ # Otherwise uses the given arguments, and store them
+ ARGS=$*
+ echo ${ARGS} >> ${IFUPRC}
+ fi
fi
echo "${VT_GREEN_FG}Running [sudo ifup ${ARGS}]${VT_RESET}"
sudo ifup ${ARGS}
if [[ ! $* ]] && [[ -s ${IFUPRC} ]]; then
# If there are no arguments and there is a .ifuprc, get the
# interface from it
- ARGS=$(cat ${IFUPRC} | sed -e "s/=.*$//")
+ ARGS=$(tail -1 ${IFUPRC} | sed -e "s/=.*$//")
else
# Otherwise, use the standard ifdown
ARGS=$*
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}
- # \ls -lth $* | head -$((HEIGHT-2)) | cut -b1-${WIDTH}
+ \ls -goth --time-style="+%Y %b %d %H:%M" "$@" | \
+ head -$((HEIGHT-2)) | \
+ cut -b1-${WIDTH}
}
######################################################################
# You can change the xterm background color on the fly!
function setxtermbg () {
- echo -n $'\033]11;'$1$'\007'
+ echo -n $'\e]11;'$1$'\007'
}
######################################################################
######################################################################
# Switch off the history
-alias nh=" export HISTFILE=/dev/null"
-
function histfile_cue () {
if [[ ! "${HISTFILE}" == "${HOME}/.bash_history" ]]; then
HISTORY_CUE="[${HISTFILE}]"
#
# git clone http://fleuret.org/git/dus/
-alias dus='dus -f'
+alias dus='dus -f -i'
######################################################################
# The finddup command is available on my web site
# Find pathes in the history and make a list of the existing ones
+export CD_HISTORY=${HOME}/.selector-cd-history
+
function selector-cd () {
- LIST_TEMP=$(mktemp /tmp/selector-cd-list.XXXXXX)
- PATH_TEMP=$(mktemp /tmp/selector-cd-path.XXXXXX)
- for d in $(history | \
- grep ^" *[0-9]* *cd" | \
- awk '{ print $3 }' | \
- grep -v "\.\." | \
- uniq); do
- if [[ -d $d ]]; then
- echo "$d"
+ if [[ "$1" == "+" ]]; then
+ PATH_TEMP=$(mktemp /tmp/selector-cd-path.XXXXXX)
+ selector -d -i -o ${PATH_TEMP} ${CD_HISTORY}
+ cd $(cat ${PATH_TEMP} | sed -e "s|~|${HOME}|")
+ \rm ${PATH_TEMP}
+ else
+ if [[ -z "$1" ]]; then
+ cd
+ else
+ cd "$1"
fi
- done >> ${LIST_TEMP}
- selector -d -i -o ${PATH_TEMP} ${LIST_TEMP}
- cd $(cat ${PATH_TEMP})
- \rm ${LIST_TEMP}
- \rm ${PATH_TEMP}
+ echo $PWD | sed -e "s|${HOME}|~|" >> ${CD_HISTORY}
+ fi
}
+alias cd=selector-cd
+alias cdd="cd $(tail -1 ${CD_HISTORY})"
+
+# M-c provides a dynamic list of directories to cd into
+
+bind '"\C-[c":"\C-a\C-kselector-cd +\C-m"'
+
+# function selector-cd () {
+# LIST_TEMP=$(mktemp /tmp/selector-cd-list.XXXXXX)
+# PATH_TEMP=$(mktemp /tmp/selector-cd-path.XXXXXX)
+# for d in $(history | \
+# grep ^" *[0-9]* *cd" | \
+# awk '{ print $3 }' | \
+# grep -v "\.\." | \
+# uniq); do
+# if [[ -d $d ]]; then
+# echo "$d"
+# fi
+# done >> ${LIST_TEMP}
+# selector -d -i -o ${PATH_TEMP} ${LIST_TEMP}
+# cd $(cat ${PATH_TEMP})
+# \rm ${LIST_TEMP}
+# \rm ${PATH_TEMP}
+# }
+
# M-r puts the selected history line in place of the current one
bind '"\C-[r":"\C-a\C-kselector-history\C-m"'
bind '"\C-[t":"\C-a\C-kselector-history\C-m\C-a\C-y\C-e"'
-# M-c provides a dynamic list of directories to cd into
-
-bind '"\C-[c":"\C-a\C-kselector-cd\C-m"'
-
# And we avoid to put in the history the use of the selector, which we
# do too often