System.Console.Terminfo.Cursor

Maintainer [email protected]
Stability experimental
Portability portable (FFI)
Safe Haskell Safe
Language Haskell2010

Description

This module provides capabilities for moving the cursor on the terminal.

Terminal dimensions

Get the default size of the terminal. For resizeable terminals (e.g., xterm), these may not correspond to the actual dimensions.

termLines :: Capability Int Source

termColumns :: Capability Int Source

Cursor flags

autoRightMargin :: Capability Bool Source

This flag specifies that the cursor wraps automatically from the last column of one line to the first column of the next.

autoLeftMargin :: Capability Bool Source

This flag specifies that a backspace at column 0 wraps the cursor to the last column of the previous line.

wraparoundGlitch :: Capability Bool Source

This flag specifies that the terminal does not perform autoRightMargin-style wrapping when the character which would cause the wraparound is a control character. This is also known as the "newline glitch" or "magic wrap".

For example, in an 80-column terminal with this behavior, the following will print single-spaced instead of double-spaced:

replicateM_ 5 $ putStr $ replicate 80 'x' ++ "\n"

Scrolling

carriageReturn :: TermStr s => Capability s Source

The cr capability, which moves the cursor to the first column of the current line.

newline :: TermStr s => Capability s Source

The nel capability, which moves the cursor to the first column of the next line. It behaves like a carriage return followed by a line feed.

If nel is not defined, this may be built out of other capabilities.

scrollForward :: TermStr s => Capability s Source

scrollReverse :: TermStr s => Capability s Source

Relative cursor movements

The following functions for cursor movement will combine the more primitive capabilities. For example, moveDown may use either cursorDown or cursorDown1 depending on the parameter and which of cud and cud1 are defined.

moveDown :: TermStr s => Capability (Int -> s) Source

moveLeft :: TermStr s => Capability (Int -> s) Source

moveRight :: TermStr s => Capability (Int -> s) Source

moveUp :: TermStr s => Capability (Int -> s) Source

Primitive movement capabilities

These capabilities correspond directly to cub, cud, cub1, cud1, etc.

cursorDown1 :: TermStr s => Capability s Source

cursorLeft1 :: TermStr s => Capability s Source

cursorRight1 :: TermStr s => Capability s Source

cursorUp1 :: TermStr s => Capability s Source

cursorDown :: TermStr s => Capability (Int -> s) Source

cursorLeft :: TermStr s => Capability (Int -> s) Source

cursorRight :: TermStr s => Capability (Int -> s) Source

cursorUp :: TermStr s => Capability (Int -> s) Source

cursorHome :: TermStr s => Capability s Source

cursorToLL :: TermStr s => Capability s Source

Absolute cursor movements

cursorAddress :: TermStr s => Capability (Point -> s) Source

data Point Source

Constructors

Point

Fields

rowAddress :: TermStr s => Capability (Int -> s) Source

columnAddress :: TermStr s => Capability (Int -> s) Source

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/terminfo-0.4.1.4/System-Console-Terminfo-Cursor.html