1 # ~/.bashrc: executed by bash(1) for non-login shells.
2 # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
5 export VISUAL=vim; #Nano is the main editor
6 # If not running interactively, don't do anything
12 # don't put duplicate lines or lines starting with space in the history.
13 # See bash(1) for more options
14 HISTCONTROL=ignoreboth
16 # append to the history file, don't overwrite it
19 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
22 export HISTIGNORE='&:ls:ll:la:cd:exit:clear:history'
23 # check the window size after each command and, if necessary,
24 # update the values of LINES and COLUMNS.
27 # If set, the pattern "**" used in a pathname expansion context will
28 # match all files and zero or more directories and subdirectories.
31 # make less more friendly for non-text input files, see lesspipe(1)
32 [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
35 # If this is an xterm set the title to user@host:dir
37 xterm*|rxvt*|alacritty)
38 PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
44 # enable color support of ls and also add handy aliases
45 if [ -x /usr/bin/dircolors ]; then
46 test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
47 alias ls='ls -hN --color=auto --group-directories-first'
48 #alias dir='dir --color=auto'
49 #alias vdir='vdir --color=auto'
51 alias grep='grep --color=auto'
52 alias fgrep='fgrep --color=auto'
53 alias egrep='egrep --color=auto'
56 # colored GCC warnings and errors
57 #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
59 # some more ls aliases
64 # Add an "alert" alias for long running commands. Use like so:
66 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$//'\'')"'
69 # You may want to put all your additions into a separate file like
70 # ~/.bash_aliases, instead of adding them here directly.
71 # See /usr/share/doc/bash-doc/examples in the bash-doc package.
73 if [ -f ~/.bash_aliases ]; then
77 # enable programmable completion features (you don't need to enable
78 # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
79 # sources /etc/bash.bashrc).
80 if ! shopt -oq posix; then
81 if [ -f /usr/share/bash-completion/bash_completion ]; then
82 . /usr/share/bash-completion/bash_completion
83 elif [ -f /etc/bash_completion ]; then
84 . /etc/bash_completion
87 # vi mode in the shell
89 # autocomplete for sudo man and wich
90 complete -cf sudo man wich;
91 # transform md anotations into PDF
92 mdpdf () { pandoc "$1".md -t beamer -o "$1".pdf ;}
94 alias byebye='shutdown now'
96 metadata () { echo "Salida del comando stat" ; stat "$1" ; echo "Salida del comando ls -lisan" ; ls -lisan "$1" ; echo "salida del comando exiftool" ; exiftool "$1" ;}
97 # use highlight for colored cat
98 alias ccat='highlight --out-format=ansi'
99 # activates the autocd mode
102 alias wifi='nmcli d wifi'
104 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)\]"
106 alias autowal='wal --iterative -i /usr/share/backgrounds/ > /dev/null'
108 whoami | figlet Josuer08 | lolcat -F 0.25;
109 #whoami | figlet Josuer08 | lolcat;
110 # agragando el comando gitdotfiles para manejar los dotfiles
111 alias gitdotfiles='/usr/bin/git --git-dir=$HOME/Documents/dotfiles/ --work-tree=$HOME';
115 # if no DIR given, go home
116 if [ $# -lt 1 ]; then
119 builtin cd "${DIR}" && \
120 # use your preferred ls command
125 #vicat is a color and line number cat
135 if $_isxrunning; then
137 export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
138 export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
139 export LESS_TERMCAP_me=$'\E[0m' # end mode
140 export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
141 export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
142 export LESS_TERMCAP_ue=$'\E[0m' # end underline
143 export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
146 top10() { history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head; }
147 # goes up by the number of directories
151 for ((i=1 ; i <= limit ; i++)); do
154 d=$(echo $d | sed 's/^\///')
155 if [[ -z "$d" ]]; then
160 # ARCHIVE EXTRACTOR {{{
162 clrstart="\033[1;34m" #color codes
165 if [[ "$#" -lt 1 ]]; then
166 echo -e "${clrstart}Pass a filename. Optionally a destination folder. You can also append a v for verbose output.${clrend}"
167 exit 1 #not enough args
170 if [[ ! -e "$1" ]]; then
171 echo -e "${clrstart}File does not exist!${clrend}"
172 exit 2 #file not found
175 if [[ -z "$2" ]]; then
176 DESTDIR="." #set destdir to current dir
177 elif [[ ! -d "$2" ]]; then
178 echo -e -n "${clrstart}Destination folder doesn't exist or isnt a directory. Create? (y/n): ${clrend}"
181 if [[ $response == y || $response == Y ]]; then
183 if [ $? -eq 0 ]; then
186 exit 6 #Write perms error
189 echo -e "${clrstart}Closing.${clrend}"; exit 3 # n/wrong response
195 if [[ ! -z "$3" ]]; then
196 if [[ "$3" != "v" ]]; then
197 echo -e "${clrstart}Wrong argument $3 !${clrend}"
202 filename=`basename "$1"`
204 #echo "${filename##*.}" debug
206 case "${filename##*.}" in
208 echo -e "${clrstart}Extracting $1 to $DESTDIR: (uncompressed tar)${clrend}"
209 tar x${3}f "$1" -C "$DESTDIR"
212 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
213 tar x${3}fz "$1" -C "$DESTDIR"
216 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
217 tar x${3}fz "$1" -C "$DESTDIR"
220 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
221 tar x${3}f -J "$1" -C "$DESTDIR"
224 echo -e "${clrstart}Extracting $1 to $DESTDIR: (bzip compressed tar)${clrend}"
225 tar x${3}fj "$1" -C "$DESTDIR"
228 echo -e "${clrstart}Extracting $1 to $DESTDIR: (zipp compressed file)${clrend}"
229 unzip "$1" -d "$DESTDIR"
232 echo -e "${clrstart}Extracting $1 to $DESTDIR: (rar compressed file)${clrend}"
233 unrar x "$1" "$DESTDIR"
236 echo -e "${clrstart}Extracting $1 to $DESTDIR: (7zip compressed file)${clrend}"
237 7za e "$1" -o"$DESTDIR"
240 echo -e "${clrstart}Unknown archieve format!"
249 # REMIND ME, ITS IMPORTANT! {{{
250 # usage: remindme <time> <text>
251 # e.g.: remindme 10m "omg, the pizza"
253 if [[ "$#" -lt 2 ]]; then
254 echo -e "Usage: remindme [time] '[message]'"
255 echo -e "Example: remindme 50s 'check mail'"
256 echo -e "Example: remindme 10m 'go to class'"
257 #exit 0 #not enough args
259 if [[ "$#" -gt 2 ]]; then
260 echo -e "Usage: remindme [time] '[message]'"
261 echo -e "Example: remindme 50s 'check mail'"
262 echo -e "Example: remindme 10m 'go to class'"
263 #exit 0 #more than enough args
265 if [[ "$#" == 2 ]]; then
266 sleep $1 && notify-send -t 15000 "$2" & echo 'Reminder set'
271 export PATH="$HOME/.local/bin:$PATH";
272 export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH";
278 source /usr/share/bash-completion/bash_completion; #this is just for better completion
279 bind 'set show-all-if-ambiguous on';
280 bind 'TAB:menu-complete';