Created
September 9, 2020 17:50
-
-
Save alexandre1985/84015be72c058024d90bf10f0d64c716 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# ~/.bashrc | |
# | |
[[ $- != *i* ]] && return | |
parse_git_branch() { | |
/usr/bin/git branch 2> /dev/null | /usr/bin/sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' | |
} | |
colors() { | |
local fgc bgc vals seq0 | |
printf "Color escapes are %s\n" '\e[${value};...;${value}m' | |
printf "Values 30..37 are \e[33mforeground colors\e[m\n" | |
printf "Values 40..47 are \e[43mbackground colors\e[m\n" | |
printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n" | |
# foreground colors | |
for fgc in {30..37}; do | |
# background colors | |
for bgc in {40..47}; do | |
fgc=${fgc#37} # white | |
bgc=${bgc#40} # black | |
vals="${fgc:+$fgc;}${bgc}" | |
vals=${vals%%;} | |
seq0="${vals:+\e[${vals}m}" | |
printf " %-9s" "${seq0:-(default)}" | |
printf " ${seq0}TEXT\e[m" | |
printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" | |
done | |
echo; echo | |
done | |
} | |
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion | |
# Change the window title of X terminals | |
case ${TERM} in | |
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*) | |
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' | |
;; | |
screen*) | |
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' | |
;; | |
esac | |
use_color=true | |
# Set colorful PS1 only on colorful terminals. | |
# dircolors --print-database uses its own built-in database | |
# instead of using /etc/DIR_COLORS. Try to use the external file | |
# first to take advantage of user additions. Use internal bash | |
# globbing instead of external grep binary. | |
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM | |
match_lhs="" | |
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" | |
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)" | |
[[ -z ${match_lhs} ]] \ | |
&& type -P dircolors >/dev/null \ | |
&& match_lhs=$(dircolors --print-database) | |
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true | |
if ${use_color} ; then | |
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489 | |
if type -P dircolors >/dev/null ; then | |
if [[ -f ~/.dir_colors ]] ; then | |
eval $(dircolors -b ~/.dir_colors) | |
elif [[ -f /etc/DIR_COLORS ]] ; then | |
eval $(dircolors -b /etc/DIR_COLORS) | |
fi | |
fi | |
if [[ ${EUID} == 0 ]] ; then | |
PS1="\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\[\033[00;32m\]\$(parse_git_branch)\[\033[01;31m\]\$\[\033[00m\] " | |
else | |
PS1="\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\[\033[00;32m\]\$(parse_git_branch)\[\033[01;32m\]\$\[\033[00m\] " | |
fi | |
alias ls='ls --color=auto' | |
alias grep='grep --colour=auto' | |
alias egrep='egrep --colour=auto' | |
alias fgrep='fgrep --colour=auto' | |
else | |
if [[ ${EUID} == 0 ]] ; then | |
# show root@ when we don't have colors | |
PS1='\u@\h \W \$ ' | |
else | |
PS1='\u@\h \w \$ ' | |
fi | |
fi | |
unset use_color safe_term match_lhs sh | |
#alias cp="cp -i" # confirm before overwriting something | |
alias df='df -h' # human-readable sizes | |
alias free='free -m' # show sizes in MB | |
alias np='nano -w PKGBUILD' | |
alias more=less | |
xhost +local:root > /dev/null 2>&1 | |
#complete -cf sudo | |
# Bash won't get SIGWINCH if another process is in the foreground. | |
# Enable checkwinsize so that bash will check the terminal size when | |
# it regains control. #65623 | |
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) | |
shopt -s checkwinsize | |
shopt -s expand_aliases | |
# export QT_SELECT=4 | |
# Enable history appending instead of overwriting. #139609 | |
shopt -s histappend | |
# | |
# # ex - archive extractor | |
# # usage: ex <file> | |
ex () | |
{ | |
if [ -f $1 ] ; then | |
case $1 in | |
*.tar.bz2) tar xjf $1 ;; | |
*.tar.gz) tar xzf $1 ;; | |
*.bz2) bunzip2 $1 ;; | |
*.rar) unrar x $1 ;; | |
*.gz) gunzip $1 ;; | |
*.tar) tar xf $1 ;; | |
*.tbz2) tar xjf $1 ;; | |
*.tgz) tar xzf $1 ;; | |
*.zip) unzip $1 ;; | |
*.Z) uncompress $1;; | |
*.7z) 7z x $1 ;; | |
*) echo "'$1' cannot be extracted via ex()" ;; | |
esac | |
else | |
echo "'$1' is not a valid file" | |
fi | |
} | |
# autocomplete sudo | |
complete -cf sudo odo ndo gksudo gksu | |
# bash completion | |
source /usr/share/bash-completion/bash_completion | |
# add config from file | |
if [ -f /home/daniel/.bashrc-global ]; then | |
source /home/daniel/.bashrc-global | |
fi | |
# user bin | |
PATH="$HOME/bin:$PATH" | |
# ruby | |
PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH" | |
# bundler | |
export GEM_HOME=$(ruby -e 'print Gem.user_dir') | |
export N_PREFIX="$HOME/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH="$N_PREFIX/bin:$PATH" # Added by n-install (see http://git.io/n-install-repo). | |
#composer | |
PATH="$HOME/.config/composer/vendor/bin:$PATH" | |
#go | |
export PATH="$HOME/go/bin:$PATH" | |
# opam | |
export PATH="$PATH:$HOME/.opam/default/bin" | |
# ssh no agent | |
export SSH_AUTH_SOCK_OLD=$SSH_AUTH_SOCK | |
unset SSH_AUTH_SOCK | |
# git signing yubikey | |
export GPG_TTY=$(tty) | |
# pip install to PATH | |
PATH="$PATH:$HOME/.local/bin" | |
# bundler-exec (always run jekyll, for example, with bundle exec jekyll... ) | |
[ -f ~/bin/bundler-exec.sh ] && source ~/bin/bundler-exec.sh | |
export GH="view source branch (which is master) commits for more details" | |
# browser | |
BROWSER='/usr/bin/qutebrowser' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment