Difference between revisions of "Xmonad/Config archive/Eric Mertens' xmonad.hs"
< Xmonad | Config archive
Jump to navigation
Jump to search
m (Xmonad/Config archive/Eric Mertens' Config.hs moved to Xmonad/Config archive/Eric Mertens' xmonad.hs) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
− | <haskell> |
+ | <haskell> |
+ | -- xmonad.hs |
||
− | import XMonad.Actions.RotView ( rotView ) |
||
− | import XMonad |
+ | import XMonad |
− | import XMonad. |
+ | import XMonad.Actions.RotView ( rotView ) |
− | import XMonad.Hooks.DynamicLog |
+ | import XMonad.Hooks.DynamicLog ( PP(..), dynamicLogWithPP, dzenColor, wrap, defaultPP ) |
− | import XMonad.Layouts ( (|||), Full(..) ) |
+ | import XMonad.Layouts ( (|||), Full(..) ) |
import XMonad.Layout.LayoutHints ( layoutHints ) |
import XMonad.Layout.LayoutHints ( layoutHints ) |
||
− | import XMonad.Layout.TilePrime ( TilePrime( |
+ | import XMonad.Layout.TilePrime ( TilePrime(..) ) |
− | import XMonad.Prompt |
+ | import XMonad.Prompt ( defaultXPConfig, XPConfig(..), XPPosition(..) ) |
− | import XMonad.Prompt.Shell |
+ | import XMonad.Prompt.Shell ( shellPrompt ) |
+ | import XMonad.Util.Run |
||
import qualified Data.Map as Map |
import qualified Data.Map as Map |
||
import Data.Ratio |
import Data.Ratio |
||
import Graphics.X11 |
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 |
||
− | joinMap m n c = m c `Map.union` n c |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | , keys = \c -> myKeys `Map.union` |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | myKeys |
+ | myKeys = Map.fromList $ |
− | [ (( |
+ | [ ((mod4Mask, xK_p), shellPrompt myPromptConfig) |
, ((0, 0x1008ff12), spawn "amixer -q set Front toggle") |
, ((0, 0x1008ff12), spawn "amixer -q set Front toggle") |
||
, ((0, 0x1008ff13), spawn "amixer -q set PCM 2dB+") |
, ((0, 0x1008ff13), spawn "amixer -q set PCM 2dB+") |
||
Line 47: | Line 51: | ||
} |
} |
||
− | myMouse |
+ | myMouse = Map.fromList $ |
− | [ (( |
+ | [ ((mod4Mask, button4), (\_ -> rotView True)) |
− | , (( |
+ | , ((mod4Mask, button5), (\_ -> rotView False)) |
] |
] |
||
− | myPP = defaultPP |
+ | myPP h = defaultPP |
− | { ppCurrent = dzenColor "white" "# |
+ | { ppCurrent = dzenColor "white" "#cd8b00" . pad |
− | , ppVisible = dzenColor " |
+ | , ppVisible = dzenColor "white" "#666666" . pad |
, ppHidden = dzenColor "black" "#cccccc" . pad |
, ppHidden = dzenColor "black" "#cccccc" . pad |
||
− | , ppHiddenNoWindows = |
+ | , ppHiddenNoWindows = dzenColor "#999999" "#cccccc" . pad |
− | , ppWsSep = "" |
+ | , ppWsSep = dzenColor "#bbbbbb" "#cccccc" "^r(1x18)" |
− | , ppSep = "" |
+ | , ppSep = dzenColor "#bbbbbb" "#cccccc" "^r(1x18)" |
, ppLayout = dzenColor "black" "#cccccc" . |
, ppLayout = dzenColor "black" "#cccccc" . |
||
(\ x -> case x of |
(\ x -> case x of |
||
Line 70: | Line 74: | ||
) |
) |
||
, ppTitle = (' ':) . escape |
, ppTitle = (' ':) . escape |
||
+ | , ppOutput = hPutStrLn h |
||
} |
} |
||
where |
where |
||
Line 75: | Line 80: | ||
pad = wrap " " " " |
pad = wrap " " " " |
||
</haskell> |
</haskell> |
||
+ | |||
+ | [[Category:XMonad configuration]] |
Latest revision as of 08:29, 7 November 2007
-- 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 " " " "