From 8bbebbac643adc4115ff3a1352802e76fe0740fe Mon Sep 17 00:00:00 2001 From: Alexander Kobjolke Date: Sat, 2 Mar 2024 23:39:55 +0100 Subject: [PATCH] xmonad: Manage fullscreen games correctly --- modules/wm/xmonad/config.hs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/wm/xmonad/config.hs b/modules/wm/xmonad/config.hs index c9908cf..e147ebc 100644 --- a/modules/wm/xmonad/config.hs +++ b/modules/wm/xmonad/config.hs @@ -3,11 +3,14 @@ import XMonad.Actions.CycleWS qualified as WS import XMonad.Actions.Navigation2D (navigation2DP, windowGo, windowSwap) import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.ManageDocks qualified as Docks +import XMonad.Hooks.ManageHelpers (doFullFloat, isDialog, isFullscreen) import XMonad.Hooks.SetWMName import XMonad.Layout.BinarySpacePartition import XMonad.Layout.BorderResize (borderResize) +import XMonad.Layout.NoBorders (smartBorders) import XMonad.Layout.ThreeColumns import XMonad.Layout.ToggleLayouts (ToggleLayout (..), toggleLayouts) +import XMonad.ManageHook (doFloat) import XMonad.Util.EZConfig qualified as EZ import XMonad.Util.Ungrab (unGrab) @@ -31,9 +34,7 @@ compileRestart resume = do executeFile (cacheDir dirs compiledConfig) False args Nothing ) -myLayout = borderResize $ Docks.avoidStruts layout - where - layout = emptyBSP ||| Full +myLayout = smartBorders . borderResize . Docks.avoidStruts $ toggleLayouts emptyBSP Full main :: IO () main = getDirectories >>= launch myConfig @@ -60,16 +61,22 @@ changeVolume :: VolumeCommand -> X () changeVolume = spawn . interpretVolumeCommand myConfig = - Docks.docks + ewmhFullscreen . ewmh - . ewmhFullscreen + . Docks.docks . nav $ def { modMask = mod4Mask -- Use Super instead of Alt , terminal = "alacritty" , layoutHook = myLayout + , handleEventHook = handleEventHook def <+> fullscreenEventHook , -- this seems to be necessary to make java gui applications work :( startupHook = ewmhDesktopsStartup >> setWMName "LG3D" + , manageHook = + mconcat + [ isDialog --> doFloat + , isFullscreen --> doFullFloat + ] } `EZ.additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock") , ("M-S-r", compileRestart True)