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)"
34 # set variable identifying the chroot you work in (used in the prompt below)
35 if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
36 debian_chroot=$(cat /etc/debian_chroot)
39 # set a fancy prompt (non-color, unless we know we "want" color)
41 xterm-color|*-256color) color_prompt=yes;;
44 # uncomment for a colored prompt, if the terminal has the capability; turned
45 # off by default to not distract the user: the focus in a terminal window
46 # should be on the output of commands, not on the prompt
47 #force_color_prompt=yes
49 if [ -n "$force_color_prompt" ]; then
50 if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
51 # We have color support; assume it's compliant with Ecma-48
52 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
53 # a case would tend to support setf rather than setaf.)
60 if [ "$color_prompt" = yes ]; then
61 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
63 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
65 unset color_prompt force_color_prompt
67 # If this is an xterm set the title to user@host:dir
69 xterm*|rxvt*|alacritty)
70 PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
76 # enable color support of ls and also add handy aliases
77 if [ -x /usr/bin/dircolors ]; then
78 test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
79 alias ls='ls -hN --color=auto --group-directories-first'
80 #alias dir='dir --color=auto'
81 #alias vdir='vdir --color=auto'
83 alias grep='grep --color=auto'
84 alias fgrep='fgrep --color=auto'
85 alias egrep='egrep --color=auto'
88 # colored GCC warnings and errors
89 #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
91 # some more ls aliases
96 # Add an "alert" alias for long running commands. Use like so:
98 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$//'\'')"'
101 # You may want to put all your additions into a separate file like
102 # ~/.bash_aliases, instead of adding them here directly.
103 # See /usr/share/doc/bash-doc/examples in the bash-doc package.
105 if [ -f ~/.bash_aliases ]; then
109 # enable programmable completion features (you don't need to enable
110 # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
111 # sources /etc/bash.bashrc).
112 if ! shopt -oq posix; then
113 if [ -f /usr/share/bash-completion/bash_completion ]; then
114 . /usr/share/bash-completion/bash_completion
115 elif [ -f /etc/bash_completion ]; then
116 . /etc/bash_completion
120 # transform md anotations into PDF
121 mdpdf () { pandoc "$1".md -t beamer -o "$1".pdf ;}
123 alias byebye='shutdown now'
125 metadata () { echo "Salida del comando stat" ; stat "$1" ; echo "Salida del comando ls -lisan" ; ls -lisan "$1" ; echo "salida del comando exiftool" ; exiftool "$1" ;}
126 # use highlight for colored cat
127 alias ccat='highlight --out-format=ansi'
128 # activates the autocd mode
133 alias wifi='nmcli d wifi'
135 export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$"
136 alias autowal='wal --iterative -i /usr/share/backgrounds/ > /dev/null'
138 #whoami | figlet Josuer08 | lolcat -F 0.25;
139 whoami | figlet Josuer08 | lolcat;
140 # agragando el comando gitdotfiles para manejar los dotfiles
141 alias gitdotfiles='/usr/bin/git --git-dir=$HOME/Documents/dotfiles/ --work-tree=$HOME';
151 if $_isxrunning; then
153 export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
154 export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
155 export LESS_TERMCAP_me=$'\E[0m' # end mode
156 export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
157 export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
158 export LESS_TERMCAP_ue=$'\E[0m' # end underline
159 export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
162 top10() { history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head; }
163 # goes up by the number of directories
167 for ((i=1 ; i <= limit ; i++)); do
170 d=$(echo $d | sed 's/^\///')
171 if [[ -z "$d" ]]; then
176 # ARCHIVE EXTRACTOR {{{
178 clrstart="\033[1;34m" #color codes
181 if [[ "$#" -lt 1 ]]; then
182 echo -e "${clrstart}Pass a filename. Optionally a destination folder. You can also append a v for verbose output.${clrend}"
183 exit 1 #not enough args
186 if [[ ! -e "$1" ]]; then
187 echo -e "${clrstart}File does not exist!${clrend}"
188 exit 2 #file not found
191 if [[ -z "$2" ]]; then
192 DESTDIR="." #set destdir to current dir
193 elif [[ ! -d "$2" ]]; then
194 echo -e -n "${clrstart}Destination folder doesn't exist or isnt a directory. Create? (y/n): ${clrend}"
197 if [[ $response == y || $response == Y ]]; then
199 if [ $? -eq 0 ]; then
202 exit 6 #Write perms error
205 echo -e "${clrstart}Closing.${clrend}"; exit 3 # n/wrong response
211 if [[ ! -z "$3" ]]; then
212 if [[ "$3" != "v" ]]; then
213 echo -e "${clrstart}Wrong argument $3 !${clrend}"
218 filename=`basename "$1"`
220 #echo "${filename##*.}" debug
222 case "${filename##*.}" in
224 echo -e "${clrstart}Extracting $1 to $DESTDIR: (uncompressed tar)${clrend}"
225 tar x${3}f "$1" -C "$DESTDIR"
228 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
229 tar x${3}fz "$1" -C "$DESTDIR"
232 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
233 tar x${3}fz "$1" -C "$DESTDIR"
236 echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
237 tar x${3}f -J "$1" -C "$DESTDIR"
240 echo -e "${clrstart}Extracting $1 to $DESTDIR: (bzip compressed tar)${clrend}"
241 tar x${3}fj "$1" -C "$DESTDIR"
244 echo -e "${clrstart}Extracting $1 to $DESTDIR: (zipp compressed file)${clrend}"
245 unzip "$1" -d "$DESTDIR"
248 echo -e "${clrstart}Extracting $1 to $DESTDIR: (rar compressed file)${clrend}"
249 unrar x "$1" "$DESTDIR"
252 echo -e "${clrstart}Extracting $1 to $DESTDIR: (7zip compressed file)${clrend}"
253 7za e "$1" -o"$DESTDIR"
256 echo -e "${clrstart}Unknown archieve format!"
265 # REMIND ME, ITS IMPORTANT! {{{
266 # usage: remindme <time> <text>
267 # e.g.: remindme 10m "omg, the pizza"
269 if [[ "$#" -lt 2 ]]; then
270 echo -e "Usage: remindme [time] '[message]'"
271 echo -e "Example: remindme 50s 'check mail'"
272 echo -e "Example: remindme 10m 'go to class'"
273 #exit 0 #not enough args
275 if [[ "$#" -gt 2 ]]; then
276 echo -e "Usage: remindme [time] '[message]'"
277 echo -e "Example: remindme 50s 'check mail'"
278 echo -e "Example: remindme 10m 'go to class'"
279 #exit 0 #more than enough args
281 if [[ "$#" == 2 ]]; then
282 sleep $1 && notify-send -t 15000 "$2" & echo 'Reminder set'
289 xrdb -merge ~/.Xresources >> /dev/null 2>&1