BSD-3-Clause licensed and maintained by Toshio Ito
This version can be pinned in stack with:wild-bind-,2601


WildBind is a dynamic and programmable key binding framework. See for WildBind in general.

Architecture and Terminology

WildBind consists of FrontEnd and Binding.

(user) --input-> |   desktop env.    |---[FrontEnd]---[Binding]
                 |                   |                    |
                 | (front-end state) |             (back-end state)
  • A FrontEnd interfaces with a desktop environment. It reads input from the user and the state of the desktop environment. The state is called “front-end state”. FrontEnd passes those two kinds of data to Binding.
  • A Binding binds actions to input symbols. Optionally it has its own state, which is called “back-end state”.

wild-bind Packages

  • wild-bind: WildBind core data types and functions. This package defines FrontEnd, Binding and other common types. Although WildBind is mainly targeted to number pads, its core is independent of any input types or desktop environments.
  • wild-bind-x11: A FrontEnd implementation for X11 desktop environments.
  • wild-bind-indicator: A GUI that describes current Binding to the user.
  • wild-bind-task-x11: A bundle package that combines all packages above. End users should use this package first.


Toshio Ito <debug.ito at>


Revision history for wild-bind – 2018-06-19

  • Confirmed test with containers- – 2018-04-10

  • Add Semigroup instance to Binding and SeqBinding.
  • Confirmed test with base-4.11. – 2018-03-14

  • Confirmed test with hspec-2.5.0. Remove its dependency upper bound, because I think it’s stable enough. – 2018-01-01

  • Description: add Describable instance of Either.
  • Binding: add some functions: bindsF, bindsF', bindingF, bindingF', revise, revise', justBefore, justAfter
  • FrontEnd: derive Eq and Ord for FrontEvent.
  • Add WildBind.Seq module.
  • .cabal: use other-extensions instead of default-extensions. – 2017-01-24

  • Confirmed build with hspec-2.4.0. – 2016-10-09

  • Confirmed build with hspec-2.3.0. – 2016-09-22

  • Fix URL in package description. – 2016-09-22

  • First version. Released on an unsuspecting world.