diff --git a/install/helpers/all.sh b/install/helpers/all.sh index 57f53fb..0fc4810 100644 --- a/install/helpers/all.sh +++ b/install/helpers/all.sh @@ -1,6 +1,4 @@ source $OMARCHY_INSTALL/helpers/chroot.sh -source $OMARCHY_INSTALL/helpers/layout.sh -source $OMARCHY_INSTALL/helpers/logo.sh -source $OMARCHY_INSTALL/helpers/gum.sh +source $OMARCHY_INSTALL/helpers/presentation.sh source $OMARCHY_INSTALL/helpers/errors.sh source $OMARCHY_INSTALL/helpers/logging.sh diff --git a/install/helpers/gum.sh b/install/helpers/gum.sh deleted file mode 100644 index 34508e0..0000000 --- a/install/helpers/gum.sh +++ /dev/null @@ -1,18 +0,0 @@ -# Ensure we have gum available -if ! command -v gum &>/dev/null; then - sudo pacman -S --needed --noconfirm gum -fi - -# Tokyo Night theme for gum confirm -export GUM_CONFIRM_PROMPT_FOREGROUND="6" # Cyan for prompt -export GUM_CONFIRM_SELECTED_FOREGROUND="0" # Black text on selected -export GUM_CONFIRM_SELECTED_BACKGROUND="2" # Green background for selected -export GUM_CONFIRM_UNSELECTED_FOREGROUND="7" # White for unselected -export GUM_CONFIRM_UNSELECTED_BACKGROUND="0" # Black background for unselected -export PADDING="0 0 0 $PADDING_LEFT" # Gum Style -export GUM_CHOOSE_PADDING="$PADDING" -export GUM_FILTER_PADDING="$PADDING" -export GUM_INPUT_PADDING="$PADDING" -export GUM_SPIN_PADDING="$PADDING" -export GUM_TABLE_PADDING="$PADDING" -export GUM_CONFIRM_PADDING="$PADDING" diff --git a/install/helpers/layout.sh b/install/helpers/layout.sh deleted file mode 100644 index 63dba55..0000000 --- a/install/helpers/layout.sh +++ /dev/null @@ -1,20 +0,0 @@ -# Get terminal size from /dev/tty (works in all scenarios: direct, sourced, or piped) -if [ -e /dev/tty ]; then - TERM_SIZE=$(stty size 2>/dev/null max) max = length } END { print max+0 }' "$LOGO_PATH" 2>/dev/null || echo 0) -export LOGO_HEIGHT=$(wc -l <"$LOGO_PATH" 2>/dev/null || echo 0) - -clear_logo() { - printf "\033[H\033[2J" # Clear screen and move cursor to top-left - gum style --foreground 2 --padding "1 0 0 $PADDING_LEFT" "$(<"$LOGO_PATH")" -} diff --git a/install/helpers/presentation.sh b/install/helpers/presentation.sh new file mode 100644 index 0000000..70cab2e --- /dev/null +++ b/install/helpers/presentation.sh @@ -0,0 +1,48 @@ +# Ensure we have gum available +if ! command -v gum &>/dev/null; then + sudo pacman -S --needed --noconfirm gum +fi + +# Get terminal size from /dev/tty (works in all scenarios: direct, sourced, or piped) +if [ -e /dev/tty ]; then + TERM_SIZE=$(stty size 2>/dev/null max) max = length } END { print max+0 }' "$LOGO_PATH" 2>/dev/null || echo 0) +export LOGO_HEIGHT=$(wc -l <"$LOGO_PATH" 2>/dev/null || echo 0) + +export PADDING_LEFT=$((($TERM_WIDTH - $LOGO_WIDTH) / 2)) +export PADDING_LEFT_SPACES=$(printf "%*s" $PADDING_LEFT "") + +# Tokyo Night theme for gum confirm +export GUM_CONFIRM_PROMPT_FOREGROUND="6" # Cyan for prompt +export GUM_CONFIRM_SELECTED_FOREGROUND="0" # Black text on selected +export GUM_CONFIRM_SELECTED_BACKGROUND="2" # Green background for selected +export GUM_CONFIRM_UNSELECTED_FOREGROUND="7" # White for unselected +export GUM_CONFIRM_UNSELECTED_BACKGROUND="0" # Black background for unselected +export PADDING="0 0 0 $PADDING_LEFT" # Gum Style +export GUM_CHOOSE_PADDING="$PADDING" +export GUM_FILTER_PADDING="$PADDING" +export GUM_INPUT_PADDING="$PADDING" +export GUM_SPIN_PADDING="$PADDING" +export GUM_TABLE_PADDING="$PADDING" +export GUM_CONFIRM_PADDING="$PADDING" + +clear_logo() { + printf "\033[H\033[2J" # Clear screen and move cursor to top-left + gum style --foreground 2 --padding "1 0 0 $PADDING_LEFT" "$(<"$LOGO_PATH")" +}