Xmonad/Config archive/Eric Mertens' xmonad.hs
< Xmonad | Config archive
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
-- xmonad.hs
import XMonad
import XMonad.Actions.RotView ( rotView )
import XMonad.Hooks.DynamicLog ( PP(..), dynamicLogWithPP, dzenColor, wrap, defaultPP )
import XMonad.Layouts ( (|||), Full(..) )
import XMonad.Layout.LayoutHints ( layoutHints )
import XMonad.Layout.TilePrime ( TilePrime(..) )
import XMonad.Prompt ( defaultXPConfig, XPConfig(..), XPPosition(..) )
import XMonad.Prompt.Shell ( shellPrompt )
import XMonad.Util.Run
import qualified Data.Map as Map
import Data.Ratio
import Graphics.X11
import System.IO
statusBarCmd= "dzen2 -e '' -w 1040 -ta l -fg white -bg \"#222222\" -fn \"-xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-1\""
main = do din <- spawnPipe statusBarCmd
xmonad $ defaultConfig
{ borderWidth = 2
, normalBorderColor = "#666666"
, focusedBorderColor = "#cd8b00"
, terminal = "urxvtc"
, workspaces = ["main","net","www"]
++ map show [4..9]
, defaultGaps = [(18,0,0,0)]
, modMask = mod4Mask
, logHook = dynamicLogWithPP $ myPP din
, mouseBindings = \c -> myMouse `Map.union`
mouseBindings defaultConfig c
, keys = \c -> myKeys `Map.union`
keys defaultConfig c
, layoutHook = Layout
$ TilePrime 1 (3%100) (1%2) False
||| TilePrime 1 (3%100) (1%2) True
||| layoutHints Full
}
myKeys = Map.fromList $
[ ((mod4Mask, xK_p), shellPrompt myPromptConfig)
, ((0, 0x1008ff12), spawn "amixer -q set Front toggle")
, ((0, 0x1008ff13), spawn "amixer -q set PCM 2dB+")
, ((0, 0x1008ff11), spawn "amixer -q set PCM 2dB-")
]
myPromptConfig = defaultXPConfig
{ position = Top
, promptBorderWidth = 0
}
myMouse = Map.fromList $
[ ((mod4Mask, button4), (\_ -> rotView True))
, ((mod4Mask, button5), (\_ -> rotView False))
]
myPP h = defaultPP
{ ppCurrent = dzenColor "white" "#cd8b00" . pad
, ppVisible = dzenColor "white" "#666666" . pad
, ppHidden = dzenColor "black" "#cccccc" . pad
, ppHiddenNoWindows = dzenColor "#999999" "#cccccc" . pad
, ppWsSep = dzenColor "#bbbbbb" "#cccccc" "^r(1x18)"
, ppSep = dzenColor "#bbbbbb" "#cccccc" "^r(1x18)"
, ppLayout = dzenColor "black" "#cccccc" .
(\ x -> case x of
"TilePrime Horizontal" ->
" ^i(/home/emertens/images/tile_horz.xpm) "
"TilePrime Vertical" ->
" ^i(/home/emertens/images/tile_vert.xpm) "
"Hinted Full" ->
" ^i(/home/emertens/images/fullscreen.xpm) "
_ -> pad x
)
, ppTitle = (' ':) . escape
, ppOutput = hPutStrLn h
}
where
escape = concatMap (\x -> if x == '^' then "^^" else [x])
pad = wrap " " " "