Skip to content
kleer001 edited this page Feb 6, 2025 · 6 revisions

Text Loom 📝🧵

A terminal user interface for creating and managing node networks with parameter controls and global variables. Text Loom provides a powerful environment for building and manipulating node-based workflows through a text interface.

Core Components

Primary Workspace

  • Node Network - Central workspace for creating and connecting nodes. Displays node states, connections, and hierarchies using visual indicators.
  • Parameters - Right panel showing properties of selected nodes.
  • Globals - Right Top panel. System-wide variables accessible across the network.

Execution and Output

  • Status Indicators - Visual symbols (◆,◇,▪,▫) showing node states throughout the processing lifecycle.
  • Output Display - Shows formatted results from node evaluations with clear item separation.
  • Status Window - Real-time system message monitoring, capturing stdout and stderr streams.

System Management

  • File Management - Load and save network configurations with directory tree navigation.
  • Help System - Context-sensitive command display that adapts to current mode.
  • UI Layout - Modeline and status information showing current mode, file, and system state.

Node Network

Navigation

  • Use ↑/↓ to move between nodes
  • Press Enter to select a node
  • Press Space to expand/collapse node (future functionality)

Node Management

  • Press 'a' to add a new node
  • Press 'd' to delete selected node
  • Press 'r' to rename selected node
  • Press 'm' to change node path location
  • Press 'p' to view node parameters in Parameters Window

Connections

The system supports two types of connection modes:

  • Input Connection ('i'): Sets the selected node as input receiver. After pressing 'i', select another node to receive its output.
  • Output Connection ('o'): Sets the selected node as output provider. After pressing 'o', select another node to send output to.

Press 'x' to delete a connection. After pressing 'x', select the source node of the connection to remove.

Node States

Press shift-c to cook (evaluate) a node. Node states are indicated by symbols:

  • ◆ Cooked - Node has been evaluated
  • ⠿ Cooking - Node is currently evaluating
  • ▪ Uncooked - Node needs evaluation
  • ▫ Unchanged - Node state hasn't changed

Global Controls

  • ctrl+s: Quick save current network
  • ctrl+d: Save network as
  • ctrl+o: Open saved network
  • ctrl+z: Undo last action
  • ctrl+y: Redo last undone action
  • ctrl+w: Clear entire network
  • ctrl+l: Load different theme
  • ctrl+q: Quit application

Parameters

The parameter window displays and manages properties for selected nodes.

Navigation

  • j/k: Move between parameters
  • Enter: Begin editing selected parameter
  • Esc: Cancel parameter edit
  • Tab: Move to next input field

Management

  • ctrl+x: Remove current parameter set from view
  • ctrl+f: Clear all parameter sets from view

Globals

The globals window manages system-wide variables.

Navigation

  • j/k: Move between global variables
  • Enter: Edit selected global value

Commands

  • Input format: KEY:VALUE
  • cut : Delete specific global variable
  • cut all globals: Delete all global variables
  • Press 'n' to create new global variable

File Management

Navigation

  • j/k: Browse files
  • Enter: Select file
  • q: Return to previous mode

Operations

  • s: Save file
  • S: Save file as
  • ctrl+o: Open file
  • ctrl+s: Quick save
  • ctrl+d: Save as

Mode Switching

  • Ctrl+n: Node network mode
  • Ctrl+p: Parameter mode
  • Ctrl+g: Global mode
  • Ctrl+f: File mode
  • Ctrl+h: Help mode
  • Ctrl+k: Keymap mode

UI Layout

Modeline

The modeline appears at the bottom of the interface, displaying:

  • Text Loom logo (📝🧵)
  • Current mode [NODE/PARAMETER/GLOBAL/etc]
  • Current file path
  • Debug information
  • Active keystrokes

Output Display

The output window shows node evaluation results with standardized formatting:

---- ITEM #1 ----
[output content]
---- ITEM #2 ----
[output content]

Special states are displayed in italic:

  • NO NODE SELECTED
  • NO OUTPUT DATA
  • EMPTY OUTPUT

File Navigation

The file browser provides a directory tree interface for saving and loading networks:

Tree Navigation

  • Use arrow keys to navigate directories
  • Press Enter to select a file or expand directory
  • Press Escape to return to previous mode

Save Mode

  • Shows an additional input field for direct path entry
  • Current path is pre-populated
  • Can either type path directly or select via tree navigation
  • Enter confirms save operation

Load Mode

  • Directly loads selected file when Enter is pressed
  • Automatically returns to node view after loading

Help System

The help window uses an adaptive multi-column layout:

  • Commands are organized by mode
  • Display automatically adjusts columns based on window width
  • Headers indicate current mode context
  • Key bindings and their functions are aligned for readability
  • Sections are color-coded for better visual separation

Status Window

The status window provides real-time system monitoring capabilities:

Features

  • Captures all system stdout and stderr streams
  • Displays system messages and errors in real-time
  • Error messages appear in red for quick identification
  • Auto-scrolls to latest content
  • Maintains separate buffers for standard and error output

Output Types

  • Standard output: Normal system messages and logging
  • Error output: Displayed in red for visibility
  • System status updates
  • Debug information
  • Warning messages

The status window serves as a vital debugging tool, providing insight into system operations and error conditions during network execution.

Each mode's help content is contextually displayed based on the current active mode, with the header showing "Mode commands" for the active context.

Clone this wiki locally