# ~/.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=nvim; #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
. /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';
-edit () { du -a -L "$1" | awk '{print $2}' | fzf | xargs -r "$VISUAL" ;}
-# 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;
-
-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';
-source /usr/share/fzf/completion.bash
-source /usr/share/fzf/key-bindings.bash
-pacget () { pacman -Slq | fzf --multi --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S ;}
-pacdel () { pacman -Qq | fzf --multi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns ;}
-#############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;