import XMonad import XMonad.Config.Desktop import XMonad.Layout.NoBorders import XMonad.Layout.Tabbed import XMonad.Layout.AvoidFloats import XMonad.Layout.Monitor import XMonad.Util.EZConfig (additionalKeys) import XMonad.Actions.PhysicalScreens main :: IO () main = xmonad $ desktopConfig { terminal = "xterm" , layoutHook = desktopLayoutModifiers layouts , modMask = theModMask } `additionalKeys` myKeys where theModMask = mod4Mask modm = theModMask myKeys = [((theModMask, xK_u ), broadcastMessage ToggleMonitor >> refresh)] ++ fixScreenOrder fixScreenOrder = [((modm .|. mask, key), f sc) | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..], (f, mask) <- [(viewScreen def, 0), (sendToScreen def, shiftMask)]] layouts = noBorders Full ||| noBorders (tabbed shrinkText def) ||| smartBorders tiled ||| smartBorders (Mirror tiled) tiled = avoidFloats $ Tall nmaster delta ratio nmaster = 1 -- The default number of windows in the master pane ratio = 2 / 3 -- Default proportion of screen occupied by master pane delta = 3 / 100 -- Percent of screen to increment by when resizing panes