Portability | unportable |
---|---|
Stability | unstable |
Maintainer | Adam Vogt <vogt.adam@gmail.com> |
Import XMonad.Config.Alt.
- module XMonad.Config.Alt.QQ
- runConfig :: (Monad m, Read (l Window), HMap Snd l2 l1, LayoutClass l Window, HCompose l1 (m (XConfig (Choose Tall (Choose (Mirror Tall) Full))) -> Config (XConfig l)), HCompose (HCons t t1) (HNil -> l2)) => HCons t t1 -> IO ()
- runConfig' :: (Monad m, HMap Snd l1 l, HCompose l (m a -> Config b), HCompose (HCons t t1) (HNil -> l1)) => a -> HCons t t1 -> IO b
- set :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Set field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- add :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Add field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- modify :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Modify field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- modifyIO :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode ModifyIO field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- modifyIO' :: (HLength l ll, HLt ll n b, Mode ModifyIO field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => hold -> n -> field -> e -> l -> l'
- insertInto :: (HLength l ll, HLt ll n b, Mode action field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => action -> hold -> n -> field -> e -> l -> l'
- data LayoutHook = LayoutHook
- data FocusFollowsMouse = FocusFollowsMouse
- data StartupHook = StartupHook
- data LogHook = LogHook
- data BorderWidth = BorderWidth
- data MouseBindings = MouseBindings
- data Keys = Keys
- data ModMask = ModMask
- data Workspaces = Workspaces
- data HandleEventHook = HandleEventHook
- data ManageHook = ManageHook
- data Terminal = Terminal
- data FocusedBorderColor = FocusedBorderColor
- data NormalBorderColor = NormalBorderColor
- defaultPrec :: HSucc (HSucc (HSucc (HSucc HZero)))
- insLt :: (HLength l1 b, HAppend l (HCons (t, t1) HNil) l'', HAppend l1 l' l, HReplicateF n Id l', HSubtract a b n) => a -> t -> t1 -> l1 -> l''
- insGeq :: (HLookupByHNat n l (t1, a -> b), HUpdateAtHNat n e l l', HCond t1 (t1, a -> b) (t, a -> c) e) => n -> t -> (b -> c) -> l -> l'
- class HBool hold => Ins2 b n hold f l l' | b n hold f l -> l' where
- ins2 :: b -> n -> hold -> f -> l -> l'
- class Ins' n hold f l l' | n hold f l -> l' where
- ins' :: n -> hold -> f -> l -> l'
- ins :: (Monad m, HLength l ll, HLt ll n b, Ins2 b n HFalse (m a -> m b1) l l') => n -> (a -> m b1) -> l -> l'
- class HCompose l f | l -> f where
- hComp :: l -> f
- data Snd = Snd
- class HSubtract a b c | a b -> c where
- hSubtract :: a -> b -> c
- class HNat n => HReplicateF n e l | n e -> l where
- hReplicateF :: n -> e -> l
- class HPred' n n' | n -> n' where
- hPred' :: n -> n'
- class Mode action field e x y | action field e x -> y, action field x y -> e where
- data Add = Add
- data Set = Set
- data Modify = Modify
- data ModifyIO = ModifyIO
- newtype Config a = Config (WriterT Warnings IO a)
- test :: IO ()
- module Data.HList
Documentation
module XMonad.Config.Alt.QQ
Running
runConfig :: (Monad m, Read (l Window), HMap Snd l2 l1, LayoutClass l Window, HCompose l1 (m (XConfig (Choose Tall (Choose (Mirror Tall) Full))) -> Config (XConfig l)), HCompose (HCons t t1) (HNil -> l2)) => HCons t t1 -> IO ()Source
runConfig' :: (Monad m, HMap Snd l1 l, HCompose l (m a -> Config b), HCompose (HCons t t1) (HNil -> l1)) => a -> HCons t t1 -> IO bSource
Actions
Use set
, add
, modify
, modifyIO
for most predefined fields in XConfig
.
For constructing things to modify a config:
insertInto action hold prec field v
-
action
is an instance ofMode
so you only need to writeModifyIO
to describe how to access this field. -
hold
isHTrue
if you don't want to overwrite a preexisting value at the sameprec
. This is for things that should be applied once-only. -
field
used with theMode
-
v
the value that is being updated (or a function if you useModify
or similar)
set :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Set field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'Source
add :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Add field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'Source
modify :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Modify field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'Source
modifyIO :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode ModifyIO field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'Source
less useful
modifyIO' :: (HLength l ll, HLt ll n b, Mode ModifyIO field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => hold -> n -> field -> e -> l -> l'Source
insertInto :: (HLength l ll, HLt ll n b, Mode action field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => action -> hold -> n -> field -> e -> l -> l'Source
Things to modify
Special
data LayoutHook Source
Represent setting layouts and layout modifiers
LayoutClass l' Window => Mode Set LayoutHook (l' Window) l l' | |
(LayoutClass l Window, LayoutClass l' Window) => Mode Add LayoutHook (l' Window) l (Choose l' l) |
|
Mode ModifyIO LayoutHook (l Window -> Config (m Window)) l m | |
(Read (l Window), LayoutClass l Window, Read (l' Window), LayoutClass l' Window) => Mode Modify LayoutHook (l Window -> l' Window) l l' |
Others
data FocusFollowsMouse Source
Fail (Expected Bool) => Mode ModifyIO FocusFollowsMouse x0 l0 l0 | |
Fail (Expected Bool) => Mode Modify FocusFollowsMouse x0 l0 l0 | |
Mode Set FocusFollowsMouse Bool l0 l0 | |
Fail (Expected Bool) => Mode Set FocusFollowsMouse x0 l0 l0 | |
Mode ModifyIO FocusFollowsMouse (Bool -> Config Bool) l0 l0 | |
Mode Modify FocusFollowsMouse (Bool -> Bool) l0 l0 |
data StartupHook Source
Fail (Expected (X ())) => Mode ModifyIO StartupHook x0 l0 l0 | |
Fail (Expected (X ())) => Mode Modify StartupHook x0 l0 l0 | |
Fail (Expected (X ())) => Mode Set StartupHook x0 l0 l0 | |
Mode Set StartupHook (X ()) l0 l0 | |
Mode ModifyIO StartupHook (X () -> Config (X ())) l0 l0 | |
Mode Modify StartupHook (X () -> X ()) l0 l0 |
data BorderWidth Source
Fail (Expected Dimension) => Mode ModifyIO BorderWidth x0 l0 l0 | |
Fail (Expected Dimension) => Mode Modify BorderWidth x0 l0 l0 | |
Fail (Expected Dimension) => Mode Set BorderWidth x0 l0 l0 | |
Mode Set BorderWidth Dimension l0 l0 | |
Mode ModifyIO BorderWidth (Dimension -> Config Dimension) l0 l0 | |
Mode Modify BorderWidth (Dimension -> Dimension) l0 l0 |
data MouseBindings Source
Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode ModifyIO MouseBindings x0 l0 l0 | |
Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode Modify MouseBindings x0 l0 l0 | |
Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode Set MouseBindings x0 l0 l0 | |
Mode ModifyIO MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> Config (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) l0 l0 | |
Mode Modify MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l0 l0 | |
Mode Set MouseBindings (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l0 l0 |
Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode ModifyIO Keys x0 l0 l0 | |
Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode Modify Keys x0 l0 l0 | |
Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode Set Keys x0 l0 l0 | |
Mode ModifyIO Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> Config (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) l0 l0 | |
Mode Modify Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l0 l0 | |
Mode Set Keys (XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l0 l0 |
Fail (Expected KeyMask) => Mode ModifyIO ModMask x0 l0 l0 | |
Fail (Expected KeyMask) => Mode Modify ModMask x0 l0 l0 | |
Fail (Expected KeyMask) => Mode Set ModMask x0 l0 l0 | |
Mode Set ModMask KeyMask l0 l0 | |
Mode ModifyIO ModMask (KeyMask -> Config KeyMask) l0 l0 | |
Mode Modify ModMask (KeyMask -> KeyMask) l0 l0 |
data Workspaces Source
Fail (Expected [String]) => Mode ModifyIO Workspaces x0 l0 l0 | |
Fail (Expected [String]) => Mode Modify Workspaces x0 l0 l0 | |
Fail (Expected [String]) => Mode Set Workspaces x0 l0 l0 | |
Mode Set Workspaces [String] l0 l0 | |
Mode ModifyIO Workspaces ([String] -> Config [String]) l0 l0 | |
Mode Modify Workspaces ([String] -> [String]) l0 l0 |
data HandleEventHook Source
Fail (Expected (Event -> X All)) => Mode ModifyIO HandleEventHook x0 l0 l0 | |
Fail (Expected (Event -> X All)) => Mode Modify HandleEventHook x0 l0 l0 | |
Fail (Expected (Event -> X All)) => Mode Set HandleEventHook x0 l0 l0 | |
Mode ModifyIO HandleEventHook ((Event -> X All) -> Config (Event -> X All)) l0 l0 | |
Mode Modify HandleEventHook ((Event -> X All) -> Event -> X All) l0 l0 | |
Mode Set HandleEventHook (Event -> X All) l0 l0 |
data ManageHook Source
Fail (Expected ManageHook) => Mode ModifyIO ManageHook x0 l0 l0 | |
Fail (Expected ManageHook) => Mode Modify ManageHook x0 l0 l0 | |
Fail (Expected ManageHook) => Mode Set ManageHook x0 l0 l0 | |
Mode Set ManageHook ManageHook l0 l0 | |
Mode ModifyIO ManageHook (ManageHook -> Config ManageHook) l0 l0 | |
Mode Modify ManageHook (ManageHook -> ManageHook) l0 l0 |
data FocusedBorderColor Source
Fail (Expected String) => Mode ModifyIO FocusedBorderColor x0 l0 l0 | |
Fail (Expected String) => Mode Modify FocusedBorderColor x0 l0 l0 | |
Mode Set FocusedBorderColor String l0 l0 | |
Fail (Expected String) => Mode Set FocusedBorderColor x0 l0 l0 | |
Mode ModifyIO FocusedBorderColor (String -> Config String) l0 l0 | |
Mode Modify FocusedBorderColor (String -> String) l0 l0 |
data NormalBorderColor Source
Fail (Expected String) => Mode ModifyIO NormalBorderColor x0 l0 l0 | |
Fail (Expected String) => Mode Modify NormalBorderColor x0 l0 l0 | |
Mode Set NormalBorderColor String l0 l0 | |
Fail (Expected String) => Mode Set NormalBorderColor x0 l0 l0 | |
Mode ModifyIO NormalBorderColor (String -> Config String) l0 l0 | |
Mode Modify NormalBorderColor (String -> String) l0 l0 |
Relatively private
You probably don't need these
Ordered Insertion into HLists like [(Nat,a)]
insLt :: (HLength l1 b, HAppend l (HCons (t, t1) HNil) l'', HAppend l1 l' l, HReplicateF n Id l', HSubtract a b n) => a -> t -> t1 -> l1 -> l''Source
insGeq :: (HLookupByHNat n l (t1, a -> b), HUpdateAtHNat n e l l', HCond t1 (t1, a -> b) (t, a -> c) e) => n -> t -> (b -> c) -> l -> l'Source
class HBool hold => Ins2 b n hold f l l' | b n hold f l -> l' whereSource
utility class, so that we can use contexts that may not be satisfied, depending on the length of the accumulated list.
(HLength l n, HSubtract a1 n a, HReplicateF a Id l', HAppend l l' l'', HAppend l'' (HCons (hold, e) HNil) l''1, HBool hold) => Ins2 HTrue a1 hold e l l''1 | when l needs to be padded with id |
(HLookupByHNat n l (t, a -> b), HUpdateAtHNat n z l l', HCond t (t, a -> b) (t1, a -> c) z, HBool t1) => Ins2 HFalse n t1 (b -> c) l l' | when l already has enough elements, just compose. Only when the existing HBool is HFalse |
ins :: (Monad m, HLength l ll, HLt ll n b, Ins2 b n HFalse (m a -> m b1) l l') => n -> (a -> m b1) -> l -> l'Source
Useful functions
class HNat n => HReplicateF n e l | n e -> l whereSource
hReplicateF :: n -> e -> lSource
HReplicateF HZero e HNil | |
(Apply e x y, HReplicateF n e r) => HReplicateF (HSucc n) e (:*: (HFalse, x -> y) r) |
For overloading
class Mode action field e x y | action field e x -> y, action field x y -> e whereSource
(LayoutClass l Window, LayoutClass l' Window) => Mode Add LayoutHook (l' Window) l (Choose l' l) |
|
Verification that insertions happen in order
(T1 (),"3") (T2 (T1 ()),"31") (T2 (T3 (T1 ())),"321") (T2 (T3a (T3 (T1 ()))),"3221")
module Data.HList