sendMessage that provides knowledge
of whether the message was handled, and utility functions based on
- send :: Message a => a -> X Bool
- tryMessage :: (Message a, Message b) => a -> b -> X Bool
- tryMessage_ :: (Message a, Message b) => a -> b -> X ()
- tryInOrder :: [SomeMessage] -> X Bool
- tryInOrder_ :: [SomeMessage] -> X ()
- sm :: Message a => a -> SomeMessage
- sendSM :: SomeMessage -> X Bool
- sendSM_ :: SomeMessage -> X ()
You can use this module with the following in your
You can then use this module's functions wherever an action is expected.
Note that most functions in this module have a return type of
whereas configuration options will expect a
X () action.
For example, the key binding
-- Shrink the master area of a tiled layout, or move the focused window -- to the left in a WindowArranger-based layout ((modKey, xK_Left), tryMessage Shrink (MoveLeft 50))
is mis-typed. For this reason, this module provides alternatives (ending with
an underscore, e.g. tryMessage_) that discard their result and return an
For example, to correct the previous example:
((modKey, xK_Left), tryMessage_ Shrink (MoveLeft 50))
sendMessage, but returns True of the
message was handled by the layout, False otherwise.
Sends the first message, and if it was not handled, sends the second. Returns True if either message was handled, False otherwise.
Tries sending every message of the list in order until one of them is handled. Returns True if one of the messages was handled, False otherwise.