【发布时间】:2017-07-08 19:44:03
【问题描述】:
我想实现由自定义布局处理的自定义消息。
data ModifySideContainer = IncrementLeftColumnContainer | IncrementRightColumnContainer deriving Typeable
instance Message ModifySideContainer
我不太清楚如何处理pureMessage(https://hackage.haskell.org/package/xmonad-0.13/docs/XMonad-Core.html#v:pureMessage) 中的自定义消息
这是我当前的 pureMessage 实现(在自定义布局中):
pureMessage l@(MiddleColumn sr mcc deltaInc _) m = msum [
fmap resize (fromMessage m),
fmap incmastern (fromMessage m)
]
where
resize Expand = l {splitRatio = (min 0.5 $ sr + deltaInc)}
resize Shrink = l {splitRatio = (max 0 $ sr - deltaInc)}
incmastern (IncMasterN x) = l { middleColumnCount = max 0 (mcc+x) }
我不太明白这个逻辑是如何工作的(我从某个地方复制了它),msum 在这里做什么?我想我一旦找到mplus 的实例声明Maybe 就会知道。
【问题讨论】:
标签: xmonad