Please bear with us as we work to restore functionality to dotfiles.org.
chimpyw
/.xmonad/xmonad.hs
XMonad config file modified with parts from a few places
-- XMONAD CONFIG
import XMonad
import XMonad.Layout.NoBorders
import XMonad.Actions.FloatKeys
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run (spawnPipe)
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import System.Exit
import System.IO (hPutStrLn)
-- Key bindings
keyBinds conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
[ ((modMask, xK_Return), spawn $ XMonad.terminal conf)
, ((modMask, xK_r ), spawn "exe=`dmenu -sb '#89b83f' -sf '#eeeeee' -nb '#262729' -nf '#bbbbbb' -fn '-xos4-terminus-medium-*-*-*-12-*-*-*-*-*-iso8859-1' < /home/andrew/.dmenu/menu` && eval \"exec $exe\"")
, ((modMask .|. shiftMask, xK_r ), spawn "exe=`dmenu_path | dmenu -sb '#89b83f' -sf '#eeeeee' -nb '#262729' -nf '#bbbbbb' -fn '-xos4-terminus-medium-*-*-*-12-*-*-*-*-*-iso8859-1'` && eval \"exec $exe\"")
, ((modMask, xK_e ), spawn "gmrun")
, ((modMask, xK_x ), spawn "slock")
, ((modMask .|. shiftMask, xK_c ), kill)
, ((modMask, xK_space ), sendMessage NextLayout)
, ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
, ((modMask, xK_n ), refresh)
, ((modMask, xK_Tab ), windows W.focusDown)
, ((modMask, xK_j ), windows W.focusDown)
, ((modMask, xK_k ), windows W.focusUp )
, ((modMask, xK_m ), windows W.focusMaster )
, ((modMask .|. shiftMask, xK_Return), windows W.swapMaster)
, ((modMask .|. shiftMask, xK_j ), windows W.swapDown )
, ((modMask .|. shiftMask, xK_k ), windows W.swapUp )
, ((modMask, xK_h ), sendMessage Shrink)
, ((modMask, xK_l ), sendMessage Expand)
, ((modMask, xK_t ), withFocused $ windows . W.sink)
, ((modMask .|. shiftMask, xK_h ), sendMessage (IncMasterN 1))
, ((modMask .|. shiftMask, xK_l ), sendMessage (IncMasterN (-1)))
-- Move Floats
, ((modMask, xK_Left ), withFocused (keysMoveWindow (-15, 0)))
, ((modMask, xK_Right ), withFocused (keysMoveWindow (15, 0)))
, ((modMask, xK_Down ), withFocused (keysMoveWindow (0, 10)))
, ((modMask, xK_Up ), withFocused (keysMoveWindow (0, -10)))
-- Size floats
, ((modMask .|. shiftMask, xK_Left ), withFocused (keysResizeWindow (-15, 0) (0, 0)))
, ((modMask .|. shiftMask, xK_Right ), withFocused (keysResizeWindow (15, 0) (0, 0)))
, ((modMask .|. shiftMask, xK_Down ), withFocused (keysResizeWindow (0, 15) (0, 0)))
, ((modMask .|. shiftMask, xK_Up ), withFocused (keysResizeWindow (0, -15) (0, 0)))
-- Quit xmonad
, ((modMask .|. shiftMask, xK_q ), io (exitWith ExitSuccess))
-- Restart xmonad
, ((modMask , xK_q ), restart "xmonad" True)
]
++
-- mod-[1..9], Switch to workspace N0,
[((m .|. modMask, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_4]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
-- Mouse bindings
mouseBinds conf@(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))
]
------------------------------------------------------------------------
-- Log Hook
pP h = defaultPP
{ ppCurrent = wrap "^fg(#eeeeee)^bg(#89b83f)^p(2)^i(/home/andrew/.dzen/icons/fwd.xbm)"
"^p(2)^fg()^bg()"
, ppVisible = wrap "^bg()^fg()^p(2)" "^p(2)^fg()^bg()"
, ppHidden = wrap "^fg(#eeeeee)^bg()^p(2)^i(/home/andrew/.dzen/icons/fwd.xbm)"
"^fg()^bg()^p(2)"
, ppHiddenNoWindows = id
, ppSep = " ^fg(#89b83f)^r(1x8)^fg() "
, ppWsSep = " "
, ppLayout = dzenColor "#eeeeee" "" .
(\x -> case x of
"Tall" -> "^i(/home/andrew/.dzen/icons/tall.xbm)"
"Full" -> "^i(/home/andrew/.dzen/icons/full.xbm)"
otherwise -> "unknown"
)
, ppUrgent = wrap "^fg(#ff0000)^bg()^i(/home/andrew/.dzen/icons/has_win.xbm" "^fg()"
, ppTitle = dzenColor "#eeeeee" "" . \str -> take 80 str
, ppOutput = hPutStrLn h
}
------------------------------------------------------------------------
statusBarCmd = "dzen2 -bg '#262729' -fg '#bbbbbb' -sa l -ta l -w 700 -fn '-xos4-terminus-medium-*-*-*-12-*-*-*-*-*-iso8859-1' -e 'button1=exec:urxvt;button3=exec:firefox' "
-- Run xmonad
main = do
din <- spawnPipe statusBarCmd
xmonad $ defaultConfig
{ terminal = "urxvt"
, focusFollowsMouse = True
, borderWidth = 1
, modMask = mod4Mask
, numlockMask = mod2Mask
, workspaces = ["1","2","3","4"]
, normalBorderColor = "#262729"
, focusedBorderColor = "#707070"
-- , defaultGaps = [(14,14,0,0)]
, keys = keyBinds
, mouseBindings = mouseBinds
, layoutHook = avoidStruts (smartBorders tiled ||| noBorders Full)
, manageHook = composeAll
[ className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, className =? "XClock" --> doFloat
, className =? "sdlmame" --> doFloat
, className =? "emesene" --> doFloat
, className =? "zsnes" --> doFloat
, className =? "Gmameui" --> doFloat
, className =? "Gtk-chtheme" --> doFloat
, title =? "Downloads" --> doFloat
, resource =? "desktop_window" --> doIgnore
, resource =? "kdesktop" --> doIgnore ]
, logHook = dynamicLogWithPP $ pP din
}
where
tiled = Tall 1 (3/100) (1/2)