diff options
| -rw-r--r-- | AGENTS.md | 5 | ||||
| -rwxr-xr-x | install.sh | 11 |
2 files changed, 11 insertions, 5 deletions
@@ -186,8 +186,9 @@ tab, so each producer reports on every run and a consumer that caught up disappears by itself. The producers are `udt-grub`, `udt-homepage`, `install.sh`'s SDDM block (only the steps still missing), and `install.sh` itself, which reruns itself as a child and hands its whole output to an -`install` tab on every run, whoever called it: the usual caller is the -appearance panel, not a terminal. So its output is written for that tab, a +`install` tab whenever it failed or printed a command, whoever called it, and +clears the tab otherwise, so a login's wallpaper restore does not reopen an +old recap. The usual caller is the appearance panel, not a terminal. So its output is written for that tab, a summary rather than a file list. A line indented two spaces is a command with a copy button; the rest is prose. It replaced notification balloons, which could not be kept open while pasting into a root shell. @@ -8,14 +8,19 @@ repo="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" target="$HOME/.config/rofi/udt" # Everything this prints also becomes the install tab of quickshell's steps -# window, from whichever caller: the usual one is the appearance panel, not a -# terminal, so the hints are assumed wanted on screen. The script reruns -# itself as a child so the output can be both shown live and kept whole. +# window when there is something to do, from whichever caller: the usual one +# is the appearance panel, not a terminal, so the hints are assumed wanted on +# screen. The script reruns itself as a child so the output can be both shown +# live and kept whole. if [ -z "${UDT_INSTALL_CHILD:-}" ]; then log="$(mktemp)" trap 'rm -f "$log"' EXIT rc=0 UDT_INSTALL_CHILD=1 "$repo/install.sh" "$@" 2>&1 | tee "$log" || rc=$? + # Only a failure or a command to run (a line indented two spaces) is + # something to do; otherwise the tab is cleared, so a login's wallpaper + # restore, which pokes the window, does not reopen a stale recap. + if [ "$rc" -eq 0 ] && ! grep -q '^ ' "$log"; then : > "$log"; fi "$repo/bin/udt-steps" install < "$log" exit "$rc" fi |
