summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaitz Zárraga <ekaitz.zarraga@protonmail.com>2019-08-18 18:44:13 +0200
committerEkaitz Zárraga <ekaitz.zarraga@protonmail.com>2019-08-18 18:44:13 +0200
commit80fc1d3f9a5064a6a5a4f882ee83e514130c536a (patch)
treee76274ec822e1a5c121290a6445cad4b31fa7f9d
parent15f83d7a1d10f7101d79fec0c86872afdb76ffb9 (diff)
Move all the bash shit and clean the mess
-rw-r--r--bash/.bash_aliases5
-rw-r--r--bash/.bash_profile63
-rw-r--r--bash/.bashrc156
3 files changed, 164 insertions, 60 deletions
diff --git a/bash/.bash_aliases b/bash/.bash_aliases
index ea32b39..5a64c56 100644
--- a/bash/.bash_aliases
+++ b/bash/.bash_aliases
@@ -21,6 +21,11 @@ alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
+# Add an "alert" alias for long running commands. Use like so:
+# sleep 10; alert
+alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+
# alias for Node.js projects
alias ntree='tree -I node_modules'
# alias for Clojure projects
diff --git a/bash/.bash_profile b/bash/.bash_profile
index 053789e..dee76b7 100644
--- a/bash/.bash_profile
+++ b/bash/.bash_profile
@@ -1,61 +1,4 @@
-# Load in the git branch prompt script.
-source ~/.git-prompt.sh
-
-BLACK="\[\033[0;30m\]"
-RED="\[\033[0;31m\]"
-GREEN="\[\033[0;32m\]"
-YELLOW="\[\033[0;33m\]"
-BLUE="\[\033[0;34m\]"
-MAGENTA="\[\033[0;35m\]"
-CYAN="\[\033[0;36m\]"
-GREY="\[\033[0;37m\]"
-DEFAULT="\[\033[0;39m\]"
-WHITE=DEFAULT
-PS1BASE="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}$GREEN\u@\h\[\033[00m\]:$CYAN\w\[\033[00m\]" #not in use atm
-# TODO CHECK THIS, LOOKS INTERESTING
-PS1TIME="$GREEN\t$RED - " # Not in use atm
-PS1BASE="$CYAN\u $YELLOW\w\[\033[m\]"
-PS1GIT="$BLUE\$(__git_ps1)$DEFAULT"
-PS1END="$DEFAULT\$ "
-PS1="${PS1BASE}${PS1GIT}${PS1END}"
-
-
-if [ -f ~/.bash_aliases ] ; then
- . ~/.bash_aliases
+# Load bashrc to mantain only one file
+if [ -f ~/.bashrc ]; then
+ source ~/.bashrc
fi
-
-# Extra configuration for work or home, just separate it in different file to keep dotfiles clean
-if [ -f ~/.bash_extra ] ; then
- . ~/.bash_extra
-fi
-
-export TERM=xterm-256color
-export EDITOR=vim
-
-# NeoVim configuration
-# Create .config if it doesn't exist and set XDG vars
-mkdir -p $HOME/.config
-export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=$HOME/.config}
-export XDG_DATA_HOME=${XDG_DATA_HOME:=$HOME/.config}
-
-
-# Pandoc bash completion
-eval "$(pandoc --bash-completion)"
-
-# Guix
-if [ -n "$GUIX_ENVIRONMENT" ] # Change prompt if shell is in an environment
-then
- PS1GUIXENV="$BLUE(guix-env)$DEFAULT"
- PS1="${PS1BASE}${PS1GIT}${PS1GUIXENV}${PS1END}"
-fi
-export PATH="/home/ekaitz/.config/guix/current/bin${PATH:+:}$PATH"
-export PATH="/home/ekaitz/.guix-profile/bin${PATH:+:}$PATH"
-export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" # Locale directory
-
-
-# Guile (guix)
-export GUILE_LOAD_PATH="/home/ekaitz/.guix-profile/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
-export GUILE_LOAD_COMPILED_PATH="/home/ekaitz/.guix-profile/lib/guile/2.2/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
-
-# Direnv
-eval "$(direnv hook bash)"
diff --git a/bash/.bashrc b/bash/.bashrc
new file mode 100644
index 0000000..bcf9541
--- /dev/null
+++ b/bash/.bashrc
@@ -0,0 +1,156 @@
+# ~/.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
+case $- in
+ *i*) ;;
+ *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh 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)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#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
+
+# colored GCC warnings and errors
+export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+
+# 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
+
+# VARIABLE EXPORTS
+######################################################################
+export COLOR_BLACK="\[\033[0;30m\]"
+export COLOR_RED="\[\033[0;31m\]"
+export COLOR_GREEN="\[\033[0;32m\]"
+export COLOR_YELLOW="\[\033[0;33m\]"
+export COLOR_BLUE="\[\033[0;34m\]"
+export COLOR_MAGENTA="\[\033[0;35m\]"
+export COLOR_CYAN="\[\033[0;36m\]"
+export COLOR_GREY="\[\033[0;37m\]"
+export COLOR_DEFAULT="\[\033[0;39m\]"
+export COLOR_WHITE=$COLOR_DEFAULT
+
+export EDITOR=vim
+
+# Create .config if it doesn't exist and set XDG vars if they are unset
+mkdir -p $HOME/.config
+export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=$HOME/.config}
+export XDG_DATA_HOME=${XDG_DATA_HOME:=$HOME/.config}
+
+# Guile (guix)
+export GUILE_LOAD_PATH="$HOME/.guix-profile/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
+export GUILE_LOAD_COMPILED_PATH="$HOME/.guix-profile/lib/guile/2.2/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
+
+export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
+export PATH="$HOME/.guix-profile/bin${PATH:+:}$PATH"
+export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" # Locale directory
+######################################################################
+
+# Pandoc bash completion
+eval "$(pandoc --bash-completion)"
+
+# Load in the git branch prompt script.
+source ~/.git-prompt.sh
+
+# Load aliases
+if [ -f ~/.bash_aliases ] ; then
+ . ~/.bash_aliases
+fi
+
+# PROMPT
+PS1BASE="\[\e]0;\u: \w\a\]${debian_chroot:+($debian_chroot)}$COLOR_BLUE\u\[\033[00m\] $COLOR_YELLOW\w\[\033[00m\]"
+
+#PS1BASE="$COLOR_CYAN\u $COLOR_YELLOW\w\[\033[m\]"
+PS1GIT="$COLOR_BLUE\$(__git_ps1)$COLOR_DEFAULT"
+PS1END="$COLOR_DEFAULT\$ "
+export PS1="${PS1BASE}${PS1GIT}${PS1END}"
+
+# Guix
+if [ -n "$GUIX_ENVIRONMENT" ] # Change prompt if shell is in an environment
+then
+ PS1GUIXENV="$COLOR_RED(guixenv)$COLOR_DEFAULT"
+ PS1="${PS1BASE}${PS1GIT}${PS1GUIXENV}${PS1END}"
+fi
+
+# Python virtualenvwrapper
+export WORKON_HOME=~/Envs
+mkdir -p $WORKON_HOME
+source /usr/local/bin/virtualenvwrapper.sh
+
+# Microchip
+export PATH="$PATH:/opt/microchip/xc8/v1.44/bin"
+
+# Rust
+export PATH="$HOME/.cargo/bin:$PATH"
+
+# Direnv
+eval "$(direnv hook bash)"
+