Skip to content

chhackett/vty-windows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vty-windows is a plugin for the vty terminal interface library. It provides support for vty on the Windows platform. vty-windows is supported on GHC versions 9.4.4 and up.

Install via git with:

git clone git://github.com/chhackett/vty-windows.git

Install via cabal with:

cabal install vty-windows

Features

  • Supports Windows 10 since build 1703 (Creators Update added support for most VT sequences).

  • Automatically handles window resizes.

  • Supports Unicode output.

  • Automatically decodes keyboard keys into (key,[modifier]) tuples.

  • Provides extensible input and output interfaces.

  • Supports ANSI graphics modes (SGR as defined in console_codes(4)) with a type-safe interface and graceful fallback for terminals with limited or nonexistent support for such modes.

  • Properly handles cleanup.

  • Supports "normal" and "extended" (SGR) mouse modes as described at http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking

  • Supports bracketed paste mode as described at http://cirw.in/blog/bracketed-paste

  • Supports multi-column Unicode characters such as emoji characters. In cases where Vty and your terminal emulator disagree on character widths, Vty provides a tool vty-build-width-table and library functionality to build a width table that will work for your terminal and load it on application startup.

Platform Support

vty-windows has been tested and all features are supported in the following terminals:

  • Command Prompt
  • Powershell
  • MSYS/MSYS2
  • ConEmu

Other terminals have not been tested at this time. Bug reports are welcome!

Notes

Developers that want to develop cross platform applications using the vty library should directly depend on [vty-crossplatform] (https://github.com/jtdaugherty/vty-crossplatform), and not this library.

If you wish to only target the Windows platform, then using vty-windows would be the correct approach.

Contributing

If you decide to contribute, that's great! Here are some guidelines you should consider to make submitting patches easier for all concerned:

  • Please ensure that the examples and test suites build along with the library.
  • If you make changes, make them consistent with the syntactic conventions already used in the codebase.
  • Please provide Haddock documentation for any changes you make.

Further Reading

Good sources of documentation for terminal programming are:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published