diff options
| author | Don Williams <don.e.williams@gmail.com> | 2026-01-15 02:02:37 -0500 |
|---|---|---|
| committer | Don Williams <don.e.williams@gmail.com> | 2026-01-15 02:02:37 -0500 |
| commit | b8c823fbab99f857c933e9b45609ab21cee55f31 (patch) | |
| tree | a739664732d21309d374746302553ddf5b85f4f2 | |
| parent | 0886304d0fe31f88343391f5405465f90d2ac8fe (diff) | |
triage file
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: copy-menu-issue.txt
| -rw-r--r-- | copy-menu-issue.txt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/copy-menu-issue.txt b/copy-menu-issue.txt new file mode 100644 index 00000000..94672040 --- /dev/null +++ b/copy-menu-issue.txt @@ -0,0 +1,52 @@ +Summary: copy.sh menu issues on Debian host + +Symptoms +- Running copy.sh shows a black screen with a cursor; no visible menu. +- Running scripts/tui_menu.py directly renders an ncurses menu, but Express appears disabled. +- The host has ~/.config/hypr/v2.3.18 present. + +Changes already made (in repo) +- Added Python TUI (scripts/tui_menu.py) with backends: Textual -> curses -> basic; mouse + keyboard; hotkeys; Help panel. +- Updated scripts/copy_menu.sh to prefer Python TUI and to accept COPY_TUI_BACKEND=auto|textual|curses|basic, passing --express-supported accordingly. +- Hardened curses drawing to avoid blank screens (use_default_colors, safer bounds). +- Fixed Express detection in copy.sh to pick the highest version marker (sort -V) under ~/.config/hypr (vX.Y.Z). + +Why Express shows disabled when running the TUI directly +- scripts/tui_menu.py defaults to --express-supported=0 unless told otherwise. When launched by copy.sh, it is passed the correct flag. Running it manually without the flag will show Express as disabled. + +Immediate workaround on the Debian host +1) Ensure you have the latest repo changes + git --no-pager status + git pull --ff-only + +2) Force the curses backend to avoid the black Textual screen + # one-shot + COPY_TUI_BACKEND=curses ./copy.sh + # or set permanently for the session + export COPY_TUI_BACKEND=curses + ./copy.sh + +3) If curses ever fails to render, use the basic fallback + COPY_TUI_BACKEND=basic ./copy.sh + +4) To test the TUI directly with Express allowed + python3 scripts/tui_menu.py --express-supported 1 --backend curses + +Verify Express detection on the host +- Confirm the installed version marker and what copy.sh will see: + find "$HOME/.config/hypr" -maxdepth 1 -type f -name 'v*.*.*' -printf '%f\n' | sed 's/^v//' | sort -V | tail -n1 +- Expected output: 2.3.18 (or newer). If empty, create the marker: + : > "$HOME/.config/hypr/v2.3.18" + +If black screen persists with copy.sh +- Dump debug logs for the menu selection phase: + set -x; COPY_TUI_BACKEND=curses bash -c 'source scripts/copy_menu.sh; show_copy_menu 1; echo "CHOICE=$COPY_MENU_CHOICE"'; set +x +- Check TERM and Python TUI dependency situations: + echo "$TERM" + command -v python3 || true + python3 -c "import curses; print('curses OK')" || true + +Notes for future session +- copy_menu.sh already honors COPY_TUI_BACKEND and falls back to whiptail/text if Python fails. +- copy.sh now uses highest version marker to enable Express; the marker must be a file named exactly vX.Y.Z under ~/.config/hypr. +- If this host lacks Textual (rich) and shows black screen in Textual, forcing curses via COPY_TUI_BACKEND=curses is the recommended run mode on Debian for now. |
