Xmonad/Config archive/Octoploid's xmonad.hs
From HaskellWiki
< Xmonad | Config archive
import XMonad import XMonad.Layout import XMonad.Hooks.ManageDocks import XMonad.Config (defaultConfig) import XMonad.Actions.GridSelect import XMonad.Layout.NoBorders import XMonad.Layout.Gaps import XMonad.Hooks.ManageHelpers import XMonad.Hooks.DynamicLog hiding (xmobar) import XMonad.Actions.CycleWS import qualified Data.Map as M import XMonad.Util.Run (spawnPipe) import System.IO (hPutStrLn) import Graphics.X11 main :: IO () main = do xmobar <- spawnPipe "xmobar" xmonad defaultConfig { normalBorderColor = "#222222" , focusedBorderColor = "#EF2929" , borderWidth = 1 , terminal = "konsole" , logHook = dynamicLogWithPP defaultPP { ppTitle = shorten 90 , ppLayout = (>> "") , ppOutput = hPutStrLn xmobar } , layoutHook = avoidStruts ( smartBorders (Full ||| Mirror tiled )) , manageHook = composeOne [ isFullscreen -?> doFullFloat, isDialog -?> doCenterFloat ] <+> composeAll [ className =? "fontforge" --> doFloat, className =? "MPlayer" --> doFloat, title =? "glxgears" --> doFloat, className =? "Gimp" --> doFloat] <+> manageDocks , keys = \c -> mykeys c `M.union` keys defaultConfig c } where tiled = Tall nmaster delta ratio -- The default number of windows in the master pane nmaster = 1 -- Default proportion of screen occupied by master pane ratio = toRational (2/(1+sqrt(5)::Double)) -- golden -- Percent of screen to increment by when resizing panes delta = 0.03 mykeys (XConfig {XMonad.modMask = modm}) = M.fromList $ [ ((controlMask .|. modm, xK_Right), nextWS) , ((controlMask .|. modm, xK_Left), prevWS) , ((modm, xK_g), goToSelected defaultGSConfig) , ((modm, xK_b), sendMessage ToggleStruts) , ((modm, xK_f), spawn "firefox") ]