vty- A simple terminal access librarySource codeContentsIndex
data Attr = Attr {
style :: !(MaybeDefault Style)
fore_color :: !(MaybeDefault Color)
back_color :: !(MaybeDefault Color)
data FixedAttr = FixedAttr {
fixed_style :: !Style
fixed_fore_color :: !(Maybe Color)
fixed_back_color :: !(Maybe Color)
data Eq v => MaybeDefault v
= Default
| KeepCurrent
| SetTo !v
data Color
= ISOColor !Word8
| Color240 !Word8
red :: Color
green :: Color
yellow :: Color
blue :: Color
magenta :: Color
cyan :: Color
white :: Color
black :: Color
bright_red :: Color
bright_green :: Color
bright_yellow :: Color
bright_black :: Color
bright_magenta :: Color
bright_cyan :: Color
bright_white :: Color
bright_blue :: Color
type Style = Word8
underline :: Style
reverse_video :: Style
blink :: Style
dim :: Style
bold :: Style
standout :: Style
default_style_mask :: Style
style_mask :: Attr -> Word8
has_style :: Style -> Style -> Bool
with_fore_color :: Attr -> Color -> Attr
with_back_color :: Attr -> Color -> Attr
with_style :: Attr -> Style -> Attr
def_attr :: Attr
current_attr :: Attr
data Attr Source

A display attribute defines the Color and Style of all the characters rendered after the attribute is applied.

At most 256 colors, picked from a 240 and 16 color palette, are possible for the background and foreground. The 240 colors and 16 colors are points in different palettes. See Color for more information.

style :: !(MaybeDefault Style)
fore_color :: !(MaybeDefault Color)
back_color :: !(MaybeDefault Color)
show/hide Instances
data FixedAttr Source
Specifies the display attributes such that the final style and color values do not depend on the previously applied display attribute. The display attributes can still depend on the terminal's default colors (unfortunately).
fixed_style :: !Style
fixed_fore_color :: !(Maybe Color)
fixed_back_color :: !(Maybe Color)
show/hide Instances
data Eq v => MaybeDefault v Source
The style and color attributes can either be the terminal defaults. Or be equivalent to the previously applied style. Or be a specific value.
SetTo !v
show/hide Instances
Eq v => Eq (MaybeDefault v)
(Eq v, Show v) => Show (MaybeDefault v)
data Color Source

Abstract data type representing a color.

Currently the foreground and background color are specified as points in either a:

  • 16 color palette. Where the first 8 colors are equal to the 8 colors of the ISO 6429 (ANSI) 8 color palette and the second 8 colors are bright/vivid versions of the first 8 colors.
  • 240 color palette. This palette is a regular sampling of the full RGB colorspace.

The 8 ISO 6429 (ANSI) colors are as follows:

0. black

1. red

2. green

3. yellow

4. blue

5. magenta

6. cyan

7. white

The mapping from points in the 240 color palette to colors actually displayable by the terminal depends on the number of colors the terminal claims to support. Which is usually determined by the terminfo colors property. If this property is not being accurately reported then the color reproduction will be incorrect.

If the terminal reports <= 16 colors then the 240 color palette points are only mapped to the 8 color pallete. I'm not sure of the RGB points for the bright colors which is why they are not addressable via the 240 color palette.

If the terminal reports > 16 colors then the 240 color palette points are mapped to the nearest points in a (color count - 16) subsampling of the 240 color palette.

All of this assumes the terminals are behaving similarly to xterm and rxvt when handling colors. And that the individual colors have not been remapped by the user. There may be a way to verify this through terminfo but I don't know it.

Seriously, terminal color support is INSANE.

ISOColor !Word8
Color240 !Word8
show/hide Instances
red :: ColorSource
Standard 8-color ANSI terminal color codes.
green :: ColorSource
yellow :: ColorSource
blue :: ColorSource
magenta :: ColorSource
cyan :: ColorSource
white :: ColorSource
black :: ColorSource
bright_red :: ColorSource
Bright/Vivid variants of the standard 8-color ANSI
bright_green :: ColorSource
bright_yellow :: ColorSource
bright_black :: ColorSource
bright_magenta :: ColorSource
bright_cyan :: ColorSource
bright_white :: ColorSource
bright_blue :: ColorSource
type Style = Word8Source
Styles are represented as an 8 bit word. Each bit in the word is 1 if the style attribute assigned to that bit should be applied and 0 if the style attribute should not be applied.
underline :: StyleSource

The 6 possible style attributes:

  • standout
  • underline
  • reverse_video
  • blink
  • dim
  • bold/bright

( The invisible, protect, and altcharset display attributes some terminals support are not supported via VTY.)

reverse_video :: StyleSource
blink :: StyleSource
dim :: StyleSource
bold :: StyleSource
standout :: StyleSource
default_style_mask :: StyleSource
style_mask :: Attr -> Word8Source
has_style :: Style -> Style -> BoolSource
true if the given Style value has the specified Style set.
with_fore_color :: Attr -> Color -> AttrSource
Set the foreground color of an Attr.
with_back_color :: Attr -> Color -> AttrSource
Set the background color of an Attr.
with_style :: Attr -> Style -> AttrSource
Add the given style attribute
def_attr :: AttrSource
Sets the style, background color and foreground color to the default values for the terminal. There is no easy way to determine what the default background and foreground colors are.
current_attr :: AttrSource

Keeps the style, background color and foreground color that was previously set. Used to override some part of the previous style.

EG: current_style with_fore_color bright_magenta

Would be the currently applied style (be it underline, bold, etc) but with the foreground color set to bright_magenta.

Produced by Haddock version 2.4.2