kmonad-0.4.2: kmonad.cabal
cabal-version: 2.2
name: kmonad
version: 0.4.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 <4.18,
cereal <0.6,
lens <5.3,
megaparsec <9.4,
mtl <2.3,
optparse-applicative <0.18,
resourcet <1.3,
rio <0.2,
time <1.13,
unliftio <0.3,
template-haskell <2.20
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 <2.8
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 <2.8
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 <4.18,
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 <4.18,
kmonad,
hspec <2.11