Copyright | (c) David Janssen 2019 |
---|---|
License | MIT |
Maintainer | janssen.dhj@gmail.com |
Stability | experimental |
Portability | non-portable (MPTC with FD, FFI to Linux-only c-code) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data CfgToken = CfgToken {}
- data DefButton
- = KRef Text
- | KEmit Keycode
- | KPressOnly Keycode
- | KReleaseOnly Keycode
- | KLayerToggle Text
- | KLayerSwitch Text
- | KLayerAdd Text
- | KLayerRem Text
- | KTapNext DefButton DefButton
- | KTapHold Int DefButton DefButton
- | KTapHoldNext Int DefButton DefButton (Maybe DefButton)
- | KTapNextRelease DefButton DefButton
- | KTapHoldNextRelease Int DefButton DefButton (Maybe DefButton)
- | KTapNextPress DefButton DefButton
- | KAroundNext DefButton
- | KAroundNextSingle DefButton
- | KMultiTap [(Int, DefButton)] DefButton
- | KAround DefButton DefButton
- | KAroundNextTimeout Int DefButton DefButton
- | KTapMacro [DefButton] (Maybe Int)
- | KTapMacroRelease [DefButton] (Maybe Int)
- | KComposeSeq [DefButton]
- | KPause Milliseconds
- | KLayerDelay Int LayerTag
- | KLayerNext LayerTag
- | KCommand Text (Maybe Text)
- | KStickyKey Int DefButton
- | KBeforeAfterNext DefButton DefButton
- | KTrans
- | KBlock
- data DefSetting
- type DefSettings = [DefSetting]
- type DefAlias = [(Text, DefButton)]
- data DefLayer = DefLayer {
- _layerName :: Text
- _buttons :: [DefButton]
- type DefSrc = [Keycode]
- data KExpr
- data IToken
- data OToken
- = KUinputSink Text (Maybe Text)
- | KSendEventSink (Maybe (Int, Int))
- | KKextSink
- class AsKExpr r where
- _KExpr :: Prism' r KExpr
- _KDefCfg :: Prism' r DefSettings
- _KDefSrc :: Prism' r DefSrc
- _KDefLayer :: Prism' r DefLayer
- _KDefAlias :: Prism' r DefAlias
- class AsDefSetting r where
- _DefSetting :: Prism' r DefSetting
- _SIToken :: Prism' r IToken
- _SOToken :: Prism' r OToken
- _SCmpSeq :: Prism' r DefButton
- _SInitStr :: Prism' r Text
- _SFallThrough :: Prism' r Bool
- _SAllowCmd :: Prism' r Bool
- _SCmpSeqDelay :: Prism' r Int
$cfg
$but
Button ADT
KRef Text | Reference a named button |
KEmit Keycode | Emit a keycode |
KPressOnly Keycode | Emit only the press of a keycode |
KReleaseOnly Keycode | Emit only the release of a keycode |
KLayerToggle Text | Toggle to a layer when held |
KLayerSwitch Text | Switch base-layer when pressed |
KLayerAdd Text | Add a layer when pressed |
KLayerRem Text | Remove top instance of a layer when pressed |
KTapNext DefButton DefButton | Do 2 things based on behavior |
KTapHold Int DefButton DefButton | Do 2 things based on behavior and delay |
KTapHoldNext Int DefButton DefButton (Maybe DefButton) | Mixture between KTapNext and KTapHold |
KTapNextRelease DefButton DefButton | Do 2 things based on behavior |
KTapHoldNextRelease Int DefButton DefButton (Maybe DefButton) | Like KTapNextRelease but with a timeout |
KTapNextPress DefButton DefButton | Like KTapNextRelease but also hold on presses |
KAroundNext DefButton | Surround a future button |
KAroundNextSingle DefButton | Surround a future button |
KMultiTap [(Int, DefButton)] DefButton | Do things depending on tap-count |
KAround DefButton DefButton | Wrap 1 button around another |
KAroundNextTimeout Int DefButton DefButton | |
KTapMacro [DefButton] (Maybe Int) | Sequence of buttons to tap, possible delay between each press |
KTapMacroRelease [DefButton] (Maybe Int) | Sequence of buttons to tap, tap last on release, possible delay between each press |
KComposeSeq [DefButton] | Compose-key sequence |
KPause Milliseconds | Pause for a period of time |
KLayerDelay Int LayerTag | Switch to a layer for a period of time |
KLayerNext LayerTag | Perform next button in different layer |
KCommand Text (Maybe Text) | Execute a shell command on press, as well as possibly on release |
KStickyKey Int DefButton | Act as if a button is pressed for a period of time |
KBeforeAfterNext DefButton DefButton | Surround a future button in a before and after tap |
KTrans | Transparent button that does nothing |
KBlock | Button that catches event |
$tls
data DefSetting Source #
All possible single settings
SIToken IToken | |
SOToken OToken | |
SCmpSeq DefButton | |
SInitStr Text | |
SFallThrough Bool | |
SAllowCmd Bool | |
SCmpSeqDelay Int |
Instances
Show DefSetting Source # | |
Defined in KMonad.Args.Types showsPrec :: Int -> DefSetting -> ShowS # show :: DefSetting -> String # showList :: [DefSetting] -> ShowS # | |
Eq DefSetting Source # |
|
Defined in KMonad.Args.Types (==) :: DefSetting -> DefSetting -> Bool # (/=) :: DefSetting -> DefSetting -> Bool # | |
AsDefSetting DefSetting Source # | |
Defined in KMonad.Args.Types _DefSetting :: Prism' DefSetting DefSetting Source # _SIToken :: Prism' DefSetting IToken Source # _SOToken :: Prism' DefSetting OToken Source # _SCmpSeq :: Prism' DefSetting DefButton Source # _SInitStr :: Prism' DefSetting Text Source # _SFallThrough :: Prism' DefSetting Bool Source # |
type DefSettings = [DefSetting] Source #
A list of different DefSetting
values
A layer of buttons
DefLayer | |
|
Any statement in a config-file must parse to a KExpr
$defio
All different input-tokens KMonad can take
All different output-tokens KMonad can take
KUinputSink Text (Maybe Text) | |
KSendEventSink (Maybe (Int, Int)) | |
KKextSink |
$lenses
class AsDefSetting r where Source #
_DefSetting :: Prism' r DefSetting Source #
_SIToken :: Prism' r IToken Source #
_SOToken :: Prism' r OToken Source #
_SCmpSeq :: Prism' r DefButton Source #
_SInitStr :: Prism' r Text Source #
_SFallThrough :: Prism' r Bool Source #
_SAllowCmd :: Prism' r Bool Source #
_SCmpSeqDelay :: Prism' r Int Source #