raku-terminal-ui/lib/Terminal/UI.md -rw-r--r-- 7.1 KiB
a6756aeeBrian Duggan fix resize bug (no color) 14 days ago


Terminal::UI -- A framework for building terminal interfaces


Terminal::UI is a framework for building user interfaces in the terminal.

This class provides routines for manipulating:

  • a screen: the top level object representing the screen

  • frames: borders around content

  • panes: scrolling regions with content

  • style: a global style

  • input: input routines

These are documented in Terminal::UI::Screen, Frame, Pane, Style, and Input respectively.


  • $!focused-frame (Terminal::UI::Frame)

    The currently focused frame.

  • $!input (Terminal::UI::Input)

    The object for getting input.

    Handles: get-key

  • $!interacting (Bool)

    The UI is in an interact loop

  • $!lock-focus (Bool)

    Lock the focus

  • $!screen (Terminal::UI::Screen)

    The screen object, which tracks frames and panes.

    Handles: pane, panes, frames, frame, find-frame

  • %!lock-interaction (Associative)

    Lock interaction to only a set of actions

  • %!pane-bindings (Associative)

    Key bindings for the focused pane

  • %!ui-actions (Associative)

    Actions associated with bindings.

  • %!ui-bindings (Associative[Str])

    UI bindings (not specific to a pane)

  • %!ui-sync-actions (Associative)

    Synchronous actions associated with bindings.