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

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