import XMonad import XMonad.Util.Run import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig import XMonad.Util.EZConfig(additionalKeys) import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat) import XMonad.Hooks.UrgencyHook import XMonad.Hooks.ManageDocks import XMonad.Hooks.DynamicLog --import qualified XMonad.StackSet as S --import Data.List --import XMonad.Hooks.UrgencyHook --import Control.Monad --import Data.Char ( isSpace ) --import Data.Maybe ( isJust, catMaybes ) --import Data.List --import qualified Data.Map as M --import Data.Ord ( comparing ) --import System.IO --import XMonad.Util.WorkspaceCompare --import XMonad.Util.NamedWindows --import XMonad.Layout.LayoutModifier --import XMonad.Util.Font myManageHook :: ManageHook myManageHook = composeAll . concat $ [ [ className =? c --> doFloat | c <- floats ], [ className =? w --> doShift "1:web" | w <- webs] , [ className =? g --> doShift "5:game" | g <- games] , [ className =? s --> doShift "2:social" | s <- socials] , [ className =? m --> doShift "3:music" | m <- musics] , [ resource =? "desktop_window" --> doIgnore , className =? "Gimp" --> doShift "4:art" , title =? "Save a Bookmark" --> doCenterFloat , resource =? "Game.exe" --> doShift "5:game" , isFullscreen --> doFullFloat ] ] where floats = ["Mplayer","VLC","Gtklp","smc","Empathy", "Gwibber"] webs = ["Firefox","Midori","Chromium Browser","Chrome","Google-chrome"] games = ["roguestar-gl","neverputt","neverball","wesnoth"] musics = ["banshee-1", "Rhythmbox"] socials = ["Gwibber", "Empathy", "Pidgin"] main = do xmproc <- spawnPipe "xmobar" xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig { workspaces = ["1:web","2:social","3:music","4:art","5:game","6:remote","7","8","9","0"] , manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig , layoutHook = avoidStruts $ layoutHook defaultConfig , logHook = dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = xmobarColor "green" "" . shorten 50 , ppUrgent = xmobarColor "yellow" "red" . xmobarStrip } , modMask = mod4Mask -- Rebind Mod to the Windows Key , terminal = "terminator" } `additionalKeys` [ ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") , ((0, xK_Print), spawn "scrot") -- , ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock") , ((mod4Mask .|. shiftMask, xK_z), spawn "gnome-screensaver-command -l") , ((mod4Mask .|. shiftMask, xK_x ), focusUrgent) -- XF86AudioLowerVolume , ((0, 0x1008FF11), spawn "amixer set Master playback 3-") -- XF86AudioRaiseVolume , ((0, 0x1008FF13), spawn "amixer set Master playback 3+") -- XF86AudioMute , ((0, 0x1008FF12), spawn "amixer set Master playback 0") -- XF86AudioPlay , ((0, 0x1008FF14), spawn "banshee --toggle-playing") -- XF86AudioStop , ((0, 0x1008FF15), spawn "banshee --stop") -- XF86AudioPrev , ((0, 0x1008FF16), spawn "banshee --previous") -- XF86AudioNext , ((0, 0x1008FF17), spawn "banshee --next") ]