cabal-version: 2.2 name: kmonad version: 0.4.2 x-revision: 2 license: MIT license-file: LICENSE maintainer: janssen.dhj@gmail.com author: David Janssen synopsis: Advanced keyboard remapping utility description: KMonad is a cross-platform command-line utility that runs as a daemon. It captures keyboard input (exactly how depends on the OS) and remaps it. The mapping is highly configurable, and provides options like (transparent) layer overlays, tap-mod buttons, multi-tap buttons, leader-key style buttons, and keyboard macros. Functionality heavily inspired by the QMK-firmware. category: Application build-type: Simple extra-source-files: changelog.md flag kext description: build against the kext [macOS only] default: False flag dext description: build against the dext [macOS only] default: False library exposed-modules: KMonad.App KMonad.App.Main KMonad.App.Types KMonad.Args KMonad.Args.Cmd KMonad.Args.Parser KMonad.Args.Joiner KMonad.Args.TH KMonad.Args.Types KMonad.Model KMonad.Model.Action KMonad.Model.BEnv KMonad.Model.Button KMonad.Model.Dispatch KMonad.Model.Hooks KMonad.Model.Keymap KMonad.Model.Sluice KMonad.Gesture KMonad.Keyboard KMonad.Keyboard.ComposeSeq KMonad.Keyboard.IO KMonad.Keyboard.Keycode KMonad.Keyboard.Ops KMonad.Keyboard.Types KMonad.Parsing KMonad.Prelude KMonad.Prelude.Imports KMonad.Prelude.Definitions KMonad.Util KMonad.Util.LayerStack KMonad.Util.MultiMap Paths_kmonad hs-source-dirs: src autogen-modules: Paths_kmonad default-language: Haskell2010 default-extensions: ConstraintKinds DeriveFunctor DeriveGeneric DeriveTraversable FlexibleContexts FlexibleInstances FunctionalDependencies GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses MultiWayIf NoImplicitPrelude OverloadedStrings RankNTypes TemplateHaskell TupleSections TypeFamilies ghc-options: -Wall -Wno-name-shadowing -Wno-unused-imports build-depends: base <5, cereal <0.6, lens <5.3, megaparsec <9.7, mtl <2.5, optparse-applicative <0.19, resourcet <1.4, rio <0.2, time <1.15, unliftio <0.3, template-haskell <2.22 if os(linux) exposed-modules: KMonad.Keyboard.IO.Linux.DeviceSource KMonad.Keyboard.IO.Linux.Types KMonad.Keyboard.IO.Linux.UinputSink c-sources: c_src/keyio.c build-depends: unix <3 if os(windows) exposed-modules: KMonad.Keyboard.IO.Windows.LowLevelHookSource KMonad.Keyboard.IO.Windows.SendEventSink KMonad.Keyboard.IO.Windows.Types c-sources: c_src/keyio_win.c build-depends: Win32 if os(osx) exposed-modules: KMonad.Keyboard.IO.Mac.IOKitSource KMonad.Keyboard.IO.Mac.KextSink KMonad.Keyboard.IO.Mac.Types frameworks: CoreFoundation IOKit extra-libraries: c++ build-depends: unix <3 if flag(kext) cxx-options: -std=c++14 cxx-sources: c_src/mac/kext.cpp if flag(dext) cxx-options: -std=c++2a cxx-sources: c_src/mac/dext.cpp executable kmonad main-is: Main.hs hs-source-dirs: app default-language: Haskell2010 ghc-options: -threaded -rtsopts -with-rtsopts=-N build-depends: base <5, kmonad test-suite spec type: exitcode-stdio-1.0 main-is: Spec.hs build-tool-depends: hspec-discover:hspec-discover >=2 && <3 hs-source-dirs: test other-modules: KMonad.GestureSpec default-language: Haskell2010 default-extensions: ConstraintKinds DeriveFunctor DeriveGeneric DeriveTraversable FlexibleContexts FlexibleInstances FunctionalDependencies GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses MultiWayIf NoImplicitPrelude OverloadedStrings RankNTypes TemplateHaskell TupleSections TypeFamilies ghc-options: -Wall build-depends: base <5, kmonad, hspec <2.13