3 - Add Generic and NFData instances for some types
4 - Image: remove custom Show instance, add derived Show and Read instances
5 - Updated Travis build settings (thanks Eric Mertens)
8 - Fixed a bug where italics did not combine properly with other
9 display modes (#155, thanks Eric Mertens)
12 - Added support for italicized output when terminfo supports it. This
13 takes the form of a new Style, "italic". Note that most terminfo
14 descriptors do not report capabilities for italics, so support for
15 this will be very spotty.
16 - Updateed text/string function documentation to indicate that escapes
17 are not permitted in their inputs.
20 - Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function
22 - Added nextEventNonblocking function (field) to Vty type (#87)
25 - Picture and Background now provide Eq instances (thanks Jaro Reinders)
26 - #145: vty builds with microlens 0.4.9 (thanks Daniel Wagner)
27 - #142: note requirement of threaded RTS
31 - Split up Monoid instances into Monoid and Semigroup for newer GHCs
36 * Cursor now provides an Eq instance (thanks Jaro Reinders)
40 - URL hyperlinking (via 'withURL') is now optional and disabled by
41 default due to poor support on some common terminals. A new 'Mode'
42 constructor, 'Hyperlink', has been added to enable this feature. To
43 change the hyperlinking mode, use 'setMode' on the 'outputIface' of a
48 - Reset the hyperlink state on line endings to avoid run-on hyperlinks
52 - Added support for hyperlinking attributes (thanks Getty Ritter). This
53 change adds a new Attr field for containing the hyperlink to apply,
54 as per https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
57 - withStyle now ignores zero arguments, leaving attribute styles
58 untouched if the input style is the null style
62 - Add support for terminal focus events. This change adds a new mode
63 usable with setMode, Focus, that requests that the terminal send
64 events on focus lose/gain. This change also adds two new Event
65 constructors, EvLostFocus and EvGainedFocus.
66 - No longer enable UTF8 mouse event encoding. This encoding was not
67 working properly with Terminal.app, and using the other modes (SGR,
69 - Graphics.Vty.Attributes: escape backticks in Haddock comment (fixes
74 - Added support for mouse wheel events while in mouse mode. The Button
75 type got two new constructors as a result: BScrollUp and BScrollDown.
76 Thanks to doublescale@tutanota.com for this contribution!
79 - charFill now clamps negative arguments to zero (thanks Eric
84 - Documentation files are now marked accordingly (thanks Michal
88 - translateX/Y: fix negative translations
92 - Discontinued support for GHC versions prior to 7.10.1.
93 - Removed instructions and configuration for Stack builds since they
94 are no longer supported.
95 - Clarified README mention of (lack of) Windows support (contributors
97 - Removed dependency on data-default (see below).
100 - Moved color definitions from Attributes to Color module.
101 - In lieu of data-default (Default) instances for Attr and Config, use
102 'defAttr' and the new 'defaultConfig' (or 'mempty') instead of 'def'.
103 - Graphics.Vty.Output no longer re-exports
104 Graphics.Vty.Output.Interface.
105 - Removed Graphics.Vty.Prelude module and moved DisplayRegion and its
106 accessors to Graphics.Vty.Image.
107 - Graphics.Vty.Image no longer re-exports Graphics.Vty.Attributes.
108 - Graphics.Vty.Picture no longer re-exports Graphics.Vty.Image.
111 - addMaybeClippedJoin: instead of raising an exception when the join
112 is totally clipped, just reduce the clip amount and continue
113 - addMaybeClipped: skip blit of joins when their primary dimension is
115 - 'string' and related text functions no longer treat an empty string
116 as an empty image (thanks Chris Penner). This means that now it is
117 possible to use 'str ""' as a non-empty image with height 1.
120 - Reverted changes in 5.12 due to disagreements between terminal
121 emulators and utf8proc; for more details, please see the ticket
123 https://github.com/coreyoconnor/vty/issues/115
126 - Replaced 'wcwidth' with a call to the utf8proc library's character
127 width function, which is much more up to date (by several Unicode
128 versions) and returns the right width for a much larger set of
130 - Added a bundled version of the utf8proc C library.
133 - Fix mouse event offsets in mouse-up events
136 - Mouse events were modified so that the upper-left corner of the
137 window is (0,0) rather than (1,1).
140 - Add Generic instance for Image
141 - nextEvent: stop trying to refresh on a resize event (fixes segfault
142 on refresh with normal cursor positioning mode)
143 - Remove redundant clause from clipForCharWidth (thanks Eric Mertens)
147 - Vty now raises a VtyConfigurationError exception when the TERM
148 evironment variable is missing (thanks Eric Mertens)
149 - Graphics.Vty.Config got an explicit export list to avoid accidentally
150 exporting internal types (thanks Eric Mertens)
153 - Add absolute cursor positioning mode AbsoluteCursor to Cursor. This
154 mode provides greater control over cursor positioning by bypassing
155 the logical positioning provided by default. Rather than positioning
156 the cursor by looking at the widths of characters involved, this
157 constructor lets you provide a physical row and column instead. This
158 is useful in more sophisticated programs. (thanks Eric Mertens)
159 - Added a new Generic-derived config parser (thanks Eric Mertens)
160 - Fixed the MShift case in the configuration file parser (thanks Eric
162 - Fixed wcwidth import and matched safeWcswidth to its documented
163 behavior. Previously vty_mk_wcwidth was being imported with
164 the wrong type causing the -1 return value to be mapped to the
165 wrong Int value. Additionally safeWcswidth was using the unsafe
166 character width function and only ensuring that the final result was
167 non-negative. (thanks Eric Mertens)
170 - Vty now only emits UTF8 charset sequences in terminals without a
171 preexisting UTF8 declaration to avoid emitting garbage sequences
175 - Added new Output methods supportsBell and ringTerminalBell to find
176 out whether the output device has an audio bell and to ring it (see
180 - Fixed "refresh" to work as advertised (see #104)
183 - API change: EvPaste input event now provides paste data as a raw
184 ByteString rather than a String to allow the application to decode
185 how best to decode it
188 - ModeDemo: added an explicit Control.Applicative import for older
192 - Mouse and paste modes are now off by default.
193 - The Config type got new fields: mouseMode and bracketedPasteMode.
194 These determine whether these modes are enabled initially (for
195 terminals that support them).
196 - Added a Mode type for modal terminal features (mouse events,
197 bracketed paste mode) that is used with new Output interface
199 * supportsMode :: Mode -> Bool tells whether the device supports a
201 * setMode :: Mode -> Bool -> IO () turns a mode on or off
202 * getModeStatus :: Mode -> IO Bool tells you whether a mode is on or
204 - Added a new demo program, ModeDemo.hs, to demonstrate usage of modes
207 - Added support for normal and extended mouse modes in Xterm-like
208 terminals via the MouseDown and MouseUp Event constructors
209 - Added support for bracketed paste mode in Xterm-like terminals via
210 the EvPaste event constructor
211 - Added derived Show instances for Event and Button (thanks Felix
213 - Now TERM values containing "screen" will automatically use the
214 XtermColor driver rather than just TerminfoBased
217 - Replaced lens dependency with microlens, microlens-mtl, microlens-th
218 dependencies. Issue #90
219 - Thanks Jonathan Daugherty
221 - Thanks Lennart Spitzner
224 - Changed eventChannel of Graphics.Vty.Input from Chan to TChan.
225 This enables clients to query if there are no pending events. The
226 Graphics.Vty interface nextEvent is unchanged. Clients that use
227 eventChannel directly will require updating.
228 https://github.com/coreyoconnor/vty/issues/60
230 - Reverted cabal file to depend on Cabal >= 1.18 instead of 1.20 due
231 to possibly breaking this on reasonable GHC versions
234 - Upgraded QuickCheck dependency to 2.7
235 - The standard IO Config (standardIOConfig) was overriding any
236 provided application config. In addition, the inputFd and outputFd
237 could not be changed if mkVty was used. Fixed.
238 - Correct handling of display attributes at end of line. The output
239 attributes are set to default at the end of content for the line and
240 at the start of a new line. Previously the current attribute would
241 extend to the next start of content. This was odd to reason about
242 and was the cause of https://github.com/coreyoconnor/vty/issues/76
243 IIRC Yi requires the old behavior to display the selection region
245 - shutdown of the input thread is now performed using killThread and
246 synchronization on an MVar. For correct handling of the terminal
247 read vmin and vtime the read must be a blocking read on an OS
248 thread. This places a threadWaitRead, which will be interrupted by
249 the killThread, prior to the uninterruptable read. An alternative
250 would be to re-import the read foreign call as interruptable.
253 - deepseq bounds increased for tests.
254 - Clean up warnings when compiling on 7.10
255 - Thanks Eric Mertens
256 - Avoid discarding input bytes after multi-byte encoded codepoint
257 - Thanks Eric Mertens
260 - "str" now returns EmptyImage for empty strings to match behavior of
261 other string-like Image constructors (fixes #74)
262 - Thanks Jonathan Daugherty
265 - dependency version bumps
266 - https://github.com/coreyoconnor/vty/pull/71
267 - https://github.com/coreyoconnor/vty/pull/70
268 - Correct/Simplify the example code
270 - https://github.com/coreyoconnor/vty/pull/69
273 - blaze-builder, lens, utf8-string version constraint bump
275 - https://github.com/coreyoconnor/vty/pull/67
276 - Do not differentiate based on TERM_PROGRAM
277 - https://github.com/coreyoconnor/vty/issues/68
280 - lens and deepseq constraint bump + misc
282 - https://github.com/coreyoconnor/vty/pull/66
285 - lens constraint bump
286 - Thanks alexander-b!
287 - https://github.com/coreyoconnor/vty/pull/64
290 - lens and random version constraint bump.
291 - Thanks RyanGlScott!
292 - https://github.com/coreyoconnor/vty/pull/62
295 - removed -fpic from cc-options. No longer required.
296 - https://github.com/coreyoconnor/vty/issues/61
297 - https://ghc.haskell.org/trac/ghc/ticket/9657
301 - evaluate/compile the input parsing table once instead of each
303 - https://github.com/coreyoconnor/vty/pull/59
307 - When looking at input for an event, don't look too deep.
308 - https://github.com/coreyoconnor/vty/pull/57
312 - Bump upper version bound for lens to 4.5. Thanks markus1189!
315 - Config structure now specifies file descriptor to use. The default
316 is stdInput and stdOutput file descriptors. Previously Vty used
317 stdInput for input and the follow code for output:
318 - hDuplicate stdout >>= handleToFd >>= (`hSetBuffering`
320 - the difference was required by Vty.Inline. Now, Vty.Inline uses
321 the Config structure options to acheive the same effect.
322 - removed: derivedVtime, derivedVmin, inputForCurrentTerminal,
323 inputForNameAndIO, outputForCurrentTerminal, outputForNameAndIO
324 - added: inputForConfig, outputForConfig
325 - updates to vty-rogue from jtdaugherty. Thanks!
326 - the oldest version of GHC tested to support vty is 7.6.2.
327 - the oldest version of GHC that vty compiles under is 7.4.2
330 - merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
333 - merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
334 - jtdaugherty resolved a number of compiler warnings. Thanks!
337 - vmin and vtime can be specified however the application requires.
338 See Graphics.Vty.Config.
339 - fixed the processing of input when vmin is set > 1.
342 - The naming convention now matches:
343 - http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions
344 - all projects using vty for input must be compiled with -threaded.
345 Please notify vty author if this is not acceptable.
346 - mkVtyEscDelay has been removed. Use "mkVty def". Which initialized
347 vty with the default configuration.
348 - input handling changes
349 - KASCII is now KChar
350 - KPN5 is now KCenter
352 - Applications can add to the input tables by setting inputMap of
353 the Config. See Graphics.Vty.Config
354 - Users can define input table extensions that will apply to all vty
355 applications. See Graphics.Vty.Config
356 - terminal timing is now handled by selecting an appropriate VTIME.
357 Previously this was implemented within Vty itself. This reduced
358 complexity in vty but provides a different meta key behavior and
359 implies a requirement on -threaded.
360 - The time vty will wait to verify an ESC byte means a single ESC
361 key is the singleEscPeriod of the Input Config structure.
362 - removed the typeclass based terminal and display context interface
363 in favor of a data structure of properties interface.
364 - renamed the Terminal interface to Output
365 - The default picture for an image now uses the "clear" background.
366 This background fills background spans with spaces or just ends the
368 - Previously the background defaulted to the space character. This
369 causes issues copying text from a text editor. The text would end
370 up with extra spaces at the end of the line.
372 - Each layer is an image.
373 - The layers for a picture are a list of images.
374 - The first image is the top-most layer. The images are ordered from
376 - The transparent areas for a layer are the backgroundFill areas.
377 backgroundFill is added to pad images when images of different
379 - If the background is clear there is no background layer.
380 - If there is a background character then the bottom layer is the
382 - emptyPicture is a Picture with no layers and no cursor
383 - addToTop and addToBottom add a layer to the top and bottom of the
385 - compatibility improvements:
386 - terminfo based terminals with no cursor support are silently
387 accepted. The cursor visibility changes in the Picture will have
389 - alternate (setf/setb) color maps supported. Though colors beyond
390 the first 8 are just a guess.
391 - added "rgbColor" for easy support of RGB specified colors.
392 - Both applications and users can add to the mapping used to
393 translate from input bytes to events.
394 - Additional information about input and output process can be
395 appended to a debug log
396 - Set environment variable VTY_DEBUG_LOG to path of debug log
397 - Or use "debugLog <path>" config directive
398 - Or set 'debugLog' property of the Config provided to mkVty.
399 - examples moved to vty-examples package. See test directory for cabal
401 - vty-interactive-terminal-test
402 - interactive test. Useful for building a bug report for vty's
404 - test/interactive_terminal_test.hs
406 - view a input event log for vty. Example of interacting with
410 - The start of a rogue-like game. Example of layers and image
414 - benchmarks vty. A series of tests that push random pictures to
415 the terminal. The random pictures are generated using
416 QuickCheck. The same generators used in the automated tests.
421 - Added Graphics.Vty.Image.crop: Ensure an image is no larger
422 than the specified size.
423 - Added Graphics.Vty.Image.pad: Ensure an image is no smaller
424 than the specified size.
425 - Added Graphics.Vty.Image.translate: Offset an image.
426 - Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
432 - Attr record accessor fore_color changed to attr_fore_color
433 - Attr record accessor back_color changed to attr_back_color
434 - Attr record accessor style changed to attr_style
435 - Added an "inline" display attribute changing DSL:
436 - put_attr_change applies a display attribute change
437 immediately to a terminal
438 - For instance, can be used to change the display attrbiutes
439 of text output via putStrLn and putStr. EX:
440 "put_attr_change $ back_color red" will set the background
442 - Changes do not apply to a Picture output via output_picture.
443 - See Graphics.Vty.Inline
444 - Moved all IO actions into any monad an instance of MonadIO
447 - binding for mk_wcswidth was incorrect. Most platforms just
448 magically worked due to coincidence.
452 - "getSize" has been removed. Use "terminal vty >>= display_bounds"
453 where "vty" is an instance of the Vty data structure.
454 - added a "terminal" field to the Vty data structure. Accesses the
455 TerminalHandle associated with the Vty instance.
456 - Graphics.Vty.Types has undergone a number of changes. Summary:
457 - Partitioned into Graphics.Vty.Attributes for display attributes.
458 Graphics.Vty.Image for image combinators. Graphics.Vty.Picture
459 for final picture construction.
460 - Graphics.Vty.Attributes:
461 - "setFG" and "setBG" are now "with_fore_color" and
463 - All other "set.." equations similarly replaced.
464 - "attr" is now "def_attr", short for "default display attributes"
465 Also added a "current_attr" for "currently applied display
467 - Graphics.Vty.Image:
468 - "horzcat" is now "horiz_cat"
469 - "vertcat" is now "vert_cat"
470 - "renderBS" is now "utf8_bytestring"
471 - "renderChar" is now "char"
472 - "renderFill" is now "char_fill"
473 - added a "utf8_string" and "string" (AKA "iso_10464_string") for
474 UTF-8 encoded Strings and ISO-10464 encoded Strings. String
475 literals in GHC have an ISO-10464 runtime representation.
476 - Graphics.Vty.Picture:
477 - exports Graphics.Vty.Image
478 - "pic" is now "pic_for_image"
479 - added API for setting background fill pattern.
480 - Completely rewritten output backend.
481 - Efficient, scanline style output span generator. Has not been
482 fully optimized, but good enough.
483 - The details required to display the desired picture on a
484 terminal are well encapsulated.
485 - Terminfo based display terminal implementation. With specialized
486 derivitives for xterm, Terminal.app, and iTerm.app.
487 - Attempts to robustly handle even terminals that don't
488 support all display attributes.
489 - I've tested the following terminals with success: iTerm.app,
490 Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal,
491 konsole, screen, linux vty. Hopefully you will be as
493 - Improved unicode support. Double wide characters will display as
495 - 256 color support. See Graphics.Vty.Attributes.Color240. The actual
496 output color is adjusted according to the number of colors the
498 - The Graphics.Vty.Image combinators no longer require matching
499 dimensions to arguments. Unspecified areas are filled in with a
500 user-customizable background pattern. See Graphics.Vty.Picture.
501 - output images are always cropped to display size.
502 - Significant code coverage by QuickCheck tests. An interactive test
503 for those final properties that couldn't be automatically verified.
506 - "gnome terminal displays non-basic attributes as strikethrough"
507 - http://trac.haskell.org/vty/ticket/14
508 - "Multi-byte characters are not displayed correctly on update"
509 - http://trac.haskell.org/vty/ticket/10
510 - "Redraw does not handle rendering a line that extends beyond screen
512 - http://trac.haskell.org/vty/ticket/13
513 - "The <|> and <-> combinators should be more forgiving of mismatched
515 - http://trac.haskell.org/vty/ticket/9
516 - "256-color support"
517 - http://trac.haskell.org/vty/ticket/19
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list