A better solution for correct ordering :)
This commit is contained in:
parent
527abbe03a
commit
4456299ef5
1 changed files with 28 additions and 2 deletions
30
xmonad.hs
30
xmonad.hs
|
@ -31,6 +31,7 @@ modm = mod4Mask
|
|||
main = xmonad $ ewmh $ defaultConfig
|
||||
{ modMask = modm
|
||||
, manageHook = myManageHook
|
||||
, unmanageHook = myUnmanageHook
|
||||
, layoutHook = desktopLayoutModifiers myLayoutHook
|
||||
, startupHook = myStartupHook
|
||||
, handleEventHook = myEventHook
|
||||
|
@ -108,10 +109,32 @@ myStartupHook = do
|
|||
isUtility :: Query Bool
|
||||
isUtility = isInProperty "_NET_WM_WINDOW_TYPE" "_NET_WM_WINDOW_TYPE_UTILITY"
|
||||
|
||||
stackHook :: (Window -> W.Stack Window -> W.Stack Window) -> ManageHook
|
||||
stackHook f = ask >>= \w -> doF $ \s -> s { W.current = mapScreen w (W.current s)
|
||||
, W.visible = map (mapScreen w) (W.visible s)
|
||||
, W.hidden = map (mapWorkspace w) (W.hidden s)
|
||||
}
|
||||
where
|
||||
mapWorkspace w ws = ws { W.stack = fmap (f w) $ W.stack ws }
|
||||
mapScreen w scr = scr { W.workspace = mapWorkspace w (W.workspace scr) }
|
||||
|
||||
moveDown1 :: ManageHook
|
||||
moveDown1 = stackHook down
|
||||
where
|
||||
down w (W.Stack c u (d:dx)) | c == w = W.Stack c (d:u) dx
|
||||
down _ stack = stack
|
||||
|
||||
moveUp1 :: ManageHook
|
||||
moveUp1 = stackHook up
|
||||
where
|
||||
up w (W.Stack c (u:ux) d) | c == w = W.Stack c ux (u:d)
|
||||
up _ stack = stack
|
||||
|
||||
|
||||
myManageHook :: ManageHook
|
||||
myManageHook = composeAll
|
||||
[ isDialog --> doFloat
|
||||
[ moveDown1
|
||||
, isDialog --> doFloat
|
||||
, composeOne
|
||||
[ className =? "Guake.py" -?> doFloatMaybeFullscreen -- <+> doConfigBorderOff)
|
||||
--, className =? "Do" -?> (doFloat <+> doConfigBorderOff)
|
||||
|
@ -129,7 +152,10 @@ myManageHook = composeAll
|
|||
, isUtility =? False --> doAutoShift
|
||||
, manageHook desktopConfig
|
||||
]
|
||||
|
||||
|
||||
myUnmanageHook :: ManageHook
|
||||
myUnmanageHook = moveUp1
|
||||
|
||||
|
||||
myLayoutHook = processWorkspaceManager $ manageFullscreen $ smartBorders (Full ||| tiled ||| Mirror tiled)
|
||||
where
|
||||
|
|
Reference in a new issue