Term::VTerm::Screen - provides access to the screen layer of libvterm



   $screen->enable_altscreen( $enabled )

Controls whether the altscreen buffer is enabled. Doing so allows the DEC altscreen mode to switch between regular and alternate screen buffers, but consumes more memory.


   $screen->enable_reflow( $enabled )

Controls whether buffer reflow on resize is enabled. This feature is currently experimental and may be less than stable in some situations.



Flushes all pending damage through the screen to the damage callback.


   $screen->set_damage_merge( $size )

Sets the damage merge size, as one of the DAMAGE_* constants.


   $screen->reset( $hard )

Resets the terminal state; performing either a soft or hard reset depending on the (optional) boolean value given.


   $cell = $screen->get_cell( $pos )

Returns a VTermScreenCell object representing the current state of the cell at the given location. Note that this is an instantaneous snapshot - the returned object will not update to reflect later changes in the screen's state.


   $str = $screen->get_text( $rect )

Returns a UTF-8 string containing the text in the screen buffer within the given Term::VTerm::Rect.


   $screen->set_callbacks( %cbs )

Sets the screen-layer callbacks. Takes the following named arguments:

on_damage => CODE
   $on_damage->( $rect )

$rect is a Term::VTerm::Rect instance.

on_moverect => CODE
   $on_moverect->( $dest, $src )

$dest and $src are Term::VTerm::Rect instances.

on_movecursor => CODE
   $on_movecursor->( $pos, $oldpos, $is_visible )

$pos and $oldpos are a Term::VTerm::Pos. $is_visible is a boolean.

on_settermprop => CODE
   $on_settermprop->( $prop, $value )

$prop is one of the PROP_* constants. The type of $value depends on the property type - see similar to get_penattr.

on_bell => CODE
on_resize => CODE
   $on_resize->( $rows, $cols )


   $col = $screen->convert_color_to_rgb( $col )

Converts a Term::VTerm::Color instance from indexed to RGB form.


A VTermScreenCell instance has the following field accessors:

@chars = $cell->chars

A list of Unicode character numbers. This list does not include the terminating 0.

$str = $cell->str

A UTF-8 string containing the characters (normally just one but it may be followed by zero-width combining marks).

$width = $cell->width

The width of the cell in columns. Normally 1, but 2 for a Unicode double-width character, or the special value of -1 on the "second" cell of such a character.

$bold = $cell->bold

$underline = $cell->underline

$italic = $cell->italic

$reverse = $cell->reverse

$strike = $cell->strike

$small = $cell->small

Simple rendering attributes. All are boolean values, except underline which is an integer between 0 and 2 (to support double-underline).

$font = $cell->font

Font selection; an integer between 0 and 10.

$base = $cell->baseline

Baseline adjustment; zero or one of the VTERM_BASELINE_* constants.

$fg = $cell->fg

$bg = $cell->bg

The foreground and background colours, as Term::VTerm::Color instances.


Paul Evans <>