Initial commit
This commit is contained in:
commit
3a9ec570d9
4 changed files with 188 additions and 0 deletions
8
zshalias
Normal file
8
zshalias
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Global aliases
|
||||||
|
alias sudo='sudo '
|
||||||
|
alias ls='ls --color=always -al'
|
||||||
|
alias dirs='dirs -v'
|
||||||
|
alias mkdir='mkdir -p'
|
||||||
|
alias rsync='rsync --info=progress2'
|
||||||
|
|
||||||
|
source ~/.zshalias
|
6
zshenv
Normal file
6
zshenv
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Global exports
|
||||||
|
export VISUAL=nano
|
||||||
|
export EDITOR=nano
|
||||||
|
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||||
|
|
||||||
|
source ~/.zshenv
|
146
zshps
Normal file
146
zshps
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
# Prompt Shell builder
|
||||||
|
# [1] Connection security
|
||||||
|
# Connected on remote machine, via ssh (good).
|
||||||
|
if [ -n "${SSH_CONNECTION}" ]; then
|
||||||
|
CONNECTION_LEFT="%F{green}[%f"
|
||||||
|
CONNECTION_RIGHT="%F{green}]%f"
|
||||||
|
# Connected on remote machine, not via ssh (bad).
|
||||||
|
elif [ "${DISPLAY%%:0*}" != "" ]; then
|
||||||
|
CONNECTION_LEFT="%K{white}%F{red}[%f%k"
|
||||||
|
CONNECTION_RIGHT="%K{white}%F{red}]%f%k"
|
||||||
|
# Connected on local machine.
|
||||||
|
else
|
||||||
|
CONNECTION_LEFT="["
|
||||||
|
CONNECTION_RIGHT="]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# [2] User type
|
||||||
|
# Root
|
||||||
|
if [[ ${USER} = "root" ]]; then
|
||||||
|
USER_PS="%F{red}%n%f"
|
||||||
|
# Admin
|
||||||
|
elif groups | grep -qw prod; then
|
||||||
|
USER_PS="%F{yellow}%n%f"
|
||||||
|
# Normal
|
||||||
|
else
|
||||||
|
USER_PS="%B%F{black}%n%f%b"
|
||||||
|
fi
|
||||||
|
# [3] Random color "@"
|
||||||
|
function random_color() {
|
||||||
|
COLOR_DB=(black red green yellow blue magenta cyan white)
|
||||||
|
RANDOM_COLOR_NO=$(shuf -i 0-15 -n 1)
|
||||||
|
if [[ ${RANDOM_COLOR_NO} -le 7 ]]; then
|
||||||
|
RANDOM_AT="%F{$COLOR_DB[$RANDOM_COLOR_NO]}@%f"
|
||||||
|
else
|
||||||
|
RANDOM_COLOR_NO=$(( ${RANDOM_COLOR_NO} - 8 ))
|
||||||
|
RANDOM_AT="%B%F{$COLOR_DB[$RANDOM_COLOR_NO]}@%f%b"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# [4] System load indicator
|
||||||
|
# Returns usage (script inspired by Paul Colby's cpu.sh script)
|
||||||
|
function check_load() {
|
||||||
|
while true; do
|
||||||
|
unset DIFF_IDLE
|
||||||
|
unset DIFF_TOTAL
|
||||||
|
unset DIFF_USAGE
|
||||||
|
unset TOTAL
|
||||||
|
unset IDLE
|
||||||
|
unset VALUE
|
||||||
|
unset CPU
|
||||||
|
for i in {1..2}; do
|
||||||
|
CPU=(`sed -n 's/^cpu\s//p' /proc/stat`)
|
||||||
|
IDLE[$i]=${CPU[4]} # Just the idle CPU time.
|
||||||
|
for VALUE in "${CPU[@]}"; do
|
||||||
|
TOTAL[$i]=$((${TOTAL[$i]}+$VALUE))
|
||||||
|
done
|
||||||
|
if [ $i = 1 ]; then
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Returns a color indicating system load.
|
||||||
|
# Calculate the CPU usage since we last checked.
|
||||||
|
DIFF_IDLE=$(( ${IDLE[2]} - ${IDLE[1]} ))
|
||||||
|
DIFF_TOTAL=$(( ${TOTAL[2]} - ${TOTAL[1]} ))
|
||||||
|
DIFF_USAGE=$(( (1000*($DIFF_TOTAL - $DIFF_IDLE) / $DIFF_TOTAL+5) / 10 ))
|
||||||
|
echo $DIFF_USAGE > /dev/shm/DIFF_USAGE
|
||||||
|
done
|
||||||
|
}
|
||||||
|
if [ ! -f /dev/shm/DIFF_USAGE ]; then
|
||||||
|
echo 0 > /dev/shm/DIFF_USAGE
|
||||||
|
chmod 777 /dev/shm/DIFF_USAGE
|
||||||
|
fi
|
||||||
|
if [ ! -f /dev/shm/DIFF_USAGE.pid ]; then
|
||||||
|
echo 0 > /dev/shm/DIFF_USAGE.pid
|
||||||
|
chmod 777 /dev/shm/DIFF_USAGE.pid
|
||||||
|
fi
|
||||||
|
if ! eval ps -p $(cat /dev/shm/DIFF_USAGE.pid) > /dev/null 2>&1; then
|
||||||
|
check_load &
|
||||||
|
echo $! > /dev/shm/DIFF_USAGE.pid
|
||||||
|
fi
|
||||||
|
function load_color() {
|
||||||
|
# Load vars
|
||||||
|
# Small load
|
||||||
|
SLOAD=30
|
||||||
|
# Medium load
|
||||||
|
MLOAD=60
|
||||||
|
# Large load
|
||||||
|
LLOAD=80
|
||||||
|
if [ $(cat /dev/shm/DIFF_USAGE) -gt ${LLOAD} ]; then
|
||||||
|
LOAD="%F{red}%m%f"
|
||||||
|
elif [ $(cat /dev/shm/DIFF_USAGE) -gt ${MLOAD} ]; then
|
||||||
|
LOAD="%F{yellow}%m%f"
|
||||||
|
elif [ $(cat /dev/shm/DIFF_USAGE) -gt ${SLOAD} ]; then
|
||||||
|
LOAD="%F{green }%m%f"
|
||||||
|
else
|
||||||
|
LOAD="%B%F{black}%m%f%b"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# [5] Disk space indicator
|
||||||
|
function disk_color(){
|
||||||
|
if [ ! -w "${PWD}" ] ; then
|
||||||
|
DISK_COLOR=$fg[red]
|
||||||
|
# No 'write' privilege in the current directory.
|
||||||
|
elif [ -s "${PWD}" ] ; then
|
||||||
|
local used=$(command df -P "$PWD" | awk 'END {print $5} {sub(/%/,"")}')
|
||||||
|
if [ ${used} -gt 85 ]; then
|
||||||
|
# Disk almost full (>85%)
|
||||||
|
DISK="%F{red}%1~%f"
|
||||||
|
elif [ ${used} -gt 60 ]; then
|
||||||
|
# Free disk space almost gone
|
||||||
|
DISK="%F{yellow}%1~%f"
|
||||||
|
else
|
||||||
|
# Free disk space is ok
|
||||||
|
DISK="%F{green}%1~%f"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
DISK="%B%F{black}%~%f%b"
|
||||||
|
# Current directory is size '0' (like /proc, /sys etc).
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# PS builder
|
||||||
|
function buildPS() {
|
||||||
|
case ${TERM} in
|
||||||
|
*linux | rxvt-unicode-256color | xterm)
|
||||||
|
PS1="${CONNECTION_LEFT}${USER_PS}${RANDOM_AT}${LOAD}:${DISK}${CONNECTION_RIGHT}$ "
|
||||||
|
PS2="$ "
|
||||||
|
PS3="#?"
|
||||||
|
PS4='[${LINENO}]+ '
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
PS1="${CONNECTION_LEFT}${USER_PS}${RANDOM_AT}${LOAD}:${DISK}${CONNECTION_RIGHT}$ "
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
precmd() {
|
||||||
|
random_color
|
||||||
|
load_color
|
||||||
|
disk_color
|
||||||
|
buildPS
|
||||||
|
}
|
28
zshrc
Normal file
28
zshrc
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
HISTFILE=~/.zhistory
|
||||||
|
HISTSIZE=1000
|
||||||
|
SAVEHIST=1000
|
||||||
|
setopt appendhistory autocd nomatch
|
||||||
|
unsetopt beep extendedglob notify
|
||||||
|
bindkey -e
|
||||||
|
|
||||||
|
autoload -Uz compinit colors
|
||||||
|
compinit
|
||||||
|
colors
|
||||||
|
|
||||||
|
gsrcArray=(/etc/zsh/zshps /etc/zsh/zshenv /etc/zsh/zshalias)
|
||||||
|
usrcArray=(~/.zshenv ~/.zshalias)
|
||||||
|
|
||||||
|
|
||||||
|
# Global settings
|
||||||
|
for gsrc in "${gsrcArray[@]}"; do
|
||||||
|
if [[ -f "${gsrc}" ]]; then
|
||||||
|
source "${gsrc}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# User settings
|
||||||
|
for gsrc in "${gsrcArray[@]}"; do
|
||||||
|
if [[ -f "${gsrc}" ]]; then
|
||||||
|
source "${gsrc}"
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Reference in a new issue