From ab467143711870684d17eec567dc2ee795e865be Mon Sep 17 00:00:00 2001 From: Meutel Date: Mon, 1 May 2017 11:18:25 +0200 Subject: [PATCH] Refactoring bashrc --- _bashrc | 138 ++++++++++++++++++++++++-------------------------------- 1 file changed, 58 insertions(+), 80 deletions(-) diff --git a/_bashrc b/_bashrc index f3ccf0b..070ac8d 100644 --- a/_bashrc +++ b/_bashrc @@ -1,10 +1,8 @@ -# ~/.bashrc: executed by bash(1) for non-login shells. -# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) -# for examples - # If not running interactively, don't do anything [ -z "$PS1" ] && return +##### VARIABLES ##### + # don't put duplicate lines in the history. See bash(1) for more options export HISTCONTROL=ignoredups # ... and ignore same sucessive entries. @@ -12,29 +10,28 @@ export HISTCONTROL=ignoreboth # size export HISTSIZE=10000 export HISTFILESIZE=100000 +# navigateur prefere +export BROWSER=firefox +# editeur par defaut +export EDITOR=vim +export VISUAL=$EDITOR +# pager man conserve affichage à l'écran +export MANPAGER="less -X" +# youtube dl default dl dir FIXME default in youtube +export YDL_TARGET=$HOME -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize +##### COLORS ##### -# make less more friendly for non-text input files, see lesspipe(1) -#[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" - -# set variable identifying the chroot you work in (used in the prompt below) -if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then - debian_chroot=$(cat /etc/debian_chroot) +# ls colors +export LSCOLORS="ExGxFxdxCxDxDxhbadExEx" +# enable color support of ls and also add handy aliases +if [ "$TERM" != "dumb" ]; then + [ -x /usr/bin/dircolors ] && eval "`dircolors -b`" fi -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in -xterm-color) - PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' - ;; -*) - PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' - ;; -esac +##### FUNCTIONS ##### +# status indicator prompt_status() { if [[ "$?" == "0" ]] @@ -45,8 +42,35 @@ prompt_status() fi echo -n '\[\033[1;31m\]' } -# Prompt -PS1="\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]\n\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] " + +##### INCLUDES ##### + +# Alias definitions. +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi +# host specific +if [ -f ~/.bash_aliases_$(hostname -s) ]; then + . ~/.bash_aliases_$(hostname -s) +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi +# FreeBSD +[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \ + source /usr/local/share/bash-completion/bash_completion.sh + +##### MISC ##### + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize +# conserve l'historique lorsque l'on utilise plusieurs terminaux +shopt -s histappend # If this is an xterm set the title to user@host:dir case "$TERM" in @@ -57,61 +81,20 @@ xterm*|rxvt*) ;; esac -# Alias definitions. -# You may want to put all your additions into a separate file like -# ~/.bash_aliases, instead of adding them here directly. -# See /usr/share/doc/bash-doc/examples in the bash-doc package. - -if [ -f ~/.bash_aliases ]; then - . ~/.bash_aliases -fi -# host specific -if [ -f ~/.bash_aliases_$(hostname -s) ]; then - . ~/.bash_aliases_$(hostname -s) +# Tmux + ssh agent forwarding +if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ]; then + ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock fi +export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock -# enable color support of ls and also add handy aliases -if [ "$TERM" != "dumb" ]; then - [ -x /usr/bin/dircolors ] && eval "`dircolors -b`" - #alias dir='ls --color=auto --format=vertical' - #alias vdir='ls --color=auto --format=long' -fi +##### PROMPT ##### -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). -if [ -f /etc/bash_completion ]; then - . /etc/bash_completion -fi +PS1_pre="\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]" +PS1_post="\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] " +PS1="${PS1_pre}\n${PS1_post}" -# navigateur prefere -export BROWSER=firefox +##### GIT ##### -# conserve l'historique lorsque l'on utilise plusieurs terminaux -shopt -s histappend - -# editeur par defaut -export EDITOR=vim -export VISUAL=$EDITOR - -# mutt background fix -COLORFGBG="default;default" - -# pager man conserve affichage à l'écran -export MANPAGER="less -X" - -# ls colors -export LSCOLORS="ExGxFxdxCxDxDxhbadExEx" - -# youtube dl default dl dir -export YDL_TARGET=$HOME - -# host specific -if [ -f ~/.bashrc_$(hostname -s) ]; then - . ~/.bashrc_$(hostname -s) -fi - -# git if [ -e /usr/local/share/git-core/contrib/completion/git-completion.bash ]; then . /usr/local/share/git-core/contrib/completion/git-completion.bash fi @@ -127,11 +110,6 @@ if [ -e /usr/local/share/git-core/contrib/completion/git-prompt.sh ] || [ -e /us export GIT_PS1_SHOWUNTRACKEDFILES=1 export GIT_PS1_SHOWUPSTREAM="auto" export GIT_PS1_SHOWCOLORHINTS=1 - export PROMPT_COMMAND='__git_ps1 "\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]" "\n\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] "' + export PROMPT_COMMAND='__git_ps1 "$PS1_pre" "\n$PS1_post"' fi -# Tmux + ssh agent forwarding -if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ]; then - ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock -fi -export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock