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
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