import System.IO import System.Posix.Env (putEnv) import XMonad import XMonad.Actions.CycleWS import XMonad.Actions.CycleWindows import XMonad.Hooks.SetWMName import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Layout.MultiColumns import XMonad.Util.EZConfig import XMonad.Util.Run(spawnPipe) main = do putEnv "_JAVA_AWT_WM_NONREPARENTING=1" -- java GUIs; see https://code.google.com/p/xmonad/issues/detail?id=559#c11 xmproc <- spawnPipe "xmobar" xmonad $ defaultConfig { modMask = mod4Mask , focusFollowsMouse = False , layoutHook = avoidStruts $ myLayouts , logHook = dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = xmobarColor "green" "" . shorten 50 } , manageHook = manageDocks <+> manageHook defaultConfig , terminal = "uxterm" , borderWidth = 1 } `additionalKeysP` myKeys myKeys = [ ("M-", spawn "xbacklight -dec 5 -time 80") , ("M-", spawn "xbacklight -inc 5 -time 80") , ("", spawn "amixer sset 'Master' toggle") , ("", spawn "amixer sset 'Master' 1%+") , ("", spawn "amixer sset 'Master' 1%-") , ("", spawn "sudo pm-suspend") , ("", spawn "sudo -A ./bin/kbdbacklight up") , ("", spawn "sudo -A ./bin/kbdbacklight down") , ("M-", nextWS) , ("M-", prevWS) , ("M-S-p", spawn "passmenu -i") , ("M-v", spawn "uxterm -e vim") , ("M-m", spawn "uxterm -e cmus") ] myLayouts = Tall 1 0.01 0.5 ||| multiCol [1,1,0] 4 0.01 0.4 ||| Full