brick/brick.cabal
Jonathan Daugherty 6929129e9c Keybindings: normalize parsed and constructed key bindings with modifiers to lowercase
This change fixes a bug where it was possible to parse and construct key
bindings for capitalized characters with modifiers, thus leading to
unusable bindings in terminal applications. This is because a binding
like

   Ctrl-X

can never be generated by a terminal because it always arrives as

   Ctrl-x

Prior to this patch, if a user wrote "Ctrl-X" in a keybinding
configuration file or used the library API to construct such a binding,
it would be accepted but would lead to a binding that was never usable
at runtime for the reason explained above.

This patch updates the library API to always normalize constructed and
parsed key bindings to lowercase when modifiers are present.
2024-07-02 18:08:41 -07:00

590 lines
17 KiB
Plaintext

name: brick
version: 2.3.2
synopsis: A declarative terminal user interface library
description:
Write terminal user interfaces (TUIs) painlessly with 'brick'! You
write an event handler and a drawing function and the library does the
rest.
.
.
> module Main where
>
> import Brick
>
> ui :: Widget ()
> ui = str "Hello, world!"
>
> main :: IO ()
> main = simpleMain ui
.
.
To get started, see:
.
* <https://github.com/jtdaugherty/brick/blob/master/README.md The README>
.
* The <https://github.com/jtdaugherty/brick/blob/master/docs/guide.rst Brick user guide>
.
* The demonstration programs in the 'programs' directory
.
.
This package deprecates <http://hackage.haskell.org/package/vty-ui vty-ui>.
license: BSD3
license-file: LICENSE
author: Jonathan Daugherty <cygnus@foobox.com>
maintainer: Jonathan Daugherty <cygnus@foobox.com>
copyright: (c) Jonathan Daugherty 2015-2024
category: Graphics
build-type: Simple
cabal-version: 1.18
Homepage: https://github.com/jtdaugherty/brick/
Bug-reports: https://github.com/jtdaugherty/brick/issues
tested-with: GHC == 8.2.2
|| == 8.4.4
|| == 8.6.5
|| == 8.8.4
|| == 8.10.7
|| == 9.0.2
|| == 9.2.8
|| == 9.4.8
|| == 9.6.3
|| == 9.8.1
extra-doc-files: README.md,
docs/guide.rst,
docs/snake-demo.gif,
CHANGELOG.md,
programs/custom_keys.ini
Source-Repository head
type: git
location: git://github.com/jtdaugherty/brick.git
Flag demos
Description: Build demonstration programs
Default: False
library
default-language: Haskell2010
ghc-options: -Wall -Wcompat -O2 -Wunused-packages
default-extensions: CPP
hs-source-dirs: src
exposed-modules:
Brick
Brick.AttrMap
Brick.BChan
Brick.BorderMap
Brick.Keybindings
Brick.Keybindings.KeyConfig
Brick.Keybindings.KeyEvents
Brick.Keybindings.KeyDispatcher
Brick.Keybindings.Normalize
Brick.Keybindings.Parse
Brick.Keybindings.Pretty
Brick.Focus
Brick.Forms
Brick.Main
Brick.Themes
Brick.Types
Brick.Util
Brick.Widgets.Border
Brick.Widgets.Border.Style
Brick.Widgets.Center
Brick.Widgets.Core
Brick.Widgets.Dialog
Brick.Widgets.Edit
Brick.Widgets.FileBrowser
Brick.Widgets.List
Brick.Widgets.ProgressBar
Brick.Widgets.Table
Data.IMap
other-modules:
Brick.Types.Common
Brick.Types.TH
Brick.Types.EventM
Brick.Types.Internal
Brick.Widgets.Internal
build-depends: base >= 4.9.0.0 && < 4.21.0.0,
vty >= 6.0,
vty-crossplatform,
bimap >= 0.5 && < 0.6,
data-clist >= 0.1,
directory >= 1.2.5.0,
exceptions >= 0.10.0,
filepath,
containers >= 0.5.7,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl,
mtl,
config-ini,
vector,
stm >= 2.4.3,
text,
text-zipper >= 0.13,
template-haskell,
deepseq >= 1.3 && < 1.6,
unix-compat,
bytestring,
word-wrap >= 0.2
executable brick-custom-keybinding-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: CustomKeybindingDemo.hs
build-depends: base,
brick,
text,
vty,
containers,
microlens,
microlens-mtl,
microlens-th
executable brick-table-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: TableDemo.hs
build-depends: base,
brick,
text,
vty
executable brick-tail-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: TailDemo.hs
build-depends: base,
brick,
text,
vty,
vty-crossplatform,
random,
microlens-th,
microlens-mtl
executable brick-readme-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: ReadmeDemo.hs
build-depends: base,
brick,
text
executable brick-file-browser-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: FileBrowserDemo.hs
build-depends: base,
vty,
brick,
text,
mtl
executable brick-form-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: FormDemo.hs
build-depends: base,
brick,
text,
microlens,
microlens-th,
vty-crossplatform,
vty
executable brick-text-wrap-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: TextWrapDemo.hs
build-depends: base,
brick,
text,
word-wrap
executable brick-cache-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: CacheDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th,
mtl
executable brick-visibility-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: VisibilityDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl
executable brick-viewport-scrollbars-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: ViewportScrollbarsDemo.hs
build-depends: base,
brick,
vty,
vty-crossplatform,
text,
microlens,
microlens-mtl,
microlens-th
executable brick-viewport-scroll-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
default-extensions: CPP
main-is: ViewportScrollDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-dialog-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: DialogDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-mouse-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: MouseDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl,
text-zipper,
mtl
executable brick-layer-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: LayerDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl
executable brick-suspend-resume-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: SuspendAndResumeDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th
executable brick-cropping-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: CroppingDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-padding-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: PaddingDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-theme-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: ThemeDemo.hs
build-depends: base,
brick,
vty,
text,
mtl,
microlens
executable brick-attr-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: AttrDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-tabular-list-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: TabularListDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-mtl,
microlens-th,
mtl,
vector
executable brick-list-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: ListDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-mtl,
mtl,
vector
executable brick-list-vi-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: ListViDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-mtl,
mtl,
vector
executable brick-custom-event-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: CustomEventDemo.hs
build-depends: base,
brick,
vty,
text,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl
executable brick-fill-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: FillDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-hello-world-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: HelloWorldDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-edit-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: EditDemo.hs
build-depends: base,
brick,
vty,
text,
vector,
mtl,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl
executable brick-editor-line-numbers-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-language: Haskell2010
main-is: EditorLineNumbersDemo.hs
build-depends: base,
brick,
vty,
text,
vector,
mtl,
microlens >= 0.3.0.0,
microlens-th,
microlens-mtl
executable brick-border-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-extensions: CPP
default-language: Haskell2010
main-is: BorderDemo.hs
build-depends: base,
brick,
vty,
text,
microlens
executable brick-dynamic-border-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-extensions: CPP
default-language: Haskell2010
main-is: DynamicBorderDemo.hs
build-depends: base <= 5,
brick,
vty,
text,
microlens
executable brick-progressbar-demo
if !flag(demos)
Buildable: False
hs-source-dirs: programs
ghc-options: -threaded -Wall -Wcompat -O2
default-extensions: CPP
default-language: Haskell2010
main-is: ProgressBarDemo.hs
build-depends: base,
brick,
vty,
text,
microlens,
microlens-mtl,
microlens-th
test-suite brick-tests
type: exitcode-stdio-1.0
hs-source-dirs: tests
ghc-options: -Wall -Wcompat -Wno-orphans -O2
default-language: Haskell2010
main-is: Main.hs
other-modules: List Render
build-depends: base <=5,
brick,
containers,
microlens,
vector,
vty,
vty-crossplatform,
QuickCheck