import XMonad import XMonad.Util.EZConfig import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import System.IO import XMonad.Util.Run import XMonad.Actions.WindowGo import XMonad.Actions.Submap import XMonad.Layout.NoBorders import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.SetWMName import XMonad.Hooks.ManageHelpers import qualified Data.Map as M myManageHook = composeAll [ className =? "MPlayer" --> doFloat , className =? "Vlc" --> doFloat , className =? "feh" --> doFloat , className =? "VirtualBox" --> doFloat , className =? "Opera" --> doShift "2" , className =? "Mozilla Firefox" --> doShift "2" , className =? "TeamSpeak.bin" --> doShift "3" , className =? "Skype" --> doShift "3" , className =? "ossxmix" --> doShift "3" , className =? "Operapluginwrapper" --> doFullFloat , className =? "Sonata" --> doShift "6" , className =? "Wine" --> doShift "5" , className =? "Eclipse" --> doShift "3" ] main = do xmobar <- spawnPipe "xmobar" xmonad $ defaultConfig { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig , workspaces = ["1", "2", "3", "4", "5", "6"] , normalBorderColor = "#000000" , focusedBorderColor = "#45519a" , borderWidth = 2 , modMask = mod4Mask , terminal = "urxvt -fn '-xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-15'" , startupHook = do setWMName "LG3D" unsafeSpawn "feh --bg-scale /archive/pictures/wallpapers/widescreen/WallPaperHD_006.jpg" unsafeSpawn "trayer --expand true --edge top --align right --transparent true --tint black --SetDockType true --SetPartialStrut true --expand true --height 18 --width 3" , layoutHook = avoidStruts $ smartBorders $ layoutHook defaultConfig , logHook = dynamicLogWithPP defaultPP { ppTitle = xmobarColor "#e7e7e7" "" . shorten 65 , ppLayout = (>> "") , ppCurrent = xmobarColor "#e7e7e7" "#45519a" . wrap " " " " , ppVisible = wrap "" "" , ppSep = xmobarColor "#000000" "" " :: " , ppOutput = hPutStrLn xmobar } } `additionalKeys` [ ((mod4Mask, xK_x), submap . M.fromList $ [ ((0, xK_f), runOrRaise "firefox" $ className =? "Mozilla Firefox") , ((0, xK_t), runOrRaise "TeamSpeak" $ className =? "TeamSpeak.bin") , ((0, xK_g), runOrRaise "gimp" $ className =? "Gimp") , ((0, xK_o), unsafeSpawn "opera -nomail") , ((0, xK_l), unsafeSpawn "xlock -mode blank") , ((0, xK_s), unsafeSpawn "sonata") ]) , ((mod4Mask, xK_F5), unsafeSpawn("mpc toggle")) , ((mod4Mask, xK_F7), unsafeSpawn("mpc prev")) , ((mod4Mask, xK_F8), unsafeSpawn("mpc next")) , ((mod4Mask, xK_F11), unsafeSpawn("aumix -v -2")) , ((mod4Mask, xK_F12), unsafeSpawn("aumix -v +2")) , ((mod4Mask, xK_s), unsafeSpawn("xlock -mode blank -nolock")) ]