Update .bashrc
[dotfiles/.git] / .bashrc
diff --git a/.bashrc b/.bashrc
index 1ed736991bc0258c25cae4c7504a4f0337ed523b..f84374fd7919460299ab9d9eeb02b81e026afa80 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -1,82 +1,52 @@
 # ~/.bashrc: executed by bash(1) for non-login shells.
-# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
-# for examples
-export EDITOR=vim;
-export VISUAL=vim; #Nano is the main editor
 # If not running interactively, don't do anything
 case $- in
     *i*) ;;
       *) return;;
 esac
+#Import all of the subfiles for .bashrc
 
-# 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=
-HISTFILESIZE=
-export HISTIGNORE='&:ls:ll:la:cd:exit:clear:history'
-# 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)"
-
-
-# If this is an xterm set the title to user@host:dir
-#case "$TERM" in
-#xterm*|rxvt*|alacritty)
-    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
-    #;;
-#*)
-    #;;
-#esac
+if [ -f ~/.config/bashrc/alias ];
+then
+    . ~/.config/bashrc/alias
+fi
 
-# 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 -hN --color=auto --group-directories-first'
-    #alias dir='dir --color=auto'
-    #alias vdir='vdir --color=auto'
+if [ -f ~/.config/bashrc/promts ];
+then
+    . ~/.config/bashrc/promts
+fi
 
-    alias grep='grep --color=auto'
-    alias fgrep='fgrep --color=auto'
-    alias egrep='egrep --color=auto'
+if [ -f ~/.config/bashrc/titles ];
+then
+    . ~/.config/bashrc/titles
 fi
 
-# colored GCC warnings and errors
-#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+if [ -f ~/.config/bashrc/exports ];
+then
+    . ~/.config/bashrc/exports
+fi
 
-# some more ls aliases
-alias ll='ls -alF'
-alias la='ls -A'
-alias l='ls -CF'
+if [ -f ~/.config/bashrc/functions ];
+then
+    . ~/.config/bashrc/functions
+fi
 
-# 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 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
+#########################################AUTOCOMPLETION#####################
+# sources /etc/bash.bashrc).
+if [ -f /usr/share/fzf/completion.bash ];
+then
+source /usr/share/fzf/completion.bash
 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 /usr/share/fzf/completion.bash ];
+then
+source /usr/share/fzf/key-bindings.bash
+fi
+# autocomplete for sudo man and wich
+complete -cf sudo man wich;
+#For arch
 if ! shopt -oq posix; then
   if [ -f /usr/share/bash-completion/bash_completion ]; then
     . /usr/share/bash-completion/bash_completion
@@ -84,248 +54,39 @@ if ! shopt -oq posix; then
     . /etc/bash_completion
   fi
 fi
-# vi mode in the shell
-set -o vi
-# autocomplete for sudo man and wich
-complete -cf sudo man wich;
-# transform md anotations into PDF
-mdpdf () { pandoc "$1".md -t beamer -o "$1".pdf ;}
-#byebye for shutdown
-alias byebye='shutdown now'
-# Get all metadata
-metadata () { echo "Salida del comando stat" ; stat "$1" ; echo "Salida del comando ls -lisan" ; ls -lisan "$1" ; echo "salida del comando exiftool" ; exiftool "$1" ;}
-# use highlight for colored cat
-alias ccat='highlight --out-format=ansi'
-# activates the autocd mode
-shopt -s autocd
-# wifi available
-alias wifi='nmcli d wifi'
-
-# personalized ps1 #################################################################################
-# .bashrc (or .bash_profile)
 
-# declares an array with the emojis we want to support
-EMOJIS=(👻 💀 👽 👾 🎃 😎 🧠 🦘 🦍 🎻)
-
-# selects a random element from the EMOJIS set
-SELECTED_EMOJI=${EMOJIS[$RANDOM % ${#EMOJIS[@]}]};
-# declare the terminal prompt format
-#export PS1='${SELECTED_EMOJI}  [\u@\h \W]$ '
-#export PS1="\e[1;90m[\$?]\e[m\e[1;92m\[$(tput bold)\]\u@\h\e[m\[$(tput sgr0)\]:\e[0;36m\w\e[m\n\\$";
-export PS1="\e[1;90m[\$?]\e[m\e[1;92m\[$(tput bold)\]\u@\h\e[m\[$(tput sgr0)\]:\e[0;36m\w\e[m\n${SELECTED_EMOJI}";
-
-
-####################################################################################################
-
-cat ~/.cache/wal/sequences & #This imports the theme from the last pywal
-
-
-#export PS1="\[\033[38;5;247m\][\$?]\[$(tput sgr0)\]\[$(tput bold)\]\[\033[38;5;40m\]\u@\h\[$(tput sgr0)\]:\[$(tput sgr0)\]\[\033[38;5;45m\]\w\[$(tput sgr0)\]\n\\$\[$(tput sgr0)\]"
-
-alias autowal='wal --iterative -i /usr/share/backgrounds/ > /dev/null'
-#figlet de mi nombre
-whoami | figlet Josuer08 | lolcat -F 0.25;
-#whoami | figlet Josuer08 | lolcat;
-# agragando el comando gitdotfiles para manejar los dotfiles
-alias gitdotfiles='/usr/bin/git --git-dir=$HOME/Documents/dotfiles/ --work-tree=$HOME';
-
-function cdls() {
-    DIR="$*";
-        # if no DIR given, go home
-        if [ $# -lt 1 ]; then
-                DIR=$HOME;
-    fi;
-    builtin cd "${DIR}" && \
-    # use your preferred ls command
-        ls -F --color=auto
-}
+###########################################################################
 
+####################################HISTORY MANAGEMENT#####################
+# don't put duplicate lines or lines starting with space in the history.
+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=
+HISTFILESIZE=
+export HISTIGNORE='&:ls:ll:la:cd:exit:clear:history'
+###########################################################################
 
-#vicat is a color and line number cat
 
-function vicat() {
-  ccat $@ | nl;
 
-}
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
 
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+# vi mode in the shell
+set -o vi
 
+#####adding the agent forwarding stuff
+if [ -z "$SSH_AUTH_SOCK" ] ; then
+    eval `ssh-agent` > /dev/null 2>&1;
+    ssh-add > /dev/null 2>&1;
 
-#colorman
-if $_isxrunning; then
-  export PAGER=less
-  export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
-  export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
-  export LESS_TERMCAP_me=$'\E[0m'           # end mode
-  export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
-  export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
-  export LESS_TERMCAP_ue=$'\E[0m'           # end underline
-  export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
 fi
-#top10 commands
-top10() { history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head; }
-# goes up by the number of directories
-up() {
-  local d=""
-  limit=$1
-  for ((i=1 ; i <= limit ; i++)); do
-    d=$d/..
-  done
-  d=$(echo $d | sed 's/^\///')
-  if [[ -z "$d" ]]; then
-    d=..
-  fi
-  cd $d
-}
-# ARCHIVE EXTRACTOR {{{
-extract() {
-  clrstart="\033[1;34m"  #color codes
-  clrend="\033[0m"
-
-  if [[ "$#" -lt 1 ]]; then
-    echo -e "${clrstart}Pass a filename. Optionally a destination folder. You can also append a v for verbose output.${clrend}"
-    exit 1 #not enough args
-  fi
-
-  if [[ ! -e "$1" ]]; then
-    echo -e "${clrstart}File does not exist!${clrend}"
-    exit 2 #file not found
-  fi
-
-  if [[ -z "$2" ]]; then
-    DESTDIR="." #set destdir to current dir
-  elif [[ ! -d "$2" ]]; then
-    echo -e -n "${clrstart}Destination folder doesn't exist or isnt a directory. Create? (y/n): ${clrend}"
-    read response
-    #echo -e "\n"
-    if [[ $response == y || $response == Y ]]; then
-      mkdir -p "$2"
-      if [ $? -eq 0 ]; then
-        DESTDIR="$2"
-      else
-        exit 6 #Write perms error
-      fi
-    else
-      echo -e "${clrstart}Closing.${clrend}"; exit 3 # n/wrong response
-    fi
-  else
-    DESTDIR="$2"
-  fi
-
-  if [[ ! -z "$3" ]]; then
-    if [[ "$3" != "v" ]]; then
-      echo -e "${clrstart}Wrong argument $3 !${clrend}"
-      exit 4 #wrong arg 3
-    fi
-  fi
-
-  filename=`basename "$1"`
-
-  #echo "${filename##*.}" debug
 
-  case "${filename##*.}" in
-    tar)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (uncompressed tar)${clrend}"
-      tar x${3}f "$1" -C "$DESTDIR"
-      ;;
-    gz)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
-      tar x${3}fz "$1" -C "$DESTDIR"
-      ;;
-    tgz)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
-      tar x${3}fz "$1" -C "$DESTDIR"
-      ;;
-    xz)
-      echo -e "${clrstart}Extracting  $1 to $DESTDIR: (gip compressed tar)${clrend}"
-      tar x${3}f -J "$1" -C "$DESTDIR"
-      ;;
-    bz2)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (bzip compressed tar)${clrend}"
-      tar x${3}fj "$1" -C "$DESTDIR"
-      ;;
-    zip)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (zipp compressed file)${clrend}"
-      unzip "$1" -d "$DESTDIR"
-      ;;
-    rar)
-      echo -e "${clrstart}Extracting $1 to $DESTDIR: (rar compressed file)${clrend}"
-      unrar x "$1" "$DESTDIR"
-      ;;
-    7z)
-      echo -e  "${clrstart}Extracting $1 to $DESTDIR: (7zip compressed file)${clrend}"
-      7za e "$1" -o"$DESTDIR"
-      ;;
-    *)
-      echo -e "${clrstart}Unknown archieve format!"
-      exit 5
-      ;;
-  esac
-}
-#}}}
 
-
-
-# REMIND ME, ITS IMPORTANT! {{{
-# usage: remindme <time> <text>
-# e.g.: remindme 10m "omg, the pizza"
-remindme() {
-  if [[ "$#" -lt 2 ]]; then
-    echo -e "Usage: remindme [time] '[message]'"
-    echo -e "Example: remindme 50s 'check mail'"
-    echo -e "Example: remindme 10m 'go to class'"
-    #exit 0 #not enough args
-  fi
-  if [[ "$#" -gt 2 ]]; then
-    echo -e "Usage: remindme [time] '[message]'"
-    echo -e "Example: remindme 50s 'check mail'"
-    echo -e "Example: remindme 10m 'go to class'"
-    #exit 0 #more than enough args
-  fi
-  if  [[ "$#" == 2 ]]; then
-    sleep $1 && notify-send -t 15000 "$2" & echo 'Reminder set'
-  fi
-  }
-
-#}}}
-export PATH="$HOME/.local/bin:$PATH";
-export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH";
-
-
-
-
-#For arch
-source /usr/share/bash-completion/bash_completion; #this is just for better completion
+source /usr/share/bash-completion/bash_completion
 bind 'set show-all-if-ambiguous on';
 bind 'TAB:menu-complete';
-
-# HSTR configuration - add this to ~/.bashrc
-alias hh=hstr                    # hh to be alias for hstr
-export HSTR_CONFIG=hicolor       # get more colors
-shopt -s histappend              # append new history items to .bash_history
-export HISTCONTROL=ignorespace   # leading space hides commands from history
-export HISTFILESIZE=10000        # increase history file size (default is 500)
-export HISTSIZE=${HISTFILESIZE}  # increase history size (default is 500)
-# ensure synchronization between bash memory and history file
-export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"
-# if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc)
-if [[ $- =~ .*i.* ]]; then bind '"\C-r": " hstr -- \C-j"'; fi
-# if this is interactive shell, then bind 'kill last command' to Ctrl-x k
-if [[ $- =~ .*i.* ]]; then bind '"\C-xk": " hstr -k \C-j"'; fi
-# if this is an interactive shell, then bind ranger to Ctrl-f 
-if [[ $- =~ .*i.* ]]; then bind '"\C-f": " ranger \C-j"'; fi
-
-
-
-
-
-#############OK NEXT TIME YOU SEE THIS REMEMBER TO ORGANIZE IN MULTIPLE FILES AND CLEAN
-
-
-
-
-
-## HERE I'LL EXPORT SOME STUFF TO CLEAN MY HOME DIR
-export GEM_HOME="$XDG_DATA_HOME"/gem;
-export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem;
-export KDEHOME="$XDG_CONFIG_HOME"/kde;
-export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer;