Keep discover-overlay above other windows in XMonad
discover-overlay's windows are override-redirect, so XMonad doesn't manage them and raising a floating window (e.g. a game) covers them. Raise them again from the log hook after every change.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import Data.Monoid
|
import Data.Monoid
|
||||||
import Graphics.X11.ExtraTypes.XF86
|
import Graphics.X11.ExtraTypes.XF86
|
||||||
import Control.Monad (liftM2)
|
import Control.Monad (forM_, liftM2, when)
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Actions.PhysicalScreens
|
import XMonad.Actions.PhysicalScreens
|
||||||
import XMonad.Hooks.EwmhDesktops
|
import XMonad.Hooks.EwmhDesktops
|
||||||
@@ -120,7 +120,8 @@ myConfig =
|
|||||||
layoutHook = myLayoutHook,
|
layoutHook = myLayoutHook,
|
||||||
startupHook = myStartupHook,
|
startupHook = myStartupHook,
|
||||||
manageHook = myManageHook,
|
manageHook = myManageHook,
|
||||||
handleEventHook = myHandleEventHook
|
handleEventHook = myHandleEventHook,
|
||||||
|
logHook = myLogHook
|
||||||
}
|
}
|
||||||
`additionalKeysP` [ ("M-b", sendMessage ToggleStruts),
|
`additionalKeysP` [ ("M-b", sendMessage ToggleStruts),
|
||||||
("M-S-l", spawn "slock"),
|
("M-S-l", spawn "slock"),
|
||||||
@@ -295,3 +296,17 @@ myHandleEventHook =
|
|||||||
<> Hacks.trayerAboveXmobarEventHook
|
<> Hacks.trayerAboveXmobarEventHook
|
||||||
<> Hacks.trayerPaddingXmobarEventHook
|
<> Hacks.trayerPaddingXmobarEventHook
|
||||||
<> Hacks.fixSteamFlicker
|
<> Hacks.fixSteamFlicker
|
||||||
|
|
||||||
|
-- Log hook
|
||||||
|
myLogHook :: X ()
|
||||||
|
myLogHook = raiseDiscoverOverlay
|
||||||
|
|
||||||
|
-- discover-overlay's windows are override-redirect, so xmonad doesn't manage them and
|
||||||
|
-- raising a floating window (e.g. a game) covers them; put them back on top after every change
|
||||||
|
raiseDiscoverOverlay :: X ()
|
||||||
|
raiseDiscoverOverlay = withDisplay $ \d -> do
|
||||||
|
root <- asks theRoot
|
||||||
|
(_, _, ws) <- io $ queryTree d root
|
||||||
|
forM_ ws $ \w -> do
|
||||||
|
cls <- io $ getClassHint d w
|
||||||
|
when (resClass cls == "Discover-overlay") $ io $ raiseWindow d w
|
||||||
|
|||||||
Reference in New Issue
Block a user