feat(reminders): dynamically adjust popup width based on content

- Calculate the maximum line width of the reminders output in
  `show_reminders.sh`
- Pass the calculated width and a temporary file to the tmux popup in
  `main.sh`
- Ensure popup width is at least 40 and does not exceed the tmux window
  width
- Improve display by preventing horizontal scrolling and better fitting
  content
This commit is contained in:
2025-12-27 12:12:58 +01:00
parent 2f5690f08f
commit 487937f8cf
2 changed files with 54 additions and 3 deletions

View File

@@ -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"