###################################################################### # mako's zshrc file, v0.1 # # ###################################################################### # next lets set some enviromental/shell pref stuff up # setopt NOHUP #setopt NOTIFY #setopt NO_FLOW_CONTROL setopt APPEND_HISTORY # setopt AUTO_LIST # these two should be turned off # setopt AUTO_REMOVE_SLASH # setopt AUTO_RESUME # tries to resume command of same name unsetopt BG_NICE # do NOT nice bg commands setopt CORRECT # command CORRECTION setopt EXTENDED_HISTORY # puts timestamps in the history # setopt HASH_CMDS # turns on hashing setopt HIST_ALLOW_CLOBBER setopt HIST_REDUCE_BLANKS setopt INC_APPEND_HISTORY SHARE_HISTORY setopt ALL_EXPORT setopt MENUCOMPLETE # Set/unset shell options setopt notify globdots correct pushdtohome cdablevars autolist setopt correctall autocd recexact longlistjobs setopt autoresume histignoredups pushdsilent noclobber setopt autopushd pushdminus extendedglob rcquotes mailwarning unsetopt bgnice autoparamslash # Autoload zsh modules when they are referenced zmodload -a zsh/stat stat zmodload -a zsh/zpty zpty zmodload -a zsh/zprof zprof # mapfile : parameter already exists #zmodload -ap zsh/mapfile mapfile # For MAC: # ioreg -n AppleSmartBattery -r | awk '$1~/Capacity/{c[$1]=$3} END{OFMT="%.2f%%"; max=c["\"MaxCapacity\""]; print (max>0? 100*c["\"CurrentCapacity\""]/max: "?")}' # ioreg -n AppleSmartBattery -r | awk '$1~/ExternalConnected/{gsub("Yes", "+");gsub("No", "%"); print substr($0, length, 1)}' function battery_charge { b_now=$(cat /sys/class/power_supply/BAT0/energy_now) b_full=$(cat /sys/class/power_supply/BAT0/energy_full) b_status=$(cat /sys/class/power_supply/BAT0/status) # I am displaying 10 chars -> charge is in {0..9} charge=$(expr $(expr $b_now \* 10) / $b_full) # choose the color according the charge or if we are charging then always green if [[ charge -gt 5 || "Charging" == $b_status ]]; then echo -n "%{$fg[green]%}" elif [[ charge -gt 2 ]]; then echo -n "%{$fg[yellow]%}" else echo -n "%{$fg[red]%}" fi # display charge * '▸' and (10 - charge) * '▹' i=0; while [[ i -lt $charge ]] do i=$(expr $i + 1) echo -n "▸" done while [[ i -lt 10 ]] do i=$(expr $i + 1) echo -n "▹" done # display a plus if we are charging if [[ "Charging" == $b_status ]]; then echo -n "%{$fg_bold[green]%} +" fi # and reset the color echo -n "%{$reset_color%} " } function battery_zsh { BATDIR="/sys/class/power_supply/BAT0" max=`cat $BATDIR/energy_full` current=`cat $BATDIR/energy_now` percent=$(( 100 * $current / $max )) color_green="%{%}" color_yellow="%{%}" color_red="%{%}" color_reset="%{%}" if [ $percent -ge 80 ] ; then color=$color_green; elif [ $percent -ge 40 ] ; then color=$color_yellow; else color=$color_red; fi echo $color$percent%%$color_reset } PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin/:$PATH" TZ="America/Sao_Paulo" HISTFILE=$HOME/.zhistory HISTSIZE=1000 SAVEHIST=1000 HOSTNAME="`hostname`" PAGER='less' EDITOR='vim' autoload colors zsh/terminfo if [[ "$terminfo[colors]" -ge 8 ]]; then colors fi for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' (( count = $count + 1 )) done PR_NO_COLOR="%{$terminfo[sgr0]%}" PS1="[$PR_MAGENTA%n$PR_NO_COLOR@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]%(!.#.$) " RPS1="$(battery_charge) $(battery_zsh) $PR_MAGENTA(%D{%d-%m-%y %H:%M})$PR_NO_COLOR" #LANGUAGE= LC_ALL='pt_BR.UTF-8' LANG='pt_BR.UTF-8' LC_CTYPE=C DISPLAY=:0 if [ $SSH_TTY ]; then MUTT_EDITOR=vim else MUTT_EDITOR=emacsclient.emacs-snapshot fi unsetopt ALL_EXPORT # # -------------------------------------------------------------------- # # aliases # # -------------------------------------------------------------------- alias slrn="slrn -n" alias man='LC_ALL=PT-BR LANG=PT-BR man' alias f=finger alias ll='ls -ashpGl --color ' alias ls='ls -G --color ' alias offlineimap-tty='offlineimap -u TTY.TTYUI' alias hnb-partecs='hnb $HOME/partecs/partecs-hnb.xml' alias rest2html-css='rst2html --embed-stylesheet --stylesheet-path=/usr/share/python-docutils/s5_html/themes/default/print.css' alias dmesg="sudo dmesg" #if [[ $HOSTNAME == "kamna" ]] { # alias emacs='emacs -l ~/.emacs.kamna' #} # alias =clear stty erase ^H &>/dev/null bindkey "^[[3~" delete-char #chpwd() { # [[ -t 1 ]] || return # case $TERM in # sun-cmd) print -Pn "\e]l%~\e\\" # ;; # *xterm*|screen|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a" # ;; # esac #} #chpwd autoload -U compinit compinit bindkey '^r' history-incremental-search-backward bindkey "^[[5~" up-line-or-history bindkey "^[[6~" down-line-or-history bindkey "^[[H" beginning-of-line bindkey "^[[1~" beginning-of-line bindkey "^[[F" end-of-line bindkey "^[[4~" end-of-line bindkey ' ' magic-space # also do history expansion on space bindkey '^I' complete-word # complete on tab, leave expansion to _expand zstyle ':completion::complete:*' use-cache on zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s' zstyle ':completion:*' menu select=1 _complete _ignored _approximate zstyle -e ':completion:*:approximate:*' max-errors \ 'reply=( $(( ($#PREFIX+$#SUFFIX)/2 )) numeric )' zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' zstyle ':completion:*:processes' command 'ps -axw' zstyle ':completion:*:processes-names' command 'ps -awxho command' # Completion Styles zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' # list of completers to use zstyle ':completion:*::::' completer _expand _complete _ignored _approximate # allow one error for every three characters typed in approximate completer zstyle -e ':completion:*:approximate:*' max-errors \ 'reply=( $(( ($#PREFIX+$#SUFFIX)/2 )) numeric )' # insert all expansions for expand completer zstyle ':completion:*:expand:*' tag-order all-expansions # #NEW completion: # 1. All /etc/hosts hostnames are in autocomplete # 2. If you have a comment in /etc/hosts like #%foobar.domain, # then foobar.domain will show up in autocomplete! zstyle ':completion:*' hosts $(awk '/^[^#]/ {print $2 $3" "$4" "$5}' /etc/hosts | grep -v ip6- && grep "^#%" /etc/hosts | awk -F% '{print $2}') # formatting and messages zstyle ':completion:*' verbose yes zstyle ':completion:*:descriptions' format '%B%d%b' zstyle ':completion:*:messages' format '%d' zstyle ':completion:*:warnings' format 'No matches for: %d' zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' zstyle ':completion:*' group-name '' # match uppercase from lowercase zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # offer indexes before parameters in subscripts zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters # command for process lists, the local web server details and host completion #zstyle ':completion:*:processes' command 'ps -o pid,s,nice,stime,args' #zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html' zstyle '*' hosts $hosts # Filename suffixes to ignore during completion (except after rm command) zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \ '*?.old' '*?.pro' # the same for old style completion #fignore=(.o .c~ .old .pro) # ignore completion functions (until the _ignored completer) zstyle ':completion:*:functions' ignored-patterns '_*' zstyle ':completion:*:scp:*' tag-order \ files users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *' zstyle ':completion:*:scp:*' group-order \ files all-files users hosts-domain hosts-host hosts-ipaddr zstyle ':completion:*:ssh:*' tag-order \ users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *' zstyle ':completion:*:ssh:*' group-order \ hosts-domain hosts-host users hosts-ipaddr zstyle '*' single-ignored show source $HOME/.bash_aliases source $HOME/.profile PATH="$HOME/bin:$HOME/.local/bin:$HOME/.cabal/bin:$PATH" #source /home/renato/WebApp/silvrosa.llm-node.google-api.sh alias batt='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|to\ empty|percentage"' # Instalacao das Funcoes ZZ (www.funcoeszz.net) # script export ZZPATH=/usr/local/bin/funcoeszz # pasta zz/ export ZZDIR= source /home/renato/.zzzshrc