rendered paste bodyimport System.IOimport XMonadimport XMonad.Actions.CycleWSimport XMonad.Actions.WindowGoimport XMonad.Hooks.DynamicLogimport XMonad.Hooks.ManageDocksimport XMonad.Hooks.ManageHelpersimport XMonad.Layoutimport XMonad.Layout.DragPaneimport XMonad.Layout.Gridimport XMonad.Layout.NoBordersimport XMonad.Promptimport XMonad.Prompt.Shellimport XMonad.Util.EZConfigimport XMonad.Util.Run(spawnPipe)import XMonad.Util.Runimport qualified XMonad.StackSet as Wmain = do xmproc <- spawnPipe "/usr/local/bin/xmobar" xmonad $ defaultConfig { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig , layoutHook = myLayoutHook , logHook = myLogHook xmproc , modMask = myModMask , terminal = myTerminal , workspaces = myWorkSpaces } `additionalKeysP` [ --- myKeyBindings --- ---------------------- ---- applications ---- ---------------------- -- start gimp & open in 8:misc -- (("M-g g"), (spawn "gimp")) -- start gpodder & open in 4:aud -- , (("M-g p"), (spawn "gpodder")) -- start gvim & open in 3:vim -- , (("M-g v"), (spawn "gvim")) -- start iceweasel & open in 1:web -- , (("M-i c"), (spawn "iceweasel")) -- start irssi in screen & open in 2:irc -- , (("M-i r"), raiseMaybe (runInTerm "-title irssi" "screen -S irssi -c ~/.screenrc-irssi") (title =? "irssi")) -- start mocp in screen & open in 4:aud -- , (("M-m o"), raiseMaybe (runInTerm "-title mocp" "screen -S mocp -c ~/.screenrc-mocp") (title =? "mocp")) -- send monitor to stanby -- , (("M-m s"), spawn "monitor-standby.sh") -- start mutt in screen & open in 5:mail -- , (("M-m u"), raiseMaybe (runInTerm "-title mutt" "screen -S mutt -c ~/.screenrc-mutt") (title =? "mutt")) -- popups the xmonad app launcher -- , (("M-x a"), shellPrompt myXPConfig) -- start comix & open in 8:misc -- , (("M-x c"), (spawn "comix")) -- start epdfview & open in 8:misc -- , (("M-x e"), (spawn "epdfview")) -- lock the screen -- , (("M-x l"), (spawn "xset dpms force off" >> spawn "xlock -mousemotion +description -mode blank -bg -black -fg grey30 -font 'fixed'")) -- start ncftp in screen & open in 8:misc -- , (("M-x n"), raiseMaybe (runInTerm "-title ncftp" "screen -S ncftp -c ~/.screenrc-ncftp") (title =? "ncftp")) -- start rtorrent in screen & open in 7:torr -- , (("M-x r"), raiseMaybe (runInTerm "-title rtorrent" "screen -S rtorrent -c ~/.screenrc-rtorrent") (title =? "rtorrent")) -- start smplayer & open in 6:vid -- , (("M-x s"), (spawn "smplayer")) -- start vim in screen & open in 3:vim -- , (("M-x v"), raiseMaybe (runInTerm "-title vim" "screen -S vim -c ~/.screenrc-vim") (title =? "vim")) -------------------- ---- navigation ---- -------------------- -- move current selected window to previous workspace -- , (("M-S-,"), shiftToPrev >> prevWS) -- move current selected window to next workspace -- , (("M-S-."), shiftToNext >> nextWS) -- next empty workspace -- , (("M-S-/"), moveTo Next EmptyWS) -- previous workspace -- , (("M-x ,"), prevWS) -- next workspace -- , (("M-x ."), nextWS) -- toggle to previous workspace -- , (("M-x /"), toggleWS) ]`additionalKeys` [ --------------------- ---- screenshots ---- --------------------- -- take a selected window screenshot [then click on a window, file is saved in ~] -- ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") -- take a full screenshot, file is saved in ~ -- , ((0, xK_Print), spawn "scrot") ]myLayoutHook = avoidStruts $ smartBorders $ layoutHook defaultConfig ||| Tall 1 (3 / 100) (1 / 2) ||| dragPane Horizontal 0.1 0.5 ||| Grid ||| Full myLogHook xmproc = dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn xmproc , ppOrder = \(ws:l:_) -> [l,ws] }myManageHook = composeAll [ className =? "feh" --> doCenterFloat -- , className =? "Gimp" --> doFloat -- , className =? "MPlayer" --> doCenterFloat -- set these apps to float ontop of other windows -- , className =? "Qalculate" --> doCenterFloat -- , className =? "Smplayer" --> doCenterFloat -- , title =? "irssi" --> doShiftAndGo "2:irc" -- , title =? "mocp" --> doShiftAndGo "4:aud" -- , title =? "mutt" --> doShiftAndGo "5:mail" -- , title =? "ncftp" --> doShiftAndGo "8:misc" -- , title =? "rtorrent" --> doShiftAndGo "7:torr" -- , title =? "vim" --> doShiftAndGo "3:vim" -- , className =? "Comix" --> doShiftAndGo "8:misc" -- , className =? "Epdfview" --> doShiftAndGo "8:misc" -- move these apps to set workspace at start -- , className =? "Gimp" --> doShiftAndGo "8:misc" -- , className =? "Gpodder" --> doShiftAndGo "4:aud" -- , className =? "Gvim" --> doShiftAndGo "3:vim" -- , className =? "Iceweasel" --> doShiftAndGo "1:web" -- , className =? "MPlayer" --> doShiftAndGo "6:vid" -- , className =? "Smplayer" --> doShiftAndGo "6:vid" -- ]doShiftAndGo :: WorkspaceId -> ManageHookdoShiftAndGo ws = doF (W.greedyView ws) <+> doShift wsmyModMask = mod1MaskmyTerminal = "urxvt"myWorkSpaces = ["1:web", "2:irc", "3:vim", "4:aud", "5:mail", "6:vid", "7:torr", "8:misc"]myXPConfig = defaultXPConfig { font = "-*-terminus-*-*-*-*-14-*-*-*-*-*-iso10646-1" , bgColor = "Black" , fgColor = "Cyan" , bgHLight = "Cyan" , fgHLight = "Black" , borderColor = "Black" , position = Top }