diff --git a/themes/dotmatrix/dotmatrix.theme b/themes/dotmatrix/dotmatrix.theme index 0357180..ce8af9e 100644 --- a/themes/dotmatrix/dotmatrix.theme +++ b/themes/dotmatrix/dotmatrix.theme @@ -9,7 +9,7 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_DISPLAY_TEXT=${DOTMATRIX_DISPLAY_TEXT:-"T"} DOTMATRIX_DISPLAY_X11=${DOTMATRIX_DISPLAY_X11:-"X"} - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-"⌂"} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"⌂"} DOTMATRIX_MARK_STASH=${DOTMATRIX_MARK_STASH:-"✝"} DOTMATRIX_MARK_UNTRACKED=${DOTMATRIX_MARK_UNTRACKED:-"?"} # ⛶ DOTMATRIX_DIFF=${DOTMATRIX_DIFF:-"≠"} @@ -20,7 +20,7 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-0} # Dotmatrix theme - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-"⌂"} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"⌂"} DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"♟"} DOTMATRIX_VCS=${DOTMATRIX_VCS:-"╟┘"} DOTMATRIX_MARK=${DOTMATRIX_MARK:-"■"} @@ -29,17 +29,22 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-"╱"} DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"▞"} # Separator arrays (left center right - [[ -z ${DOTMATRIX_LINK[@]+x} ]] && DOTMATRIX_LINK=("▙" " " "▜") - [[ -z ${DOTMATRIX_OPEN[@]+x} ]] && DOTMATRIX_OPEN=("▙" " ▚ " "▜") - [[ -z ${DOTMATRIX_DANG[@]+x} ]] && DOTMATRIX_DANG=("▙" " □ " "▜") - [[ -z ${DOTMATRIX_ENDS[@]+x} ]] && DOTMATRIX_ENDS=("▛▞▗ ▝" "▖ ▘▞▟") - [[ -z ${DOTMATRIX_ITEMS[@]+x} ]] && DOTMATRIX_ITEMS=("┫" "┃" "┣") + DOTMATRIX_LINK=( ${DOTMATRIX_LINK[@]+"${DOTMATRIX_LINK[@]}"} ) + [[ ${#DOTMATRIX_LINK[@]} == 0 ]] && DOTMATRIX_LINK=("▙" " " "▜") + DOTMATRIX_OPEN=( ${DOTMATRIX_OPEN[@]+"${DOTMATRIX_OPEN[@]}"} ) + [[ ${#DOTMATRIX_OPEN[@]} == 0 ]] && DOTMATRIX_OPEN=("▙" " ▚ " "▜") + DOTMATRIX_DANG=( ${DOTMATRIX_DANG[@]+"${DOTMATRIX_DANG[@]}"} ) + [[ ${#DOTMATRIX_DANG[@]} == 0 ]] && DOTMATRIX_DANG=("▙" " □ " "▜") + DOTMATRIX_ENDS=( ${DOTMATRIX_ENDS[@]+"${DOTMATRIX_ENDS[@]}"} ) + [[ ${#DOTMATRIX_ENDS[@]} == 0 ]] && DOTMATRIX_ENDS=("▛▞▗ ▝" "▖ ▘▞▟") + DOTMATRIX_ITEMS=( ${DOTMATRIX_ITEMS[@]+"${DOTMATRIX_ITEMS[@]}"} ) + [[ ${#DOTMATRIX_ITEMS[@]} == 0 ]] && DOTMATRIX_ITEMS=("┫" "┃" "┣") elif [[ "${DOTMATRIX_VARIANT}" == "text" ]] ; then DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-0} # Dotmatrix theme - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-"lcl"} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"lcl"} DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"me"} DOTMATRIX_VCS=${DOTMATRIX_VCS:-"VCS"} DOTMATRIX_MARK=${DOTMATRIX_MARK:-">"} @@ -48,18 +53,23 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-"╱"} DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"┃"} # Separator arrays (left center right - [[ -z ${DOTMATRIX_LINK[@]+x} ]] && DOTMATRIX_LINK=("▌" "<" "▐") - [[ -z ${DOTMATRIX_OPEN[@]+x} ]] && DOTMATRIX_OPEN=("▌" "<<" "▐") - [[ -z ${DOTMATRIX_DANG[@]+x} ]] && DOTMATRIX_DANG=("▌" "<<<" "▐") - [[ -z ${DOTMATRIX_ENDS[@]+x} ]] && DOTMATRIX_ENDS=("▌···" "···▐") - [[ -z ${DOTMATRIX_ITEMS[@]+x} ]] && DOTMATRIX_ITEMS=("┫" "┃" "┣") + DOTMATRIX_LINK=( ${DOTMATRIX_LINK[@]+"${DOTMATRIX_LINK[@]}"} ) + [[ ${#DOTMATRIX_LINK[@]} == 0 ]] && DOTMATRIX_LINK=("▌" "<" "▐") + DOTMATRIX_OPEN=( ${DOTMATRIX_OPEN[@]+"${DOTMATRIX_OPEN[@]}"} ) + [[ ${#DOTMATRIX_OPEN[@]} == 0 ]] && DOTMATRIX_OPEN=("▌" "<<" "▐") + DOTMATRIX_DANG=( ${DOTMATRIX_DANG[@]+"${DOTMATRIX_DANG[@]}"} ) + [[ ${#DOTMATRIX_DANG[@]} == 0 ]] && DOTMATRIX_DANG=("▌" "<<<" "▐") + DOTMATRIX_ENDS=( ${DOTMATRIX_ENDS[@]+"${DOTMATRIX_ENDS[@]}"} ) + [[ ${#DOTMATRIX_ENDS[@]} == 0 ]] && DOTMATRIX_ENDS=("▌···" "···▐") + DOTMATRIX_ITEMS=( ${DOTMATRIX_ITEMS[@]+"${DOTMATRIX_ITEMS[@]}"} ) + [[ ${#DOTMATRIX_ITEMS[@]} == 0 ]] && DOTMATRIX_ITEMS=("┫" "┃" "┣") elif [[ "${DOTMATRIX_VARIANT}" == "chevron" ]] ; then DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1} # Powerline chevron theme - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-""} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""} DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""} DOTMATRIX_VCS=${DOTMATRIX_VCS:-""} DOTMATRIX_MARK=${DOTMATRIX_MARK:-""} @@ -67,17 +77,22 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""} DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-"╱"} DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""} - [[ -z ${DOTMATRIX_LINK[@]+x} ]] && DOTMATRIX_LINK=("" "" "") - [[ -z ${DOTMATRIX_OPEN[@]+x} ]] && DOTMATRIX_OPEN=("" "" "") - [[ -z ${DOTMATRIX_DANG[@]+x} ]] && DOTMATRIX_DANG=("" "" "") - [[ -z ${DOTMATRIX_ENDS[@]+x} ]] && DOTMATRIX_ENDS=("" "") - [[ -z ${DOTMATRIX_ITEMS[@]+x} ]] && DOTMATRIX_ITEMS=("" "┃" "") + DOTMATRIX_LINK=( ${DOTMATRIX_LINK[@]+"${DOTMATRIX_LINK[@]}"} ) + [[ ${#DOTMATRIX_LINK[@]} == 0 ]] && DOTMATRIX_LINK=("" "" "") + DOTMATRIX_OPEN=( ${DOTMATRIX_OPEN[@]+"${DOTMATRIX_OPEN[@]}"} ) + [[ ${#DOTMATRIX_OPEN[@]} == 0 ]] && DOTMATRIX_OPEN=("" "" "") + DOTMATRIX_DANG=( ${DOTMATRIX_DANG[@]+"${DOTMATRIX_DANG[@]}"} ) + [[ ${#DOTMATRIX_DANG[@]} == 0 ]] && DOTMATRIX_DANG=("" "" "") + DOTMATRIX_ENDS=( ${DOTMATRIX_ENDS[@]+"${DOTMATRIX_ENDS[@]}"} ) + [[ ${#DOTMATRIX_ENDS[@]} == 0 ]] && DOTMATRIX_ENDS=("" "") + DOTMATRIX_ITEMS=( ${DOTMATRIX_ITEMS[@]+"${DOTMATRIX_ITEMS[@]}"} ) + [[ ${#DOTMATRIX_ITEMS[@]} == 0 ]] && DOTMATRIX_ITEMS=("" "┃" "") elif [[ "${DOTMATRIX_VARIANT}" == "round" ]] ; then DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1} # Powerline round theme - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-""} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""} DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""} DOTMATRIX_VCS=${DOTMATRIX_VCS:-""} DOTMATRIX_MARK=${DOTMATRIX_MARK:-""} @@ -85,17 +100,22 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""} DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-"╱"} DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""} - [[ -z ${DOTMATRIX_LINK[@]+x} ]] && DOTMATRIX_LINK=("█" "" "") - [[ -z ${DOTMATRIX_OPEN[@]+x} ]] && DOTMATRIX_OPEN=("█" "" "") - [[ -z ${DOTMATRIX_DANG[@]+x} ]] && DOTMATRIX_DANG=("█" "" "") - [[ -z ${DOTMATRIX_ENDS[@]+x} ]] && DOTMATRIX_ENDS=("" "") - [[ -z ${DOTMATRIX_ITEMS[@]+x} ]] && DOTMATRIX_ITEMS=("" "┃" "") + DOTMATRIX_LINK=( ${DOTMATRIX_LINK[@]+"${DOTMATRIX_LINK[@]}"} ) + [[ ${#DOTMATRIX_LINK[@]} == 0 ]] && DOTMATRIX_LINK=("█" "" "") + DOTMATRIX_OPEN=( ${DOTMATRIX_OPEN[@]+"${DOTMATRIX_OPEN[@]}"} ) + [[ ${#DOTMATRIX_OPEN[@]} == 0 ]] && DOTMATRIX_OPEN=("█" "" "") + DOTMATRIX_DANG=( ${DOTMATRIX_DANG[@]+"${DOTMATRIX_DANG[@]}"} ) + [[ ${#DOTMATRIX_DANG[@]} == 0 ]] && DOTMATRIX_DANG=("█" "" "") + DOTMATRIX_ENDS=( ${DOTMATRIX_ENDS[@]+"${DOTMATRIX_ENDS[@]}"} ) + [[ ${#DOTMATRIX_ENDS[@]} == 0 ]] && DOTMATRIX_ENDS=("" "") + DOTMATRIX_ITEMS=( ${DOTMATRIX_ITEMS[@]+"${DOTMATRIX_ITEMS[@]}"} ) + [[ ${#DOTMATRIX_ITEMS[@]} == 0 ]] && DOTMATRIX_ITEMS=("" "┃" "") elif [[ "${DOTMATRIX_VARIANT}" == "slant" ]] ; then DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1} # Powerline slanted theme - DOTMATRIX_HOST_LOCAL=${POWERLINE_HOST_LOCAL:-""} + DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""} DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""} DOTMATRIX_VCS=${DOTMATRIX_VCS:-""} DOTMATRIX_MARK=${DOTMATRIX_MARK:-""} @@ -103,11 +123,16 @@ _lp_dotmatrix_theme_activate() { DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""} DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-"╱"} DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""} - [[ -z ${DOTMATRIX_LINK[@]+x} ]] && DOTMATRIX_LINK=("" "" "") - [[ -z ${DOTMATRIX_OPEN[@]+x} ]] && DOTMATRIX_OPEN=("" "" "") - [[ -z ${DOTMATRIX_DANG[@]+x} ]] && DOTMATRIX_DANG=("" "" "") - [[ -z ${DOTMATRIX_ENDS[@]+x} ]] && DOTMATRIX_ENDS=("" "") - [[ -z ${DOTMATRIX_ITEMS[@]+x} ]] && DOTMATRIX_ITEMS=("" "┃" "") + DOTMATRIX_LINK=( ${DOTMATRIX_LINK[@]+"${DOTMATRIX_LINK[@]}"} ) + [[ ${#DOTMATRIX_LINK[@]} == 0 ]] && DOTMATRIX_LINK=("" "" "") + DOTMATRIX_OPEN=( ${DOTMATRIX_OPEN[@]+"${DOTMATRIX_OPEN[@]}"} ) + [[ ${#DOTMATRIX_OPEN[@]} == 0 ]] && DOTMATRIX_OPEN=("" "" "") + DOTMATRIX_DANG=( ${DOTMATRIX_DANG[@]+"${DOTMATRIX_DANG[@]}"} ) + [[ ${#DOTMATRIX_DANG[@]} == 0 ]] && DOTMATRIX_DANG=("" "" "") + DOTMATRIX_ENDS=( ${DOTMATRIX_ENDS[@]+"${DOTMATRIX_ENDS[@]}"} ) + [[ ${#DOTMATRIX_ENDS[@]} == 0 ]] && DOTMATRIX_ENDS=("" "") + DOTMATRIX_ITEMS=( ${DOTMATRIX_ITEMS[@]+"${DOTMATRIX_ITEMS[@]}"} ) + [[ ${#DOTMATRIX_ITEMS[@]} == 0 ]] && DOTMATRIX_ITEMS=("" "┃" "") fi @@ -135,26 +160,57 @@ _lp_dotmatrix_theme_activate() { # Color arrays defaults fg bg b u ffg fbg - [[ -z ${DOTMATRIX_COLOR_DARK[@]+x} ]] && DOTMATRIX_COLOR_DARK=(252 239 0 0 15 0) - [[ -z ${DOTMATRIX_COLOR_LITE[@]+x} ]] && DOTMATRIX_COLOR_LITE=(239 252 0 0 0 15) - [[ -z ${DOTMATRIX_COLOR_GLOW[@]+x} ]] && DOTMATRIX_COLOR_GLOW=( 0 252 1 0 0 15) - [[ -z ${DOTMATRIX_COLOR_NOTE[@]+x} ]] && DOTMATRIX_COLOR_NOTE=( 15 33 0 0 15 12) - [[ -z ${DOTMATRIX_COLOR_WARN[@]+x} ]] && DOTMATRIX_COLOR_WARN=(196 220 1 0 0 11) - [[ -z ${DOTMATRIX_COLOR_FAIR[@]+x} ]] && DOTMATRIX_COLOR_FAIR=( 0 244 0 0 0 8) + DOTMATRIX_COLOR_DARK=( ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} ) + [[ ${#DOTMATRIX_COLOR_DARK[@]} == 0 ]] && DOTMATRIX_COLOR_DARK=(252 239 0 0 15 0) - [[ -z ${DOTMATRIX_COLOR_PATH_SHORT[@]+x} ]] && DOTMATRIX_COLOR_PATH_SHORT=(252 239 0 0 0 15) - [[ -z ${DOTMATRIX_COLOR_PATH_VCS[@]+x} ]] && DOTMATRIX_COLOR_PATH_VCS=(252 239 0 1 0 15) - [[ -z ${DOTMATRIX_COLOR_PATH_LAST[@]+x} ]] && DOTMATRIX_COLOR_PATH_LAST=(15 239 1 0 0 15) + DOTMATRIX_COLOR_LITE=( ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} ) + [[ ${#DOTMATRIX_COLOR_LITE[@]} == 0 ]] && DOTMATRIX_COLOR_LITE=(239 252 0 0 0 15) - [[ -z ${DOTMATRIX_COLOR_LINE[@]+x} ]] && DOTMATRIX_COLOR_LINE=(244 -1 0 0 15 -1) - # [[ -z ${DOTMATRIX_COLOR_LINE_START[@]+x} ]] && DOTMATRIX_COLOR_LINE_START=(255 -1 1 0 15 -1) - # [[ -z ${DOTMATRIX_COLOR_LINE_END[@]+x} ]] && DOTMATRIX_COLOR_LINE_END=(232 -1 1 0 15 -1) + DOTMATRIX_COLOR_GLOW=( ${DOTMATRIX_COLOR_GLOW[@]+"${DOTMATRIX_COLOR_GLOW[@]}"} ) + [[ ${#DOTMATRIX_COLOR_GLOW[@]} == 0 ]] && DOTMATRIX_COLOR_GLOW=( 0 252 1 0 0 15) - [[ -z ${DOTMATRIX_COLOR_MARK[@]+x} ]] && DOTMATRIX_COLOR_MARK=(15 -1 0 0 15 -1) + DOTMATRIX_COLOR_NOTE=( ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} ) + [[ ${#DOTMATRIX_COLOR_NOTE[@]} == 0 ]] && DOTMATRIX_COLOR_NOTE=( 15 33 0 0 15 12) + + DOTMATRIX_COLOR_WARN=( ${DOTMATRIX_COLOR_WARN[@]+"${DOTMATRIX_COLOR_WARN[@]}"} ) + [[ ${#DOTMATRIX_COLOR_WARN[@]} == 0 ]] && DOTMATRIX_COLOR_WARN=(196 220 1 0 0 11) + + DOTMATRIX_COLOR_FAIR=( ${DOTMATRIX_COLOR_FAIR[@]+"${DOTMATRIX_COLOR_FAIR[@]}"} ) + [[ ${#DOTMATRIX_COLOR_FAIR[@]} == 0 ]] && DOTMATRIX_COLOR_FAIR=( 0 244 0 0 0 8) + + + DOTMATRIX_COLOR_PATH_SHORT=( ${DOTMATRIX_COLOR_PATH_SHORT[@]+"${DOTMATRIX_COLOR_PATH_SHORT[@]}"} ) + [[ ${#DOTMATRIX_COLOR_PATH_SHORT[@]} == 0 ]] && DOTMATRIX_COLOR_PATH_SHORT=(252 239 0 0 0 15) + + DOTMATRIX_COLOR_PATH_VCS=( ${DOTMATRIX_COLOR_PATH_VCS[@]+"${DOTMATRIX_COLOR_PATH_VCS[@]}"} ) + [[ ${#DOTMATRIX_COLOR_PATH_VCS[@]} == 0 ]] && DOTMATRIX_COLOR_PATH_VCS=(252 239 0 1 0 15) + + DOTMATRIX_COLOR_PATH_LAST=( ${DOTMATRIX_COLOR_PATH_LAST[@]+"${DOTMATRIX_COLOR_PATH_LAST[@]}"} ) + [[ ${#DOTMATRIX_COLOR_PATH_LAST[@]} == 0 ]] && DOTMATRIX_COLOR_PATH_LAST=(15 239 1 0 0 15) + + + DOTMATRIX_COLOR_LINE=( ${DOTMATRIX_COLOR_LINE[@]+"${DOTMATRIX_COLOR_LINE[@]}"} ) + [[ ${#DOTMATRIX_COLOR_LINE[@]} == 0 ]] && DOTMATRIX_COLOR_LINE=(244 -1 0 0 15 -1) + + # DOTMATRIX_COLOR_LINE_START=( ${DOTMATRIX_COLOR_LINE_START[@]+"${DOTMATRIX_COLOR_LINE_START[@]}"} ) + # [[ ${#DOTMATRIX_COLOR_LINE_START[@]} == 0 ]] && DOTMATRIX_COLOR_LINE_START=(255 -1 1 0 15 -1) + + DOTMATRIX_COLOR_LINE_END=( ${DOTMATRIX_COLOR_LINE_END[@]+"${DOTMATRIX_COLOR_LINE_END[@]}"} ) + [[ ${#DOTMATRIX_COLOR_LINE_END[@]} == 0 ]] && DOTMATRIX_COLOR_LINE_END=(232 -1 1 0 15 -1) + + + DOTMATRIX_COLOR_MARK=( ${DOTMATRIX_COLOR_MARK[@]+"${DOTMATRIX_COLOR_MARK[@]}"} ) + [[ ${#DOTMATRIX_COLOR_MARK[@]} == 0 ]] && DOTMATRIX_COLOR_MARK=(15 -1 0 0 15 -1) + + DOTMATRIX_COLOR_SEP_DARK=( ${DOTMATRIX_COLOR_SEP_DARK[@]+"${DOTMATRIX_COLOR_SEP_DARK[@]}"} ) + [[ ${#DOTMATRIX_COLOR_SEP_DARK[@]} == 0 ]] && DOTMATRIX_COLOR_SEP_DARK=( 0 -2 0 0 0 -2) + + DOTMATRIX_COLOR_SEP_FAIR=( ${DOTMATRIX_COLOR_SEP_FAIR[@]+"${DOTMATRIX_COLOR_SEP_FAIR[@]}"} ) + [[ ${#DOTMATRIX_COLOR_SEP_FAIR[@]} == 0 ]] && DOTMATRIX_COLOR_SEP_FAIR=(244 -2 0 0 0 -2) + + DOTMATRIX_COLOR_SEP_LITE=( ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} ) + [[ ${#DOTMATRIX_COLOR_SEP_LITE[@]} == 0 ]] && DOTMATRIX_COLOR_SEP_LITE=( 15 -2 0 0 15 -2) - [[ -z ${DOTMATRIX_COLOR_SEP_DARK[@]+x} ]] && DOTMATRIX_COLOR_SEP_DARK=( 0 -2 0 0 0 -2) - [[ -z ${DOTMATRIX_COLOR_SEP_FAIR[@]+x} ]] && DOTMATRIX_COLOR_SEP_FAIR=(244 -2 0 0 0 -2) - [[ -z ${DOTMATRIX_COLOR_SEP_LITE[@]+x} ]] && DOTMATRIX_COLOR_SEP_LITE=( 15 -2 0 0 15 -2) __dotmatrix_activate_display __dotmatrix_activate_connection @@ -165,7 +221,7 @@ _lp_dotmatrix_theme_activate() { _lp_dotmatrix_theme_directory() { - lp_terminal_format "${DOTMATRIX_COLOR_LITE[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} __dotmatrix_directory_FS __dotmatrix_directory_path } @@ -197,14 +253,14 @@ _lp_dotmatrix_theme_prompt() { header+="${_DOTMATRIX_PATH} " if _lp_dirstack; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} header+="${dotmatrix_sep}" - __dotmatrix_make_field "${lp_dirstack}" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field $lp_dirstack ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} header+="${dotmatrix_field}" else # Recall a dark format to correctly reset sections history # to match the path's section colors. - lp_terminal_format "${DOTMATRIX_COLOR_DARK[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} fi __dotmatrix_make_sep_last @@ -218,46 +274,46 @@ _lp_dotmatrix_theme_prompt() { side="${dotmatrix_sep}" # battery / load / temperature - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} local blt_plug="${dotmatrix_sep}" local battery="" if _lp_battery ; then - __dotmatrix_make_field "$lp_battery" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "$lp_battery" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} battery="${dotmatrix_field}${LP_MARK_BATTERY}" fi local load="" if _lp_load ; then - __dotmatrix_make_field "$lp_load" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "$lp_load" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} load="${dotmatrix_field}${LP_MARK_LOAD}" fi local temperature="" if _lp_temperature ; then - __dotmatrix_make_field "$lp_temperature" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "$lp_temperature" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} temperature="${dotmatrix_field}${LP_MARK_TEMP}" fi - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_DARK[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_DARK[@]+"${DOTMATRIX_COLOR_SEP_DARK[@]}"} # Non-bracketed variables are intentionals, # so that if the variable is null, it does not count in the arguments array. __dotmatrix_join_fields "$dotmatrix_sep" $battery $load $temperature if [[ -n "$dotmatrix_join_fields" ]] ; then side+="${blt_plug}${dotmatrix_join_fields}" else - lp_terminal_format "${DOTMATRIX_COLOR_FAIR[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_FAIR[@]+"${DOTMATRIX_COLOR_FAIR[@]}"} side+="${lp_terminal_format}" fi # jobs: detached / running / stopped - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} local djc_plug="${dotmatrix_sep}" local detached_sessions="" if _lp_detached_sessions ; then if [[ -n "${lp_detached_sessions}" && "${lp_detached_sessions}" > 0 ]] ; then - __dotmatrix_make_field "${lp_detached_sessions}d" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "${lp_detached_sessions}d" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} detached_sessions="${dotmatrix_field}" fi fi @@ -266,34 +322,34 @@ _lp_dotmatrix_theme_prompt() { local stopped_jobs="" if _lp_jobcount ; then if [[ -n "${lp_running_jobs}" && "${lp_running_jobs}" > 0 ]] ; then - __dotmatrix_make_field "${lp_running_jobs}&" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "${lp_running_jobs}&" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} running_jobs="${dotmatrix_field}" fi if [[ -n "${lp_stopped_jobs}" && "${lp_stopped_jobs}" > 0 ]] ; then - __dotmatrix_make_field "${lp_stopped_jobs}z" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "${lp_stopped_jobs}z" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} stopped_jobs="${dotmatrix_field}" fi fi - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_LITE[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} __dotmatrix_join_fields "$dotmatrix_sep" ${detached_sessions} ${running_jobs} ${stopped_jobs} if [[ -n "$dotmatrix_join_fields" ]] ; then side+="${djc_plug}${dotmatrix_join_fields}" else - lp_terminal_format "${DOTMATRIX_COLOR_FAIR[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_FAIR[@]+"${DOTMATRIX_COLOR_FAIR[@]}"} side+="${lp_terminal_format}" fi # clock if _lp_time ; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} side+="${dotmatrix_sep}" if _lp_analog_time ; then - __dotmatrix_make_field "$lp_analog_time" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "$lp_analog_time" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} side+="$dotmatrix_field" else - __dotmatrix_make_field "$lp_time" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "$lp_time" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} side+="$dotmatrix_field" fi fi @@ -319,7 +375,7 @@ _lp_dotmatrix_theme_prompt() { inline="$LP_PS1_PREFIX${NO_COL}" local lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_LINE[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_LINE[@]+"${DOTMATRIX_COLOR_LINE[@]}"} local inline_width if _lp_software_collections ; then @@ -338,7 +394,7 @@ _lp_dotmatrix_theme_prompt() { # Gradient line: too slow (or not enough optimized? check COLUMNS change before recompute?) # for i in $(seq ${inline_width}) ; do # local dash_color=() - # for c in $(seq 0 $((${#DOTMATRIX_COLOR_LINE_START[@]}-1)) ); do + # for c in $(seq 0 $(${#DOTMATRIX_COLOR_LINE_START[@]+"${DOTMATRIX_COLOR_LINE_START[@]}-}1)) ); do # f=$(bc -l <<< "$i / ${inline_width}") # a=${DOTMATRIX_COLOR_LINE_START[c]} # b=${DOTMATRIX_COLOR_LINE_END[c]} @@ -346,7 +402,7 @@ _lp_dotmatrix_theme_prompt() { # dash_color+=($j) # done # - # lp_terminal_format ${dash_color[@]} + # lp_terminal_format ${dash_color[@]+"${dash_color[@]}"} # inline+="${lp_terminal_format}${inline}" # done @@ -355,25 +411,25 @@ _lp_dotmatrix_theme_prompt() { #################################################################### prompt="" - lp_terminal_format "${DOTMATRIX_COLOR_DARK[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} prompt+="${lp_terminal_format}·" # Put internet here when (if) it's done. - local net_sep_color="${DOTMATRIX_COLOR_LITE[@]}" + local net_sep_color=${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} if _lp_find_vcs && _lp_vcs_commits_off_remote ; then if _lp_http_proxy ; then - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} prompt+="${dotmatrix_sep}" else - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} prompt+="${dotmatrix_sep}" fi else if _lp_http_proxy ; then - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} prompt+="${dotmatrix_sep}" else - __dotmatrix_make_sep_mid "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_mid ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} prompt+="${dotmatrix_sep}${DOTMATRIX_SPACE_VOID}" fi @@ -383,20 +439,20 @@ _lp_dotmatrix_theme_prompt() { prompt+="${_DOTMATRIX_VCS}" if _lp_runtime_format ; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_NOTE[@]}" - __dotmatrix_make_field "${lp_runtime_format}" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} + __dotmatrix_make_field "${lp_runtime_format}" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} prompt+="${dotmatrix_sep}${dotmatrix_field}" fi if _lp_error ; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_WARN[@]}" - __dotmatrix_make_field "${lp_error}" "${DOTMATRIX_COLOR_WARN[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_WARN[@]+"${DOTMATRIX_COLOR_WARN[@]}"} + __dotmatrix_make_field "${lp_error}" ${DOTMATRIX_COLOR_WARN[@]+"${DOTMATRIX_COLOR_WARN[@]}"} prompt+="${dotmatrix_sep}${dotmatrix_field}" fi - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_MARK[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_MARK[@]+"${DOTMATRIX_COLOR_MARK[@]}"} prompt+="${dotmatrix_sep}" - lp_terminal_format "${DOTMATRIX_COLOR_MARK[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_MARK[@]+"${DOTMATRIX_COLOR_MARK[@]}"} prompt+="${lp_terminal_format}${DOTMATRIX_MARK}" prompt+="${NO_COL}" @@ -411,11 +467,11 @@ _lp_dotmatrix_theme_prompt() { __dotmatrix_activate_display() { if _lp_connected_display ; then - __dotmatrix_make_field "${DOTMATRIX_DISPLAY_X11}" "${DOTMATRIX_COLOR_LITE[@]}" - _DOTMATRIX_DISPLAY=${dotmatrix_field} + __dotmatrix_make_field $DOTMATRIX_DISPLAY_X11 ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} + _DOTMATRIX_DISPLAY=$dotmatrix_field else - __dotmatrix_make_field "${DOTMATRIX_DISPLAY_TEXT}" "${DOTMATRIX_COLOR_DARK[@]}" - _DOTMATRIX_DISPLAY=${dotmatrix_field} + __dotmatrix_make_field $DOTMATRIX_DISPLAY_TEXT ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} + _DOTMATRIX_DISPLAY=$dotmatrix_field fi } @@ -426,13 +482,13 @@ __dotmatrix_activate_connection() { local user_color case $user_type in 0) # logged-in user - user_color=(${DOTMATRIX_COLOR_DARK[@]}) + user_color=${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} ;; 1) # other user - user_color=(${DOTMATRIX_COLOR_NOTE[@]}) + user_color=${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} ;; 2) # root - user_color=(${DOTMATRIX_COLOR_WARN[@]}) + user_color=${DOTMATRIX_COLOR_WARN[@]+"${DOTMATRIX_COLOR_WARN[@]}"} ;; esac @@ -441,23 +497,23 @@ __dotmatrix_activate_connection() { _lp_connection case "$lp_connection" in lcl) - __dotmatrix_make_sep_plug "${user_color[@]}" + __dotmatrix_make_sep_plug ${user_color[@]} connection="${dotmatrix_sep}" ;; su) - _dotmatrix_make_sep_link "${user_color[@]}" + _dotmatrix_make_sep_link ${user_color[@]} connection="${dotmatrix_sep}" ;; ssh) - __dotmatrix_make_sep_open "${user_color[@]}" + __dotmatrix_make_sep_open ${user_color[@]} connection="${dotmatrix_sep}" ;; tel) - _dotmatrix_make_sep_dang "${user_color[@]}" + _dotmatrix_make_sep_dang ${user_color[@]} connection="${dotmatrix_sep}" ;; *) - __dotmatrix_make_sep_plug "${user_color[@]}" + __dotmatrix_make_sep_plug ${user_color[@]} connection="${dotmatrix_sep}" ;; esac @@ -471,22 +527,22 @@ __dotmatrix_activate_user() { user_type=$? case $user_type in 0) # logged-in user - if [[ -z "${lp_username}" ]] ; then # Honors LP_USER_ALWAYS - __dotmatrix_make_field "${DOTMATRIX_USER_LOCAL}" "${DOTMATRIX_COLOR_DARK[@]}" + if [[ -z ${lp_username} ]] ; then # Honors LP_USER_ALWAYS + __dotmatrix_make_field $DOTMATRIX_USER_LOCAL ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} _DOTMATRIX_USER="${dotmatrix_field}" else - __dotmatrix_make_field "${lp_username}" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field $lp_username ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} _DOTMATRIX_USER="${dotmatrix_field}" fi ;; 1) # other user _lp_username_color - __dotmatrix_make_field "${lp_username_color}" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field $lp_username_color ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_USER="${dotmatrix_field}" ;; 2) # root _lp_username - __dotmatrix_make_field "${lp_username}" "${DOTMATRIX_COLOR_WARN[@]}" + __dotmatrix_make_field $lp_username ${DOTMATRIX_COLOR_WARN[@]+"${DOTMATRIX_COLOR_WARN[@]}"} _DOTMATRIX_USER="${dotmatrix_field}" ;; esac @@ -512,7 +568,7 @@ __dotmatrix_activate_hostname() { hostname="${DOTMATRIX_HOST_LOCAL}" fi - __dotmatrix_make_field "${hostname}" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field $hostname ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_HOSTNAME="${dotmatrix_field}" } @@ -522,20 +578,20 @@ __dotmatrix_activate_multiplexer() { if _lp_multiplexer ; then case "$lp_multiplexer" in tmux) - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} multiplexer="${dotmatrix_sep}" ;; screen) - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} multiplexer="${dotmatrix_sep}" ;; *) - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} multiplexer="${dotmatrix_sep}" ;; esac else - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} multiplexer="${dotmatrix_sep}" fi @@ -552,18 +608,18 @@ __dotmatrix_directory_FS() { if (( LP_ENABLE_PERM )); then if _lp_chroot ; then if [[ -w "${PWD}" ]]; then - __dotmatrix_make_sep_open "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_open ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} fs="${dotmatrix_sep}" else - _dotmatrix_make_sep_dang "${DOTMATRIX_COLOR_DARK[@]}" + _dotmatrix_make_sep_dang ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} fs="${dotmatrix_sep}" fi else if [[ -w "${PWD}" ]]; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} fs="${dotmatrix_sep}" else - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} fs="${dotmatrix_sep}" fi fi @@ -575,19 +631,19 @@ __dotmatrix_directory_FS() { __dotmatrix_directory_path() { local lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_DARK[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} local path_format="${lp_terminal_format}" - lp_terminal_format "${DOTMATRIX_COLOR_SEP_DARK[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_SEP_DARK[@]+"${DOTMATRIX_COLOR_SEP_DARK[@]}"} local separator_format=$lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_PATH_SHORT[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_PATH_SHORT[@]+"${DOTMATRIX_COLOR_PATH_SHORT[@]}"} local shortened_format=$lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_PATH_VCS[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_PATH_VCS[@]+"${DOTMATRIX_COLOR_PATH_VCS[@]}"} local vcs_format=$lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_PATH_LAST[@]}" + lp_terminal_format ${DOTMATRIX_COLOR_PATH_LAST[@]+"${DOTMATRIX_COLOR_PATH_LAST[@]}"} local last_dir_format=$lp_terminal_format local lp_path_format @@ -611,85 +667,85 @@ __dotmatrix_prompt_vcs() { local diffs= if (( LP_ENABLE_VCS_DIFFSTATS )) ; then if [[ "$lp_vcs_commit_ahead" -ne "0" && "$lp_vcs_commit_behind" -ne "0" ]]; then - __dotmatrix_make_field "+$lp_vcs_commit_ahead" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "+$lp_vcs_commit_ahead" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_commit+="${dotmatrix_field}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_commit+="${dotmatrix_sep}" - __dotmatrix_make_field "-$lp_vcs_commit_behind" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "-$lp_vcs_commit_behind" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_commit+="${dotmatrix_field}" elif [[ "$lp_vcs_commit_ahead" -ne "0" ]]; then - __dotmatrix_make_field "+$lp_vcs_commit_ahead" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "+$lp_vcs_commit_ahead" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_commit+="${dotmatrix_field}" elif [[ "$lp_vcs_commit_behind" -ne "0" ]]; then - __dotmatrix_make_field "-$lp_vcs_commit_behind" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "-$lp_vcs_commit_behind" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_commit+="${dotmatrix_field}" fi diffs+="${has_commit}" else - __dotmatrix_make_field "${DOTMATRIX_DIFF}" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "${DOTMATRIX_DIFF}" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} diffs+="${dotmatrix_field}" fi # LP_ENABLE_VCS_DIFFSTATS # Mark & commits off remote local has_commit= if _lp_vcs_commits_off_remote; then - __dotmatrix_make_field "${DOTMATRIX_VCS}${lp_smart_mark}" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "${DOTMATRIX_VCS}${lp_smart_mark}" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_VCS="${dotmatrix_field}" - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}" _DOTMATRIX_VCS+="${diffs}" if [[ "$lp_vcs_commit_ahead" -ne "0" && "$lp_vcs_commit_behind" -ne "0" ]]; then - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}" else - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}" fi else # No commit off remote - __dotmatrix_make_field "${DOTMATRIX_VCS}${lp_smart_mark}" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "${DOTMATRIX_VCS}${lp_smart_mark}" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} _DOTMATRIX_VCS="${dotmatrix_field}" - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}" fi # commits off remote # Branch:bookmark/tag if _lp_vcs_branch; then - __dotmatrix_make_field "${lp_vcs_branch}" "${DOTMATRIX_COLOR_GLOW[@]}" + __dotmatrix_make_field "${lp_vcs_branch}" ${DOTMATRIX_COLOR_GLOW[@]+"${DOTMATRIX_COLOR_GLOW[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" if _lp_vcs_bookmark; then - __dotmatrix_make_field ":${lp_vcs_bookmark}" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field ":${lp_vcs_bookmark}" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" fi if _lp_vcs_tag; then - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_LITE[@]}" - __dotmatrix_make_field "${lp_vcs_tag}" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} + __dotmatrix_make_field "${lp_vcs_tag}" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}${dotmatrix_field}" fi elif _lp_vcs_bookmark; then - __dotmatrix_make_field "${lp_vcs_bookmark}" "${DOTMATRIX_COLOR_GLOW[@]}" + __dotmatrix_make_field "${lp_vcs_bookmark}" ${DOTMATRIX_COLOR_GLOW[@]+"${DOTMATRIX_COLOR_GLOW[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" elif _lp_vcs_tag; then - __dotmatrix_make_field "${lp_vcs_tag}" "${DOTMATRIX_COLOR_GLOW[@]}" + __dotmatrix_make_field "${lp_vcs_tag}" ${DOTMATRIX_COLOR_GLOW[@]+"${DOTMATRIX_COLOR_GLOW[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" else _lp_vcs_commit_id branch="${lp_vcs_commit_id:0:7}" - __dotmatrix_make_field "${lp_vcs_commit_id:0:7}" "${DOTMATRIX_COLOR_GLOW[@]}" + __dotmatrix_make_field "${lp_vcs_commit_id:0:7}" ${DOTMATRIX_COLOR_GLOW[@]+"${DOTMATRIX_COLOR_GLOW[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" fi # vcs branch # Diff stats local ret has_lines= if _lp_vcs_uncommitted_files; then - __dotmatrix_make_sep_link "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_sep_link ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}" _lp_vcs_unstaged_lines; ret=$? @@ -698,38 +754,38 @@ __dotmatrix_prompt_vcs() { if (( ret == 0 )); then if [[ "$lp_vcs_unstaged_i_lines" == "$lp_vcs_unstaged_d_lines" ]] ; then # If same number of lines inserted and deleted: display a single number. - __dotmatrix_make_field "±$lp_vcs_unstaged_i_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "±$lp_vcs_unstaged_i_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines="${dotmatrix_field}" else - __dotmatrix_make_field "+$lp_vcs_unstaged_i_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "+$lp_vcs_unstaged_i_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines="${dotmatrix_field}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_NOTE[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_NOTE[@]+"${DOTMATRIX_COLOR_SEP_NOTE[@]}"} has_lines+="$dotmatrix_sep" - __dotmatrix_make_field "-$lp_vcs_unstaged_d_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "-$lp_vcs_unstaged_d_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines+="${dotmatrix_field}" fi elif (( ret == 1 )); then - __dotmatrix_make_field "±0" "${DOTMATRIX_COLOR_DARK[@]}" + __dotmatrix_make_field "±0" ${DOTMATRIX_COLOR_DARK[@]+"${DOTMATRIX_COLOR_DARK[@]}"} has_lines="+${dotmatrix_field}" else _lp_vcs_uncommitted_lines if [[ "$lp_vcs_uncommitted_i_lines" == "$lp_vcs_uncommitted_d_lines" ]] ; then - __dotmatrix_make_field "±$lp_vcs_uncommitted_i_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "±$lp_vcs_uncommitted_i_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines="${dotmatrix_field}" else - __dotmatrix_make_field "+$lp_vcs_uncommitted_i_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "+$lp_vcs_uncommitted_i_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines="${dotmatrix_field}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_NOTE[@]}" + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_NOTE[@]+"${DOTMATRIX_COLOR_SEP_NOTE[@]}"} has_lines+="$dotmatrix_sep" - __dotmatrix_make_field "-$lp_vcs_uncommitted_d_lines" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "-$lp_vcs_uncommitted_d_lines" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} has_lines+="${dotmatrix_field}" fi fi if (( LP_ENABLE_VCS_DIFFSTATS )) ; then _DOTMATRIX_VCS+="${has_lines}" else - __dotmatrix_make_field "${DOTMATRIX_DIFF}" "${DOTMATRIX_COLOR_NOTE[@]}" + __dotmatrix_make_field "${DOTMATRIX_DIFF}" ${DOTMATRIX_COLOR_NOTE[@]+"${DOTMATRIX_COLOR_NOTE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" fi # LP_ENABLE_VCS_DIFFSTATS fi # uncommitted files @@ -749,40 +805,40 @@ __dotmatrix_prompt_vcs() { # fi fi if [[ -n "$stash" || -n "$untracked" || -n "$head" ]] ; then - if [[ -z "$has_lines" ]] ; then - __dotmatrix_make_sep_mid "${DOTMATRIX_COLOR_SEP_FAIR[@]}" + if [[ -z $has_lines ]] ; then + __dotmatrix_make_sep_mid ${DOTMATRIX_COLOR_SEP_FAIR[@]+"${DOTMATRIX_COLOR_SEP_FAIR[@]}"} _DOTMATRIX_VCS+=" $dotmatrix_sep " else - __dotmatrix_make_sep_plug "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_sep_plug ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="$dotmatrix_sep" fi fi if [[ -n "$stash" ]] ; then - __dotmatrix_make_field "$stash" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "$stash" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="$dotmatrix_field" if [[ -n "$untracked" ]] ; then - __dotmatrix_make_field "$untracked" "${DOTMATRIX_COLOR_LITE[@]}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_LITE[@]}" + __dotmatrix_make_field "$untracked" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}${dotmatrix_field}" fi if [[ -n "$head" ]] ; then - __dotmatrix_make_field "$head" "${DOTMATRIX_COLOR_LITE[@]}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_LITE[@]}" + __dotmatrix_make_field "$head" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}${dotmatrix_field}" fi else # no stash if [[ -n "$untracked" ]] ; then - __dotmatrix_make_field "$untracked" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "$untracked" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" if [[ -n "$head" ]] ; then - __dotmatrix_make_field "$head" "${DOTMATRIX_COLOR_LITE[@]}" - __dotmatrix_make_sep_soft "${DOTMATRIX_COLOR_SEP_LITE[@]}" + __dotmatrix_make_field "$head" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} + __dotmatrix_make_sep_soft ${DOTMATRIX_COLOR_SEP_LITE[@]+"${DOTMATRIX_COLOR_SEP_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_sep}${dotmatrix_field}" fi else # no untracked if [[ -n "$head" ]] ; then - __dotmatrix_make_field "$head" "${DOTMATRIX_COLOR_LITE[@]}" + __dotmatrix_make_field "$head" ${DOTMATRIX_COLOR_LITE[@]+"${DOTMATRIX_COLOR_LITE[@]}"} _DOTMATRIX_VCS+="${dotmatrix_field}" fi fi @@ -800,10 +856,10 @@ __dotmatrix_prompt_vcs() { __dotmatrix_join_fields() { dotmatrix_join_fields="" - local sep=${1-} + local sep="${1-}" shift if [[ -n "$@" ]] ; then - local first_field=${1-} + local first_field="${1-}" shift dotmatrix_join_fields="${first_field}" for f in "$@"; do @@ -813,12 +869,16 @@ __dotmatrix_join_fields() { } __dotmatrix_make_field() { # string, (color array) - local lp_terminal_format string=${1-} - shift - + local lp_terminal_format string="${1-}" [[ -z $string ]] && return 1 - lp_terminal_format "$@" + shift + local format="$@" + if [[ -z $format ]] ; then + lp_terminal_format -1 + else + lp_terminal_format $format + fi dotmatrix_field="${lp_terminal_format}${DOTMATRIX_SPACE_FIELD}${string}${DOTMATRIX_SPACE_FIELD}" } @@ -830,11 +890,18 @@ __dotmatrix_make_sep_plug() { # color # -2 = keep last color # -3 = set last fg to last bg (and conversely) local lp_terminal_format sep + + local bg="${2-}" + [[ -z $bg ]] && bg=-1 + local fbg="${6-}" + [[ -z $fbg ]] && fbg=-1 + sep="${DOTMATRIX_PLUG}" - if [[ "${_lp_last_ab_color-}" == "${2-}" ]] ; then + if [[ "${_lp_last_ab_color-}" == "$bg" ]] ; then sep="${DOTMATRIX_MEAN}" fi - lp_terminal_format -3 "${2-}" 0 0 -1 "${6-}" + + lp_terminal_format -3 $bg 0 0 -1 $fbg dotmatrix_sep="${DOTMATRIX_SPACE_VOID}${lp_terminal_format}${sep}${DOTMATRIX_SPACE_VOID}" } @@ -842,51 +909,84 @@ __dotmatrix_make_sep_link() { # color local lp_terminal_format dotmatrix_sep="" - lp_terminal_format -3 -1 0 0 -1 "${6-}" + local fg="${2-}" + [[ -z $fg ]] && fg=-1 + local fbg="${6-}" + [[ -z $fbg ]] && fbg=-1 + + lp_terminal_format -3 -1 0 0 -1 $fbg dotmatrix_sep+="${DOTMATRIX_SPACE_VOID}${lp_terminal_format}${DOTMATRIX_LINK[0]}" - lp_terminal_format 244 -1 0 0 -1 "${6-}" + local dsfg="${DOTMATRIX_COLOR_SEP_FAIR[0]}" + [[ -z $dsfg ]] && dsfg=-1 + lp_terminal_format ${dsf} -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_LINK[1]}" - lp_terminal_format "${2-}" -1 0 0 -1 "${6-}" + lp_terminal_format $fg -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_LINK[2]}${DOTMATRIX_SPACE_FILL}" } __dotmatrix_make_sep_open() { # color local lp_terminal_format - lp_terminal_format -3 -1 0 0 -1 "${6-}" + local fg="${2-}" + [[ -z $fg ]] && fg=-1 + local fbg="${6-}" + [[ -z $fbg ]] && fbg=-1 + + lp_terminal_format -3 -1 0 0 -1 $fbg dotmatrix_sep+="${DOTMATRIX_SPACE_VOID}${lp_terminal_format}${DOTMATRIX_OPEN[0]}" - lp_terminal_format 244 -1 0 0 -1 "${6-}" + local dsfg="${DOTMATRIX_COLOR_SEP_FAIR[0]}" + [[ -z $dsfg ]] && dsfg=-1 + lp_terminal_format ${dsfg} -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_OPEN[1]}" - lp_terminal_format "${2-}" -1 0 0 -1 "${6-}" + lp_terminal_format $fg -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_OPEN[2]}${DOTMATRIX_SPACE_FILL}" } __dotmatrix_make_sep_dang() { # color local lp_terminal_format - lp_terminal_format -3 -1 0 0 -1 "${6-}" + local fg="${2-}" + [[ -z $fg ]] && fg=-1 + local fbg="${6-}" + [[ -z $fbg ]] && fbg=-1 + + lp_terminal_format -3 -1 0 0 -1 $fbg dotmatrix_sep+="${DOTMATRIX_SPACE_VOID}${lp_terminal_format}${DOTMATRIX_DANG[0]}" - lp_terminal_format 220 -1 0 0 -1 "${6-}" + local dcwfg="${DOTMATRIX_COLOR_WARN[1]}" + [[ -z $dcwfg ]] && dcwfg=-1 + lp_terminal_format ${dcwfg} -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_DANG[1]}" - lp_terminal_format "${2-}" -1 0 0 -1 "${6-}" + lp_terminal_format $fg -1 0 0 -1 $fbg dotmatrix_sep+="${lp_terminal_format}${DOTMATRIX_DANG[2]}${DOTMATRIX_SPACE_FILL}" } __dotmatrix_make_sep_soft() { # color local lp_terminal_format - lp_terminal_format "${1-}" -2 0 0 "${5-}" + + local fg="${1-}" + [[ -z $fg ]] && fg=-1 + local fbg="${5-}" + [[ -z $fbg ]] && fbg=-1 + + lp_terminal_format $fg -2 0 0 $fbg dotmatrix_sep="${lp_terminal_format}${DOTMATRIX_SOFT}" } __dotmatrix_make_sep_mid() { # color local lp_terminal_format - lp_terminal_format "${1-}" -2 0 0 "${5-}" + + local fg="${1-}" + [[ -z $fg ]] && fg=-1 + local fbg="${5-}" + [[ -z $fbg ]] && fbg=-1 + + lp_terminal_format $fg -2 0 0 $fbg dotmatrix_sep="${lp_terminal_format}${DOTMATRIX_MEAN}" } @@ -898,7 +998,9 @@ __dotmatrix_make_sep_last() { # no arg __dotmatrix_make_sep_side() { # no arg local lp_terminal_format - lp_terminal_format "${DOTMATRIX_COLOR_SEP_FAIR[@]}" + local dsf=${DOTMATRIX_COLOR_SEP_FAIR[@]+"${DOTMATRIX_COLOR_SEP_FAIR[@]}"} + [[ -z $dsf ]] && dsf=-1 + lp_terminal_format ${dsf} dotmatrix_sep="${lp_terminal_format}${DOTMATRIX_ENDS[1]}" }