TermUI.Mouse (TermUI v0.2.0)

View Source

Mouse support utilities for terminal applications.

Provides functions to enable/disable mouse tracking modes and utilities for working with mouse events.

Mouse Tracking Modes

  • Normal (1000) - Report button press/release
  • Button (1002) - Report motion while button pressed
  • Any (1003) - Report all motion events
  • SGR Extended (1006) - Decimal coordinates, press/release distinction

Usage

# Enable mouse tracking
sequences = Mouse.enable_mouse()
IO.write(sequences)

# Enable motion tracking with SGR Extended
sequences = Mouse.enable_mouse_motion()
IO.write(sequences)

# Disable mouse tracking
sequences = Mouse.disable_mouse()
IO.write(sequences)

Summary

Functions

Checks if a mouse action is a click action.

Default number of lines to scroll per wheel tick.

Returns escape sequences to disable all mouse tracking.

Returns escape sequences to enable normal mouse tracking.

Returns escape sequences to enable button motion tracking.

Returns escape sequences to enable all motion tracking.

Checks if a mouse action is a motion action.

Checks if a mouse action is a scroll action.

Scroll down direction constant.

Scroll up direction constant.

Returns the escape sequence to disable SGR Extended mode.

Returns the escape sequence for SGR Extended mode.

Functions

click_action?(arg1)

@spec click_action?(atom()) :: boolean()

Checks if a mouse action is a click action.

default_scroll_lines()

Default number of lines to scroll per wheel tick.

disable_mouse()

@spec disable_mouse() :: String.t()

Returns escape sequences to disable all mouse tracking.

enable_mouse()

@spec enable_mouse() :: String.t()

Returns escape sequences to enable normal mouse tracking.

Normal mode reports button press and release events. Also enables SGR Extended mode for accurate coordinates.

enable_mouse_button()

@spec enable_mouse_button() :: String.t()

Returns escape sequences to enable button motion tracking.

Button mode reports motion events while a button is pressed. Also enables SGR Extended mode for accurate coordinates.

enable_mouse_motion()

@spec enable_mouse_motion() :: String.t()

Returns escape sequences to enable all motion tracking.

Any mode reports all mouse motion events. Also enables SGR Extended mode for accurate coordinates.

motion_action?(arg1)

@spec motion_action?(atom()) :: boolean()

Checks if a mouse action is a motion action.

scroll_action?(arg1)

@spec scroll_action?(atom()) :: boolean()

Checks if a mouse action is a scroll action.

scroll_down()

Scroll down direction constant.

scroll_up()

Scroll up direction constant.

sgr_extended_off()

@spec sgr_extended_off() :: String.t()

Returns the escape sequence to disable SGR Extended mode.

sgr_extended_on()

@spec sgr_extended_on() :: String.t()

Returns the escape sequence for SGR Extended mode.

SGR Extended mode provides:

  • Decimal coordinate encoding (no 223 limit)
  • Press/release distinction via 'm' vs 'M' suffix