vty-5.1.3: A simple terminal UI library

Safe HaskellSafe-Inferred

Graphics.Vty.Config

Description

A Config can be provided to mkVty to customize the applications use of vty. A config file can be used to customize vty for a user's system.

The Config provided is mappend'd to Configs loaded from getAppUserDataDirectory/config and $VTY_CONFIG_FILE. The $VTY_CONFIG_FILE takes precedence over the config file or the application provided Config.

Lines in config files that fail to parse are ignored. Later entries take precedence over earlier.

For all directives:

  string := "\"" chars+ "\""

= Debug

== debugLog

Format:

  "debugLog" string

The value of the environment variable VTY_DEBUG_LOG is equivalent to a debugLog entry at the end of the last config file.

= Input Processing

== map

Format:

  "map" term string key modifier_list
  where 
      key := KEsc | KChar Char | KBS ... (same as Key)
      modifier_list := "[" modifier+ "]"
      modifier := MShift | MCtrl | MMeta | MAlt
      term := _ | string

EG: If the contents are

  map _       "\ESC[B"    KUp   []
  map _       "\ESC[1;3B" KDown [MAlt]
  map xterm "\ESC[D"    KLeft []

Then the bytes "\ESC[B" will result in the KUp event on all terminals. The bytes "\ESC[1;3B" will result in the event KDown with the MAlt modifier on all terminals. The bytes "\ESC[D" will result in the KLeft event when TERM is xterm.

If a debug log is requested then vty will output the current input table to the log in the above format.

Set VTY_DEBUG_LOG. Run vty. Check debug log for incorrect mappings. Add corrected mappings to .vty/config

Synopsis

Documentation

type InputMap = [(Maybe String, String, Event)]Source

Mappings from input bytes to event in the order specified. Later entries take precedence over earlier in the case multiple entries have the same byte string.

data Config Source

Constructors

Config 

Fields

vmin :: Maybe Int
 
vtime :: Maybe Int
 
debugLog :: Maybe FilePath

Debug information is appended to this file if not Nothing.

inputMap :: InputMap

The (input byte, output event) pairs extend the internal input table of VTY and the table from terminfo.

See Graphics.Vty.Config module documentation for documentation of the map directive.

derivedVtime :: Config -> IntSource

The default is 100 milliseconds, 0.1 seconds. Set using the vtime field of Config

derivedVmin :: Config -> IntSource

The default is 1 character. Set using the vmin field of Config

userConfig :: IO ConfigSource

Config from getAppUserDataDirectory/config and $VTY_CONFIG_FILE

mapDecl :: forall s u m. (Monad m, Stream s (WriterT Config m) Char) => ParsecT s u (WriterT Config m) ()Source

parseKey :: forall s u m. Stream s m Char => ParsecT s u m KeySource

parseModifiers :: forall s u m. Stream s m Char => ParsecT s u m [Modifier]Source

parseModifier :: forall s u m. Stream s m Char => ParsecT s u m ModifierSource

debugLogDecl :: forall s u m. (Monad m, Stream s (WriterT Config m) Char) => ParsecT s u (WriterT Config m) ()Source

ignoreLine :: forall s u m. Stream s m Char => ParsecT s u m ()Source

parseConfig :: forall s u m. (Monad m, Stream s (WriterT Config m) Char) => ParsecT s u (WriterT Config m) ()Source