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
|
main = xmonad $ ewmh $ defaultConfig
|
||||||
{ modMask = modm
|
{ modMask = modm
|
||||||
, manageHook = myManageHook
|
, manageHook = myManageHook
|
||||||
|
, unmanageHook = myUnmanageHook
|
||||||
, layoutHook = desktopLayoutModifiers myLayoutHook
|
, layoutHook = desktopLayoutModifiers myLayoutHook
|
||||||
, startupHook = myStartupHook
|
, startupHook = myStartupHook
|
||||||
, handleEventHook = myEventHook
|
, handleEventHook = myEventHook
|
||||||
|
@ -108,10 +109,32 @@ myStartupHook = do
|
||||||
isUtility :: Query Bool
|
isUtility :: Query Bool
|
||||||
isUtility = isInProperty "_NET_WM_WINDOW_TYPE" "_NET_WM_WINDOW_TYPE_UTILITY"
|
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 :: ManageHook
|
||||||
myManageHook = composeAll
|
myManageHook = composeAll
|
||||||
[ isDialog --> doFloat
|
[ moveDown1
|
||||||
|
, isDialog --> doFloat
|
||||||
, composeOne
|
, composeOne
|
||||||
[ className =? "Guake.py" -?> doFloatMaybeFullscreen -- <+> doConfigBorderOff)
|
[ className =? "Guake.py" -?> doFloatMaybeFullscreen -- <+> doConfigBorderOff)
|
||||||
--, className =? "Do" -?> (doFloat <+> doConfigBorderOff)
|
--, className =? "Do" -?> (doFloat <+> doConfigBorderOff)
|
||||||
|
@ -129,7 +152,10 @@ myManageHook = composeAll
|
||||||
, isUtility =? False --> doAutoShift
|
, isUtility =? False --> doAutoShift
|
||||||
, manageHook desktopConfig
|
, manageHook desktopConfig
|
||||||
]
|
]
|
||||||
|
|
||||||
|
myUnmanageHook :: ManageHook
|
||||||
|
myUnmanageHook = moveUp1
|
||||||
|
|
||||||
|
|
||||||
myLayoutHook = processWorkspaceManager $ manageFullscreen $ smartBorders (Full ||| tiled ||| Mirror tiled)
|
myLayoutHook = processWorkspaceManager $ manageFullscreen $ smartBorders (Full ||| tiled ||| Mirror tiled)
|
||||||
where
|
where
|
||||||
|
|
Reference in a new issue