Xmonad/Config archive/Eric Mertens' xmonad.hs
From HaskellWiki
< Xmonad | Config archive(Difference between revisions)
| (3 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
| + | <haskell> | ||
| + | -- xmonad.hs | ||
import XMonad | import XMonad | ||
| - | import XMonad.Actions.RotView ( rotView ) | + | import XMonad.Actions.RotView ( rotView ) |
| - | import XMonad. | + | 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 | |
| + | 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 | + | 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 | ||
escape = concatMap (\x -> if x == '^' then "^^" else [x]) | escape = concatMap (\x -> if x == '^' then "^^" else [x]) | ||
pad = wrap " " " " | pad = wrap " " " " | ||
| + | </haskell> | ||
| + | |||
| + | [[Category:XMonad configuration]] | ||
Current revision
-- 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 " " " "
