This is the first push to this repo with my dotfiles
[dotfilesold/.git] / .bashrc
1 # ~/.bashrc: executed by bash(1) for non-login shells.
2 # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3 # for examples
4 export EDITOR=vim;
5 export VISUAL=vim; #Nano is the main editor
6 # If not running interactively, don't do anything
7 case $- in
8     *i*) ;;
9       *) return;;
10 esac
11
12 # don't put duplicate lines or lines starting with space in the history.
13 # See bash(1) for more options
14 HISTCONTROL=ignoreboth
15
16 # append to the history file, don't overwrite it
17 shopt -s histappend
18
19 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
20 HISTSIZE=
21 HISTFILESIZE=
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.
25 shopt -s checkwinsize
26
27 # If set, the pattern "**" used in a pathname expansion context will
28 # match all files and zero or more directories and subdirectories.
29 #shopt -s globstar
30
31 # make less more friendly for non-text input files, see lesspipe(1)
32 [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
33
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)
37 fi
38
39 # set a fancy prompt (non-color, unless we know we "want" color)
40 case "$TERM" in
41     xterm-color|*-256color) color_prompt=yes;;
42 esac
43
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
48
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.)
54         color_prompt=yes
55     else
56         color_prompt=
57     fi
58 fi
59
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\]\$ '
62 else
63     PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
64 fi
65 unset color_prompt force_color_prompt
66
67 # If this is an xterm set the title to user@host:dir
68 case "$TERM" in
69 xterm*|rxvt*|alacritty)
70     PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
71     ;;
72 *)
73     ;;
74 esac
75
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'
82
83     alias grep='grep --color=auto'
84     alias fgrep='fgrep --color=auto'
85     alias egrep='egrep --color=auto'
86 fi
87
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'
90
91 # some more ls aliases
92 alias ll='ls -alF'
93 alias la='ls -A'
94 alias l='ls -CF'
95
96 # Add an "alert" alias for long running commands.  Use like so:
97 #   sleep 10; alert
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$//'\'')"'
99
100 # Alias definitions.
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.
104
105 if [ -f ~/.bash_aliases ]; then
106     . ~/.bash_aliases
107 fi
108
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
117   fi
118 fi
119
120 # transform md anotations into PDF
121 mdpdf () { pandoc "$1".md -t beamer -o "$1".pdf ;}
122 #byebye for shutdown
123 alias byebye='shutdown now'
124 # Get all metadata
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
129 shopt -s autocd
130 # examples from tldr
131 alias example='tldr'
132 # wifi available
133 alias wifi='nmcli d wifi'
134 # personalized ps1
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'
137 #figlet de mi nombre
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';
142
143
144
145
146
147
148
149
150 #colorman
151 if $_isxrunning; then
152   export PAGER=less
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
160 fi
161 #top10 commands
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
164 up() {
165   local d=""
166   limit=$1
167   for ((i=1 ; i <= limit ; i++)); do
168     d=$d/..
169   done
170   d=$(echo $d | sed 's/^\///')
171   if [[ -z "$d" ]]; then
172     d=..
173   fi
174   cd $d
175 }
176 # ARCHIVE EXTRACTOR {{{
177 extract() {
178   clrstart="\033[1;34m"  #color codes
179   clrend="\033[0m"
180
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
184   fi
185
186   if [[ ! -e "$1" ]]; then
187     echo -e "${clrstart}File does not exist!${clrend}"
188     exit 2 #file not found
189   fi
190
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}"
195     read response
196     #echo -e "\n"
197     if [[ $response == y || $response == Y ]]; then
198       mkdir -p "$2"
199       if [ $? -eq 0 ]; then
200         DESTDIR="$2"
201       else
202         exit 6 #Write perms error
203       fi
204     else
205       echo -e "${clrstart}Closing.${clrend}"; exit 3 # n/wrong response
206     fi
207   else
208     DESTDIR="$2"
209   fi
210
211   if [[ ! -z "$3" ]]; then
212     if [[ "$3" != "v" ]]; then
213       echo -e "${clrstart}Wrong argument $3 !${clrend}"
214       exit 4 #wrong arg 3
215     fi
216   fi
217
218   filename=`basename "$1"`
219
220   #echo "${filename##*.}" debug
221
222   case "${filename##*.}" in
223     tar)
224       echo -e "${clrstart}Extracting $1 to $DESTDIR: (uncompressed tar)${clrend}"
225       tar x${3}f "$1" -C "$DESTDIR"
226       ;;
227     gz)
228       echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
229       tar x${3}fz "$1" -C "$DESTDIR"
230       ;;
231     tgz)
232       echo -e "${clrstart}Extracting $1 to $DESTDIR: (gip compressed tar)${clrend}"
233       tar x${3}fz "$1" -C "$DESTDIR"
234       ;;
235     xz)
236       echo -e "${clrstart}Extracting  $1 to $DESTDIR: (gip compressed tar)${clrend}"
237       tar x${3}f -J "$1" -C "$DESTDIR"
238       ;;
239     bz2)
240       echo -e "${clrstart}Extracting $1 to $DESTDIR: (bzip compressed tar)${clrend}"
241       tar x${3}fj "$1" -C "$DESTDIR"
242       ;;
243     zip)
244       echo -e "${clrstart}Extracting $1 to $DESTDIR: (zipp compressed file)${clrend}"
245       unzip "$1" -d "$DESTDIR"
246       ;;
247     rar)
248       echo -e "${clrstart}Extracting $1 to $DESTDIR: (rar compressed file)${clrend}"
249       unrar x "$1" "$DESTDIR"
250       ;;
251     7z)
252       echo -e  "${clrstart}Extracting $1 to $DESTDIR: (7zip compressed file)${clrend}"
253       7za e "$1" -o"$DESTDIR"
254       ;;
255     *)
256       echo -e "${clrstart}Unknown archieve format!"
257       exit 5
258       ;;
259   esac
260 }
261 #}}}
262
263
264
265 # REMIND ME, ITS IMPORTANT! {{{
266 # usage: remindme <time> <text>
267 # e.g.: remindme 10m "omg, the pizza"
268 remindme() {
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
274   fi
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
280   fi
281   if  [[ "$#" == 2 ]]; then
282     sleep $1 && notify-send -t 15000 "$2" & echo 'Reminder set'
283   fi
284   }
285
286 #}}}
287
288 ### add to xterm
289 xrdb -merge ~/.Xresources >> /dev/null 2>&1