Xmonad/Config archive/lithis's xmonad.hs
From HaskellWiki
< Xmonad | Config archive
import XMonad import XMonad.Actions.DwmPromote import XMonad.Actions.UpdatePointer import XMonad.Actions.Warp import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.UrgencyHook import XMonad.Layout.LayoutHints import XMonad.Layout.HintedTile as HT import XMonad.Layout.NoBorders import XMonad.Layout.Spiral import XMonad.Layout.Tabbed import XMonad.Prompt import XMonad.Prompt.Shell import XMonad.Prompt.Ssh import XMonad.Util.Run (spawnPipe) import System.IO (hPutStrLn) import qualified Data.Map as M import Data.Ratio import Control.Monad main :: IO () main = do xmobar <- spawnPipe "xmobar" xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig { normalBorderColor = backgroundColor , focusedBorderColor = focusColor , terminal = "$XTERMCMD" , layoutHook = myLayout , manageHook = manageDocks , modMask = mod4Mask , borderWidth = 2 , keys = \c -> myKeys c `M.union` keys defaultConfig c , logHook = dynamicLogWithPP hethraelPP { ppOutput = hPutStrLn xmobar } >> updatePointer (Relative 1 1) } where myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile HT.Tall ||| hintedTile Wide ||| Full ||| tabbed shrinkText hethraelTheme ||| spiral (1 % 1) hintedTile = HintedTile nmaster delta ratio TopLeft nmaster = 1 ratio = 1/2 delta = 3/100 hethraelPP :: PP hethraelPP = defaultPP { ppCurrent = xmobarColor focusColor "" , ppVisible = xmobarColor lightTextColor "" , ppHiddenNoWindows = xmobarColor lightBackgroundColor "" , ppUrgent = xmobarColor "#ffc000" "" , ppSep = " · " , ppWsSep = "" , ppTitle = xmobarColor lightTextColor "" . shorten 90 } hethraelTheme :: Theme hethraelTheme = defaultTheme { activeColor = lightBackgroundColor , inactiveColor = backgroundColor , activeBorderColor = textColor , inactiveTextColor = textColor , inactiveBorderColor = lightBackgroundColor , activeTextColor = lightTextColor , fontName = myFont } hethraelXPConfig :: XPConfig hethraelXPConfig = defaultXPConfig { font = myFont , bgColor = backgroundColor , fgColor = textColor , fgHLight = lightTextColor , bgHLight = lightBackgroundColor , borderColor = lightBackgroundColor } myFont = "xft:DejaVu Sans:size=10" focusColor = "#60ff45" textColor = "#c0c0a0" lightTextColor = "#fffff0" backgroundColor = "#304520" lightBackgroundColor = "#456030" myKeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $ [ ((modm, xK_Return), dwmpromote) , ((modm, xK_b), sendMessage ToggleStruts) , ((modm .|. controlMask, xK_x), shellPrompt hethraelXPConfig) , ((modm .|. controlMask, xK_s), sshPrompt hethraelXPConfig) , ((modm, xK_z), warpToWindow 1 1) , ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts. ]
