
To provide a good foundation for building complex terminal interfaces Something of an experimental project of mine and some aspects of theĭesign involve trade-offs that might not be right for your application.īrick is not intended to be all things to all people rather, I want it (and to wait on performance issues to arise first). Performance later for the sake of spending more time on the design There are some places were I have deliberately chosen to worry about Library changes, give feedback, and ask questions. The brick-users Google Group / e-mail list is a place to discuss Borders can be configured to automatically connect!.A filesystem browser for file and directory selection.Type-safe, validated input form API (see the Brick.Forms module).General-purpose layout control combinators.Generic scrollable viewports and viewport scroll bars.Border-drawing widgets (put borders around or in between things).Basic single- and multi-line text editor widgets.Vertical and horizontal box layout widgets.Documentationĭocumentation for brick comes in a variety of forms:īrick comes with a bunch of batteries included: $ find dist-newstyle -type f -name \*-demo These third-party packages also extend brick: ProjectĪ widget for exploring a directory tree and selecting or flagging files and directoriesįind out about brick releases and other news on Twitter:Ĭheck out the many demo programs to get a feel for different aspects of

If you have made something and would like me to includeĪ command-line tool for managing kitchen recipesĪn interactive frontend to the Summoner toolĪn embeddable editor with support for BrickĪ program for reviewing “flash card” notesĪ TUI for ghcup, the Haskell toolchain managerĪ TUI for exploring polyglot chess opening book filesĪ modern TUI typing game featuring online racing against friendsĪ feed aggregator and launcher for Youtube channelsĪ 2D programming and resource gathering gameĪ terminal UI for the hledger accounting system.Īn interactive terminal UI for adding hledger journal entriesĪn interactive terminal notes/todo app with file/redis persistence

To get an idea of what some people have done with brick, check out (center (str "Left") vBorder center (str "Right")) Here’s an example interface (see programs/ReadmeDemo.hs): joinBorders $ Interface using a set of declarative layout combinators. Now bind an event handler”, brick just requires you to describe your Require you to write a long and tedious sequence of “create a widget, You provide a state transformation function to handle events.īrick exposes a declarative API. Interface should be drawn based on your current application state and To use it, you write a pure function that describes how your user

Brick is a Haskell terminal user interface (TUI) programming toolkit.
