terminal-size-0.2.1.0: Get terminal window height and width

Safe HaskellNone

System.Console.Terminal.Size

Description

Get terminal window height and width without ncurses dependency

Only tested to work on GNU/Linux systems

Based on answer by Andreas Hammar at http://stackoverflow.com/a/12807521/972985

Synopsis

Documentation

data Window a Source

Terminal window width and height

Constructors

Window 

Fields

height :: !a
 
width :: !a
 

Instances

Functor Window 
Read a => Read (Window a) 
Show a => Show (Window a) 

size :: Integral n => IO (Maybe (Window n))Source

Get terminal window width and height for stdout.

>>> import System.Console.Terminal.Size
>>> size
Just (Window {height = 60, width = 112})

fdSize :: Integral n => Fd -> IO (Maybe (Window n))Source

Get terminal window width and height for a specified file descriptor. If it's not attached to a terminal then Nothing is returned.

>>> import System.Console.Terminal.Size
>>> import System.Posix
>>> fdSize stdOutput
Just (Window {height = 56, width = 85})
>>> fd <- openFd "foo" ReadWrite (Just stdFileMode) defaultFileFlags
>>> fdSize fd
Nothing

hSize :: Integral n => Handle -> IO (Maybe (Window n))Source

Same as fdSize, but takes Handle instead of Fd (file descriptor).

>>> import System.Console.Terminal.Size
>>> import System.IO
>>> hSize stdout
Just (Window {height = 56, width = 85})