BREAKING CHANGE: remove variants and use presets instead

This commit is contained in:
Johann Dreo 2023-02-19 20:01:32 +01:00
commit 906759634c
9 changed files with 165 additions and 132 deletions

View file

@ -98,7 +98,7 @@ For example:
# Load Liquid Prompt.
source ~/liquidprompt/liquidprompt
# Configure the desired variant.
DOTMATRIX_VARIANT="chevron"
source ~/lp-dotmatrix/presets/variant-chevron.conf
# Load the theme.
source ~/lp-dotmatrix/dotmatrix.theme && lp_theme dotmatrix
```
@ -165,23 +165,31 @@ The following options are **not honored**:
### Theme Configuration
#### Presets
Some example configurations are provided in the `/presets/` directory.
Note: the order in which you load the presets may be important.
When changing the colors of the first line, presets needs to be loaded
from your shell configuration and not just sourced in the prompt.
A first set is are called "variants" and mainly change the segment joints,
but can also impact the icons on some variants:
- `source presets/variant-chevron.conf" (the *recommended*, need a Nerd-fonts font),
- `source presets/variant-slant.conf" (need a Nerd-fonts font),
- `source presets/variant-round.conf" (need a Nerd-fonts font),
- `source presets/variant-text.conf" (the one that works anywhere).
A second set changes the colors:
- `source presets/colors_green-red.conf` (warning in red, notes in green),
- `source presets/colors_cyan-magenta.conf` (warning in magenta, notes in cyan),
- `source presets/colors_high-contrast.conf` (segments are very white and very black instead of slightly grayish),
#### High-level
**DOTMATRIX_VARIANT** *string = "dotmatrix"*
The variant of the theme.
This mainly change the segments separation style,
but can also impact the icons on some variants.
Allowed values:
- "dotmatrix" (the *default*),
- "chevron" (the *recommended*, need a Nerd-fonts font),
- "slant" (need a Nerd-fonts font),
- "round" (need a Nerd-fonts font),
- "text" (the one that works anywhere).
**DOTMATRIX_SPACED** *boolean = 1*
If set to false, this flag will configure a compact prompt,

View file

@ -46,126 +46,28 @@ _lp_dotmatrix_theme_activate() {
DOTMATRIX_MARK_ERROR=${DOTMATRIX_MARK_ERROR:-""}
# Sets of characters
DOTMATRIX_VARIANT=${DOTMATRIX_VARIANT:-"dotmatrix"}
if [[ "${DOTMATRIX_VARIANT}" == "dotmatrix" ]] ; then
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1}
# Dotmatrix theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"⌂"}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"♟"}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-"╟┘"}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-"■"}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-"▛"}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"▞"}
# Separator arrays (left center right)
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=("┫" "┃" "┣")
# Dotmatrix theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"⌂"}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"♟"}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-"╟┘"}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-"■"}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-"▛"}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"▞"}
# Separator arrays (left center right)
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=${DOTMATRIX_HOST_LOCAL:-"lcl"}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"me"}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-"VCS"}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-">"}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-"▌"}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"┃"}
# Separator arrays (left center right)
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=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1}
# Number of spaces to add
if [[ ${DOTMATRIX_SPACED} == 0 ]] ; then

View file

@ -0,0 +1,4 @@
DOTMATRIX_COLOR_NOTE=( 15 30 0 0 15 2)
DOTMATRIX_COLOR_WARN=(231 128 1 0 0 9)

View file

@ -0,0 +1,4 @@
DOTMATRIX_COLOR_NOTE=( 15 28 0 0 15 2)
DOTMATRIX_COLOR_WARN=(220 160 1 0 0 9)

View file

@ -0,0 +1,22 @@
# Color arrays defaults: fg bg b u ffg fbg
DOTMATRIX_COLOR_DARK=( 15 0 0 0 15 0)
DOTMATRIX_COLOR_LITE=( 0 15 0 0 0 15)
DOTMATRIX_COLOR_GLOW=( 0 15 1 0 0 15)
DOTMATRIX_COLOR_NOTE=( 15 4 0 0 15 4)
DOTMATRIX_COLOR_WARN=( 9 11 1 0 9 11)
DOTMATRIX_COLOR_FAIR=( 0 8 0 0 0 8)
DOTMATRIX_COLOR_PATH_SHORT=( 15 0 0 0 0 15)
DOTMATRIX_COLOR_PATH_VCS=( 15 0 0 1 0 15)
DOTMATRIX_COLOR_PATH_LAST=( 15 0 1 0 0 15)
DOTMATRIX_COLOR_LINE=(15 -1 0 0 15 -1)
DOTMATRIX_COLOR_LINE_START=(15 -1 1 0 15 -1)
DOTMATRIX_COLOR_LINE_END=( 0 -1 1 0 15 -1)
DOTMATRIX_COLOR_MARK=(15 -1 0 0 15 -1)
DOTMATRIX_COLOR_SEP_DARK=( 15 -2 0 0 15 -2)
DOTMATRIX_COLOR_SEP_FAIR=( 8 -2 0 0 0 -2)
DOTMATRIX_COLOR_SEP_LITE=( 15 -2 0 0 15 -2)

View file

@ -0,0 +1,23 @@
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1}
# Powerline chevron theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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=("" "┃" "")

View file

@ -0,0 +1,23 @@
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1}
# Powerline round theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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=("" "┃" "")

View file

@ -0,0 +1,23 @@
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-1}
# Powerline slanted theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-""}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-""}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-""}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-""}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-""}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-""}
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=("" "┃" "")

24
presets/variant-text.conf Normal file
View file

@ -0,0 +1,24 @@
DOTMATRIX_SPACED=${DOTMATRIX_SPACED:-0}
# Dotmatrix theme
DOTMATRIX_HOST_LOCAL=${DOTMATRIX_HOST_LOCAL:-"lcl"}
DOTMATRIX_USER_LOCAL=${DOTMATRIX_USER_LOCAL:-"me"}
DOTMATRIX_VCS=${DOTMATRIX_VCS:-"VCS"}
DOTMATRIX_MARK=${DOTMATRIX_MARK:-">"}
DOTMATRIX_LINE=${DOTMATRIX_LINE:-"━"}
DOTMATRIX_PLUG=${DOTMATRIX_PLUG:-"▌"}
DOTMATRIX_SOFT=${DOTMATRIX_SOFT:-""}
DOTMATRIX_MEAN=${DOTMATRIX_MEAN:-"┃"}
# Separator arrays (left center right)
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=("┫" "┃" "┣")