Commit Graph

58 Commits

Author SHA1 Message Date
shuki
f21f652fea Add web GUI mode via textual-serve
Run `gniza web` or `gniza --web` to serve the TUI as a web app
on port 8080. Use --port to change. Requires textual-serve.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 00:52:59 +02:00
shuki
a434626cb3 Replace Switch with Select dropdown for Enabled field
Switch widget was not rendering visibly. Use a Yes/No Select
dropdown instead which works reliably.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:52:09 +02:00
shuki
111b5ee607 Fix logo display and side-by-side layout
Use full block-character logo from bin/gniza, place logo Static
and OptionList directly in Horizontal container without extra
nesting. Style with proper widths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:51:01 +02:00
shuki
85eb4232c8 Layout logo on left, menu on right in main screen
Use Horizontal container with logo-panel and menu-panel side by side,
centered vertically in the terminal.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:50:07 +02:00
shuki
b13514e478 Replace main menu buttons with OptionList for arrow key navigation
OptionList supports up/down arrow keys and Enter to select,
giving a proper menu feel instead of Tab-through buttons.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:49:06 +02:00
shuki
fd0ccefad0 Make main menu responsive to terminal size
Use 1fr width with max-width, reduce button height/margins,
and enable overflow scroll so all items fit smaller terminals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:48:15 +02:00
shuki
9fb8aeb1ed Fix Enabled switch not visible in target edit screen
Give the switch Horizontal container an explicit ID and CSS
with height:auto and proper alignment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:47:41 +02:00
shuki
587149f062 Add Python Textual TUI replacing gum-based bash TUI
New tui/ package with 14 screens (main menu, backup, restore, targets,
remotes, snapshots, verify, retention, schedule, logs, settings, wizard),
3 custom widgets (folder picker, confirm dialog, operation log), async
backend wrapper, pure-Python config parser, and TCSS theme.

bin/gniza now launches Textual TUI when available, falls back to gum.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 23:39:48 +02:00