diff --git a/scripts/main.sh b/scripts/main.sh index 4644928..cc1cf40 100755 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -27,7 +27,38 @@ function get_datetime { function show_reminders { local datetime datetime=$(get_datetime) - tmux display-popup -T "#[align=centre]Today's Reminders - $datetime" -w 60% -h 60% -x C -y C -E -- "$CURRENT_DIR/show_reminders.sh" + + # Ottieni la larghezza della finestra tmux corrente + local tmux_width + tmux_width=$(tmux display-message -p '#{window_width}') + + # Esporta la larghezza per lo script + export TERM_WIDTH="$tmux_width" + + # Esegui lo script per generare l'output e ottenere le informazioni + local output + output=$("$CURRENT_DIR/show_reminders.sh") + + local tmp_file + local max_line_width + tmp_file=$(echo "$output" | head -n1) + max_line_width=$(echo "$output" | tail -n1) + + # Imposta larghezza minima 40, massima = larghezza finestra tmux + local popup_width + if [ -z "$max_line_width" ] || [ "$max_line_width" -lt 40 ]; then + popup_width=40 + elif [ "$max_line_width" -gt "$tmux_width" ]; then + popup_width="99%" + else + # Aggiungi qualche carattere per margini + popup_width=$((max_line_width + 4)) + if [ "$popup_width" -gt "$tmux_width" ]; then + popup_width="$tmux_width" + fi + fi + + tmux display-popup -T "#[align=centre]Today's Reminders - $datetime" -w "$popup_width" -h 60% -x C -y C -E -- "$CURRENT_DIR/show_reminders.sh" "$tmp_file" } function show_calendar { diff --git a/scripts/show_reminders.sh b/scripts/show_reminders.sh index bd1e735..ea0b67d 100755 --- a/scripts/show_reminders.sh +++ b/scripts/show_reminders.sh @@ -1,5 +1,25 @@ #!/usr/bin/env bash export LESSCHARSET=utf-8 -TERM_WIDTH=$(tput cols) -rem -m -b1 -gaa -q -aa -iinclude_todo=1 -@2 -w"$TERM_WIDTH" | less -r -S +g --status-line -PM"Riga %lt/%L (%Pb\%)" +unset LESS + +# Se viene passato un file temporaneo come argomento, mostra il contenuto +if [ -n "$1" ] && [ -f "$1" ]; then + less -f -r -S +g --status-line -PM"Riga %lt/%L (%Pb\%)" "$1" + rm -f "$1" + exit 0 +fi + +# Altrimenti, genera l'output e calcola la larghezza +TERM_WIDTH=${TERM_WIDTH:-$(tput cols)} +TMP_FILE=$(mktemp) + +# Cattura l'output di rem +rem -m -b1 -gaa -q -aa -iinclude_todo=1 -@2 -w"$TERM_WIDTH" >"$TMP_FILE" + +# Calcola la lunghezza massima delle righe +MAX_LINE_WIDTH=$(awk '{ if (length > max) max = length } END { print max }' "$TMP_FILE") + +# Restituisce il file temporaneo e la larghezza massima +echo "$TMP_FILE" +echo "$MAX_LINE_WIDTH"