summaryrefslogtreecommitdiff
path: root/.bashrc
diff options
context:
space:
mode:
Diffstat (limited to '.bashrc')
-rw-r--r--.bashrc258
1 files changed, 258 insertions, 0 deletions
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..33c0e39
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,258 @@
+#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
+