build_tools.syllable_walk_tui.core.app

Main Textual application for Syllable Walker TUI.

This module contains the primary App class, modal screens, and layout widgets for the interactive terminal interface.

Architecture: - Main view: Side-by-side patch configuration (always visible) - Modal screens: Blended Walk (v) and Analysis (a) views - Keyboard-first navigation with configurable keybindings

Classes

SyllableWalkerApp

Main Textual application for Syllable Walker TUI.

Module Contents

class build_tools.syllable_walk_tui.core.app.SyllableWalkerApp[source]

Bases: textual.app.App

Main Textual application for Syllable Walker TUI.

Provides interactive interface for exploring phonetic space through side-by-side patch configuration and real-time generation.

Default Keybindings:

q, Ctrl+Q: Quit application ?, F1: Show help v: View blended walk (modal screen) a: View analysis (modal screen) 1: Select corpus for Patch A 2: Select corpus for Patch B

Note

All keybindings are user-configurable via ~/.config/pipeworks_tui/keybindings.toml

Initialize application with default state.

BINDINGS

The default key bindings.

CSS_PATH = 'styles.tcss'

File paths to load CSS from.

state
keybindings
theme = 'nord'

The name of the currently active theme.

compose()[source]

Create application layout.

on_mount()[source]

Handle app mount event.

NOTE: Previously disabled focus on ALL container widgets, but this broke tab order. Now we only disable focus on the StatsPanel container since it has no focusable children and shouldn’t be in the tab navigation path.

on_button_select_corpus_a()[source]

Handle Patch A corpus selection button press.

on_button_select_corpus_b()[source]

Handle Patch B corpus selection button press.

on_button_generate_a()[source]

Generate walks for patch A.

on_button_generate_b()[source]

Generate walks for patch B.

on_button_generate_candidates_a()[source]

Generate candidates for Patch A using name_combiner (mirrors CLI behavior).

on_button_generate_candidates_b()[source]

Generate candidates for Patch B using name_combiner (mirrors CLI behavior).

on_button_select_names_a()[source]

Select names for Patch A using name_selector (mirrors CLI behavior).

on_button_select_names_b()[source]

Select names for Patch B using name_selector (mirrors CLI behavior).

on_button_export_txt_a()[source]

Export selected names to TXT file for Patch A.

on_button_export_txt_b()[source]

Export selected names to TXT file for Patch B.

action_select_corpus_a()[source]

Action: Open corpus selector for Patch A (keybinding: 1).

action_select_corpus_b()[source]

Action: Open corpus selector for Patch B (keybinding: 2).

action_view_blended()[source]

Action: Open blended walk modal screen (keybinding: v).

action_view_analysis()[source]

Action: Open analysis modal screen (keybinding: a).

action_view_render()[source]

Action: Open render screen for styled name display (keybinding: r).

action_view_package()[source]

Action: Open package screen for bundling selections (keybinding: p).

action_view_database_a()[source]

Action: Open database viewer for Patch A (keybinding: d).

action_view_database_b()[source]

Action: Open database viewer for Patch B (keybinding: D).

action_help()[source]

Show help information.

action_quit()[source]

Quit the application.

on_int_spinner_changed(event)[source]

Handle integer spinner value changes.

on_float_slider_changed(event)[source]

Handle float slider value changes.

on_seed_changed(event)[source]

Handle seed input changes.

on_select_changed(event)[source]

Handle Select widget changes (e.g., name class dropdown).

on_profile_selected(event)[source]

Handle profile option selection (radio button click).