kmonad-0.4.4: kmonad.cabal
cabal-version: 2.2
name: kmonad
category: Application
version: 0.4.4
synopsis: Advanced keyboard remapping utility
author: David Janssen
maintainer: janssen.dhj@gmail.com
license: MIT
license-file: LICENSE
build-type: Simple
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.
extra-doc-files:
changelog.md
doc/quick-reference.md
keymap/tutorial.kbd
flag kext
description: build against the kext [macOS only]
default: False
flag dext
description: build against the dext [macOS only]
default: False
library
default-language:
Haskell2010
hs-source-dirs:
src
ghc-options:
-Wall
-Wno-name-shadowing
-Wno-unused-imports
build-depends:
base >= 4.12 && < 5
, cereal
-- , hspec
, lens
, megaparsec
, mtl
, transformers
, optparse-applicative
, resourcet
, rio
, time
, unliftio
, template-haskell
default-extensions:
ConstraintKinds
DeriveFunctor
DeriveGeneric
DeriveDataTypeable
DeriveTraversable
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
NoImplicitPrelude
OverloadedStrings
RankNTypes
TemplateHaskell
TupleSections
TypeFamilies
autogen-modules:
Paths_kmonad
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
-- We always export them, so we can test them
KMonad.Keyboard.IO.Linux.Types
KMonad.Keyboard.IO.Mac.Types
KMonad.Keyboard.IO.Windows.Types
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
if os(linux)
exposed-modules:
KMonad.Keyboard.IO.Linux.DeviceSource
KMonad.Keyboard.IO.Linux.UinputSink
c-sources:
c_src/keyio.c
build-depends:
unix
if os(windows)
exposed-modules:
KMonad.Keyboard.IO.Windows.LowLevelHookSource
KMonad.Keyboard.IO.Windows.SendEventSink
c-sources:
c_src/keyio_win.c
build-depends:
Win32
if os(darwin)
exposed-modules:
KMonad.Keyboard.IO.Mac.IOKitSource
KMonad.Keyboard.IO.Mac.KextSink
if flag(kext)
cxx-sources:
c_src/mac/kext.cpp
cxx-options:
-std=c++14
if flag(dext)
cxx-sources:
c_src/mac/dext.cpp
cxx-options:
-std=c++2a
extra-libraries:
c++
build-depends:
unix
frameworks:
CoreFoundation
IOKit
executable kmonad
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
main-is:
Main.hs
default-language:
Haskell2010
hs-source-dirs:
app
build-depends:
base >= 4.12 && < 5
, kmonad
test-suite spec
main-is: Spec.hs
type: exitcode-stdio-1.0
hs-source-dirs:
test
ghc-options:
-Wall
build-depends:
base >= 4.12 && < 5
, kmonad
, hspec
, rio
other-modules:
KMonad.ButtonDocSpec
KMonad.GestureSpec
KMonad.ComposeSeqSpec
KMonad.KeycodeSpec
default-language:
Haskell2010
build-tool-depends: hspec-discover:hspec-discover == 2.*
default-extensions:
ConstraintKinds
DeriveFunctor
DeriveGeneric
DeriveDataTypeable
DeriveTraversable
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
NoImplicitPrelude
OverloadedStrings
RankNTypes
TemplateHaskell
TupleSections
TypeFamilies