import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.EwmhDesktops import XMonad.Actions.CycleWS import System.Exit import System.IO import qualified XMonad.StackSet as W import qualified Data.Map as M myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ [ ((modMask, xK_Return), spawn $ XMonad.terminal conf) , ((modMask, xK_q ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") , ((modMask, xK_l ), spawn "slock") , ((modMask .|. shiftMask, xK_c ), kill) , ((modMask, xK_space ), sendMessage NextLayout) , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) , ((modMask, xK_r ), windows W.focusDown) , ((modMask, xK_g ), windows W.focusUp ) , ((modMask, xK_m ), windows W.focusMaster ) , ((modMask .|. shiftMask, xK_r ), windows W.swapDown ) , ((modMask .|. shiftMask, xK_g ), windows W.swapUp ) , ((modMask, xK_h ), prevWS) , ((modMask, xK_f ), nextWS) , ((modMask .|. shiftMask, xK_q ), io (exitWith ExitSuccess)) , ((modMask , xK_n ), sendMessage (IncMasterN 1)) , ((modMask , xK_t ), sendMessage (IncMasterN (-1))) ] ++ [((m .|. modMask, k), windows $ f i) | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $ [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w)) , ((modMask, button2), (\w -> focus w >> windows W.swapMaster)) , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w)) ] myManageHook = composeAll [ className =? "MPlayer" --> doFloat , className =? "Gimp" --> doFloat , className =? "PacketTracer5" --> doFloat ] myFocusFollowsMouse :: Bool myFocusFollowsMouse = True myConfig = defaultConfig main = do xmonad $ defaultConfig { manageHook = manageDocks <+> manageHook defaultConfig, terminal = "x-terminal-emulator", focusFollowsMouse = myFocusFollowsMouse, borderWidth = 1, modMask = mod1Mask, numlockMask = mod2Mask, workspaces = ["0","1","2","3","4","5","6","7","8","9"], normalBorderColor = "#dddddd", focusedBorderColor = "#ff0000", keys = myKeys, mouseBindings = myMouseBindings, logHook = ewmhDesktopsLogHook, --logHook = dynamicLog, layoutHook = avoidStruts $ layoutHook defaultConfig, startupHook = return() }