1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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
|