aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Williams <don.e.williams@gmail.com>2026-01-15 02:02:37 -0500
committerDon Williams <don.e.williams@gmail.com>2026-01-15 02:02:37 -0500
commitb8c823fbab99f857c933e9b45609ab21cee55f31 (patch)
treea739664732d21309d374746302553ddf5b85f4f2
parent0886304d0fe31f88343391f5405465f90d2ac8fe (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.txt52
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.
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage