packages feed

xkbcommon-0.0.0: xkbcommon.cabal

-- Initial xkbcommon.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

name:                xkbcommon
version:             0.0.0
synopsis:            Haskell bindings for libxkbcommon
description:
  Wrapper library for libxkbcommon, which is the new alternative for the X11 XKB.h keyboard input
  API. Specifically, it finds keymap files from disk based on Rule\/Model\/Layout\/Variant\/Option
  specifications, and compiles them into a 'Keymap'. From this 'Keymap', a 'KeyboardState' can be
  constructed which represents the states of various physical buttons such as the shift/alt/ctrl
  keys, and can give the correct key symbol based on keyboard events. E.g., pressing the @\<h\>@ key
  while @\<shift\>@ is pressed produces the @H@ symbol in the common QWERTY keymaps, but in e.g.
  the Dvorak keymap, it produces the D symbol.
  .
  After keymap creation, which libxkbcommon can do based on locale preferences and enviroment
  variables, this is all handled by routing keyboard events through libxkbcommon.
  .
  At this stage, these haskell bindings do not make libxkbcommon look much like a haskell library.
  For example, in principle the entire libxkbcommon library is just a stateful processor, and has
  nothing to do with the IO monad.
  However, because I am not yet a very good haskell programmer, and because
  in most realistic use cases input data comes from the IO monad anyway, the stateful operations
  are encoded in the IO monad anyway.
  .
  Note that these bindings load the keysym constants from the libxkbcommon C header files at
  compile time using TH, and similarly keycodes from the Linux header files.
  These should be present for correct compilation.
license:             MIT
license-file:        LICENSE
author:              Auke Booij
maintainer:          auke@tulcod.com
category:            Text
build-type:          Simple
cabal-version:       >=1.8

source-repository head
  type:     git
  location: https://github.com/tulcod/haskell-xkbcommon.git

library
  exposed-modules:
    Text.XkbCommon,
    Text.XkbCommon.KeysymList,
    Text.XkbCommon.KeycodeList,
    Text.XkbCommon.ModList,
    Text.XkbCommon.Constants,
    Text.XkbCommon.Types,
    Text.XkbCommon.Context,
    Text.XkbCommon.Keymap,
    Text.XkbCommon.KeyboardState,
    Text.XkbCommon.Keysym
  other-modules:
    Text.XkbCommon.ParseDefines,
    Text.XkbCommon.InternalTypes
  -- other-modules:
  build-depends:       base ==4.6.*, transformers, storable-record, process, cpphs, template-haskell, text, bytestring, data-flags, filepath
  -- build-tools:         c2hs

-- this is actually not a test but a benchmark
Benchmark bench-key-proc
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: bench-key-proc.hs
  build-depends : base, xkbcommon, random, vector, time
  extra-libraries: xkbcommon

Test-Suite context
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: context.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon

Test-Suite filecomp
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: filecomp.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon

Test-Suite keyseq
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: keyseq.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon

Test-Suite keysym
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: keysym.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon

Test-Suite rulescomp
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: rulescomp.hs
  build-depends : base, xkbcommon, unix
  extra-libraries: xkbcommon

Test-Suite state
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: state.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon

Test-Suite stringcomp
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules: Common
  main-is: stringcomp.hs
  build-depends : base, xkbcommon
  extra-libraries: xkbcommon