#basics [[ $- == *i* ]] || return export EDITOR="vim" export TERM="screen-256color" export GREP_COLOR='00;38;5;166' # my scripts on PATH export PATH=/usr/local/bin:$PATH export PATH=$PATH:$HOME/bin export PATH=$PATH:$HOME/bin/bash-scripts # Alias definitions if [ -f ~/.aliases ]; then . ~/.aliases fi # Append to the history file, don't overwrite it shopt -s histappend # Save multi-line commands as one command shopt -s cmdhist # Record each line as it gets issued PROMPT_COMMAND='history -a' # Automatically trim long paths in the prompt (requires Bash 4.x) PROMPT_DIRTRIM=2 # Huge history. Doesn't appear to slow things down, so why not? HISTSIZE=500000 HISTFILESIZE=100000 # Avoid duplicate entries HISTCONTROL="erasedups:ignoreboth" # Don't record some commands export HISTIGNORE="&:[ ]*:exit:ls:bg:fg:history" # Useful timestamp format HISTTIMEFORMAT='%F %T ' #Better, faster directory navigation shopt -s autocd shopt -s cdable_vars # Don't use ~ to define your home here, it won't work. export lux="$HOME/sites/luxagraf.net" export sites="/etc/nginx/sites-enabled/" export www="/var/www/" # Correct minor errors in the spelling of a directory shopt -s cdspell shopt -s dirspell # colorized man pages man() { env \ LESS_TERMCAP_md=$(printf "\e[1;31m") \ LESS_TERMCAP_me=$(printf "\e[0m") \ LESS_TERMCAP_se=$(printf "\e[0m") \ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ LESS_TERMCAP_ue=$(printf "\e[0m") \ LESS_TERMCAP_us=$(printf "\e[1;32m") \ man "$@" } # Git custom prompt export GITAWAREPROMPT=~/bin/git-aware-prompt source "${GITAWAREPROMPT}/main.sh" export PS1="\[\033[33;1m\]\[\033[m\]\$(pwd-prompt.bash) \[$txtred\]\$git_dirty\[$txtrst\]$ " # Complete all the things #source ~/bin/tmux.completion.bash #source ~/bin/tmuxinator.bash #source ~/bin/pandoc.bash #fuzzy find function f() { find ${2:-.} -name \*$1\* } function tolux() { scp $3 $1 lxf:/home/lxf/$2 } function frlux() { scp $3 lxf:/home/lxf/$1 $2 } function togrev() { scp $3 $1 grev:/home3/thegeot1/public_html/dev/$2 } function maketar() { tar cvzf "${1%%/}.tar.gz" "${1%%/}/"; } function extract() # Handy Extract Program { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via >extract<" ;; esac else echo "'$1' is not a valid file!" fi } # pip should only run if there is a virtualenv currently activated export PIP_REQUIRE_VIRTUALENV=true # cache pip-installed packages to avoid re-downloading export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache # Start an HTTP server from a directory, optionally specifying the port function server() { local port="${1:-8000}" # Set the default Content-Type to `text/plain` instead of `application/octet-stream` # And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files) python -c $'from http import server\nmap = server.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nserver.test();' "$port" } export DISABLE_AUTO_TITLE=”true” function smartresize() { mogrify -path $3 -filter Triangle -define filter:support=2 -thumbnail $2 -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB $1 } # words, then make me happy and I want to read them all page by page function d() { sdcv "$1" | less } #download movies yt () { yt-dlp -S height:1080 https://www.youtube.com/watch?v="$1" } if [[ "$OSTYPE" == "darwin"* ]]; then # OSX-SPECIFIC SETTINGS # enable programmable completion if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi # get git completion working with my aliases # Add git completion to aliases __git_complete g __git_main __git_complete gc _git_commit __git_complete ga _git_add # activates colors export CLICOLOR=1 # ls custom colors export LSCOLORS=ExFxBxDxCxegedabagacad # Fix Python error 'unknown locale: UTF-8' export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 # add homebrew bin folder to PATH export PATH="/usr/local/bin:$PATH" # Add Calibre command line tools export PATH=$PATH:/Applications/calibre.app/Contents/MacOS elif [[ "$OSTYPE" == "linux-gnu" ]]; then # LINUX-SPECIFIC SETTINGS # set variable identifying the chroot you work in if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \W\a\]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # enable programmable completion features if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi # Add RVM to PATH for scripting export PATH="$PATH:$HOME/.rvm/bin" fi PATH="/home/lxf/perl5/bin${PATH:+:${PATH}}"; export PATH; PERL5LIB="/home/lxf/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB; PERL_LOCAL_LIB_ROOT="/home/lxf/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT; PERL_MB_OPT="--install_base \"/home/lxf/perl5\""; export PERL_MB_OPT; PERL_MM_OPT="INSTALL_BASE=/home/lxf/perl5"; export PERL_MM_OPT; PATH=$PATH:/sbin:/usr/sbin