Xmonad/Config archive/nattfodd's xmonad.hs
From HaskellWiki
< Xmonad | Config archive
import XMonad import XMonad.Layouts import XMonad.Operations import XMonad.Hooks.DynamicLog import qualified Data.Map as M import Graphics.X11 import qualified XMonad.StackSet as W import Data.Bits ((.|.)) import Data.Ratio ((%)) import System.IO -- XMonadContrib -- import XMonad.Util.Dzen import XMonad.Layout.NoBorders import XMonad.Hooks.UrgencyHook import XMonad.Util.EZConfig import XMonad.Util.Run main = do h <- spawnPipe ("dzen2" ++ " " ++ flags) xmonad $ defaultConfig { workspaces = workspaces' , defaultGaps = [(14,0,0,0)] , layoutHook = layoutHook' , terminal = "/home/heimdall/scripts/urxvt" , normalBorderColor = "#dddddd" , logHook = dynamicLogWithPP defaultPP { ppOutput = hPutStrLn h } , focusedBorderColor = "#aa0000" } `additionalKeys` keys' where fg = "'grey70'" bg = "'#2c2c32'" fn = "'-*-profont-*-*-*-*-12-*-*-*-*-*-*'" flags = "-e '' -w 700 -ta l -fg " ++ fg ++ " -bg " ++ bg ++ " -fn " ++ fn workspaces' = map show [1 .. 13 :: Int] layoutHook' = tiled ||| Mirror tiled ||| noBorders Full where tiled = Tall nmaster delta ratio nmaster = 1 -- The default number of windows in the master pane ratio = 1%2 -- Default proportion of screen occupied by master pane delta = 5%100 -- Percent of screen to increment by when resizing panes keys' = [((m .|. mod1Mask, k), windows $ f i) | (i, k) <- zip workspaces' [0x26,0xe9,0x22,0x27,0x28,0x2d,0xe8,0x5f,0xe7,0xe0,xK_a,xK_z,xK_e,xK_r] , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] ++ [((mod1Mask, 0x3b), sendMessage (IncMasterN (-1)))] -- Launch xmonad with the following: -- -- #!/bin/sh -- -- FG='grey70' -- BG='#2c2c32' -- FONT='-*-profont-*-*-*-*-12-*-*-*-*-*-*' -- -- while (true); do ~/scripts/weather.pl; done & -- xmonad-acpi | dzen2 -e '' -x 600 -w 768 -ta r -fg $FG -bg $BG -fn $FONT & -- xmonad & -- -- wait $! -- pkill -HUP dzen2 -- pkill -HUP -f xmonad-acpi -- wait
