|
|
|
|
# This is the config I use for Powerlevel9k
|
|
|
|
|
|
|
|
|
|
# Custom dir command
|
|
|
|
|
function my_dir(){
|
|
|
|
|
homeIcon=""
|
|
|
|
|
wpPluginsIcon=".p."
|
|
|
|
|
wpThemesIcon=".t."
|
|
|
|
|
siteIcon=" "
|
|
|
|
|
wpSiteIcon=" "
|
|
|
|
|
magentoSiteIcon=" "
|
|
|
|
|
dropboxIcon=""
|
|
|
|
|
seperator=" "
|
|
|
|
|
seperatorDual=" "
|
|
|
|
|
root="$seperator"
|
|
|
|
|
# Gets the path.
|
|
|
|
|
local current_path="$(print -P "%~")"
|
|
|
|
|
|
|
|
|
|
# Replace either ~ or ~/ with
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/\~/$homeIcon/")
|
|
|
|
|
|
|
|
|
|
# Replace wp-content/themes with theme icon if in theme
|
|
|
|
|
# current_path=$(echo $current_path | sed -r -e "s/wp\-content\/themes/$wpThemesIcon/")
|
|
|
|
|
|
|
|
|
|
# Replace wp-content/plugins with plugin icon if in plugin
|
|
|
|
|
# current_path=$(echo $current_path | sed -r -e "s/wp\-content\/plugins/$wpPluginsIcon/")
|
|
|
|
|
|
|
|
|
|
local current_project_full="$(project current --path)"
|
|
|
|
|
local current_project_name="$(project current)"
|
|
|
|
|
if [ -n "$current_project_name" ]; then
|
|
|
|
|
if echo "$PWD" | grep -q "$current_project_full"; then
|
|
|
|
|
current_path=$(echo $PWD | sed -r -e "s#$current_project_full##" | sed -r -e 's/^\///')
|
|
|
|
|
current_path="$current_path"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
#
|
|
|
|
|
#This is used for checking if wp or magento
|
|
|
|
|
local ph=${PWD%/public_html*}/public_html
|
|
|
|
|
# If in a site folder and a wp site, replace home/Sites/<site-name>/public_html with siteIcon <site-url>
|
|
|
|
|
if [[ -d $ph ]]; then
|
|
|
|
|
local icon=$siteIcon
|
|
|
|
|
if [[ -e "$ph/wp-config.php" ]]; then #If WordPress
|
|
|
|
|
icon=$wpSiteIcon
|
|
|
|
|
|
|
|
|
|
# Change wp-content in sub folders
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/wp\-content\//wpc\//")
|
|
|
|
|
|
|
|
|
|
if [[ $(tput cols) -lt 100 ]]; then
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/wpc\/themes\//\//")
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/wpc\/plugins\//\//")
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
elif [[ -e "$ph/bin/magento" ]]; then #If magento
|
|
|
|
|
icon=$magentoSiteIcon
|
|
|
|
|
fi
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/$homeIcon\/Sites\/([a-z_\-]*)\/public_html/$icon\1/")
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Replace Dropbox with icon
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/$homeIcon\/Dropbox/$dropboxIcon/")
|
|
|
|
|
|
|
|
|
|
# Set the root
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/^\//$root/g")
|
|
|
|
|
|
|
|
|
|
# Set the dual seperator
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/\/\//$seperatorDual/g")
|
|
|
|
|
|
|
|
|
|
# Set the seperator
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/\//$seperator/g")
|
|
|
|
|
|
|
|
|
|
# If seperator is at the end, remove it (this should only be the case if in root directory)
|
|
|
|
|
current_path=$(echo $current_path | sed -r -e "s/$seperator\$//g")
|
|
|
|
|
|
|
|
|
|
echo $current_path
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
POWERLEVEL9K_CUSTOM_DIR="my_dir"
|
|
|
|
|
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
|
|
|
POWERLEVEL9K_CUSTOM_DIR_BACKGROUND="green"
|
|
|
|
|
POWERLEVEL9K_CUSTOM_DIR_FOREGROUND="black"
|
|
|
|
|
else
|
|
|
|
|
POWERLEVEL9K_CUSTOM_DIR_BACKGROUND="blue"
|
|
|
|
|
POWERLEVEL9K_CUSTOM_DIR_FOREGROUND="black"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR="\ue0c0"
|
|
|
|
|
# POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR="\ue0c2"
|
|
|
|
|
|
|
|
|
|
function Capslock(){
|
|
|
|
|
x=$(xset -q | grep Caps) 2> /dev/null || exit 0
|
|
|
|
|
x=${x:22:1}
|
|
|
|
|
if [[ $x == "n" ]]; then
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
POWERLEVEL9K_CUSTOM_CAPS="Capslock"
|
|
|
|
|
POWERLEVEL9K_CUSTOM_CAPS_BACKGROUND="red"
|
|
|
|
|
POWERLEVEL9K_CUSTOM_CAPS_FOREGROUND="white"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function prompt_project() {
|
|
|
|
|
local segment_content state icon
|
|
|
|
|
local current_project_name="$(project current)"
|
|
|
|
|
local current_project_full="$(project current --path)"
|
|
|
|
|
local parent_process="$(ps -ocommand -p $PPID | grep -v 'COMMAND' | cut -d' ' -f1)"
|
|
|
|
|
# If there is a current project
|
|
|
|
|
if [ -n "$current_project_name" ]; then
|
|
|
|
|
segment_content="$current_project_name"
|
|
|
|
|
if [[ "$parent_process" == "/usr/bin/script" ]]; then
|
|
|
|
|
segment_content="辶$segment_content"
|
|
|
|
|
fi
|
|
|
|
|
# If in the current project
|
|
|
|
|
if echo "$PWD" | grep -q "$current_project_full"; then
|
|
|
|
|
state="INSIDE"
|
|
|
|
|
elif echo "$PWD" | grep -q "$HOME/Projects/"; then
|
|
|
|
|
state="WRONG"
|
|
|
|
|
else
|
|
|
|
|
state="OUTSIDE"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -n "$segment_content" ]; then
|
|
|
|
|
"$1_prompt_segment" "${0}_${state}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$segment_content" "$icon"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
POWERLEVEL9K_PROJECT_DEFAULT_FOREGROUND="black"
|
|
|
|
|
POWERLEVEL9K_PROJECT_WRONG_BACKGROUND="red"
|
|
|
|
|
POWERLEVEL9K_PROJECT_OUTSIDE_BACKGROUND="yellow"
|
|
|
|
|
POWERLEVEL9K_PROJECT_INSIDE_BACKGROUND="green"
|
|
|
|
|
|
|
|
|
|
# Left Prompt
|
|
|
|
|
if [[ "$(basename "/"$(ps -f -p $(cat /proc/$(echo $$)/stat | cut -d \ -f 4) | tail -1 | sed 's/^.* //'))" != "$(echo $USER)" ]]; then
|
|
|
|
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(project custom_dir vcs custom_caps)
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Right Prompt
|
|
|
|
|
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator)
|