dots/xmonad.hs

48 lines
1.2 KiB
Haskell
Raw Normal View History

2008-11-10 13:07:17 -06:00
import XMonad
import XMonad.Layout.Grid
2009-01-07 00:57:27 -05:00
import XMonad.Layout.NoBorders(smartBorders)
2008-11-10 13:07:17 -06:00
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Prompt
2009-01-07 00:57:27 -05:00
import XMonad.Prompt.Shell(shellPrompt)
2009-01-07 00:57:27 -05:00
import System.IO(hPutStrLn)
2008-11-10 13:07:17 -06:00
myLayoutHook = tiled ||| Mirror tiled ||| Grid ||| Full
where
-- default tiling algorithm partitions the screen into two panes
tiled = Tall nmaster delta ratio
-- The default number of windows in the master pane
nmaster = 1
-- Default proportion of screen occupied by master pane
ratio = 1/2
-- Percent of screen to increment by when resizing panes
delta = 3/100
2009-01-07 00:57:27 -05:00
myModMask = mod1Mask
2008-11-10 13:07:17 -06:00
main = do
xmproc <- spawnPipe "xmobar"
xmonad $ defaultConfig {
manageHook = manageDocks <+> manageHook defaultConfig,
layoutHook = avoidStruts $ smartBorders $ myLayoutHook,
2008-11-10 13:07:17 -06:00
logHook = dynamicLogWithPP $ xmobarPP {
ppOutput = hPutStrLn xmproc,
2008-11-10 13:13:25 -06:00
ppTitle = xmobarColor "green" ""
2009-01-07 00:57:27 -05:00
},
modMask = myModMask
} `additionalKeys`
[
((myModMask, xK_p), shellPrompt defaultXPConfig { position = Top }),
2009-01-07 00:57:27 -05:00
((myModMask, xK_b), sendMessage ToggleStruts)
]