Difference between revisions of "Xmonad/Config archive/Octoploid's xmonad.hs"

From HaskellWiki
Jump to navigation Jump to search
m
m
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
 
import XMonad
 
import XMonad
 
import XMonad.Layout
 
import XMonad.Layout
 
import XMonad.Hooks.ManageDocks
 
import XMonad.Config (defaultConfig)
 
import XMonad.Config (defaultConfig)
  +
import XMonad.Actions.GridSelect
 
import XMonad.Layout.NoBorders
 
import XMonad.Layout.NoBorders
import XMonad.Actions.UpdatePointer
 
 
import XMonad.Layout.Gaps
 
import XMonad.Layout.Gaps
  +
import XMonad.Hooks.ManageHelpers
 
import XMonad.Hooks.DynamicLog hiding (xmobar)
 
import XMonad.Hooks.DynamicLog hiding (xmobar)
 
import XMonad.Actions.CycleWS
 
import XMonad.Actions.CycleWS
import Data.Bits
 
 
import qualified Data.Map as M
 
import qualified Data.Map as M
 
import XMonad.Util.Run (spawnPipe)
 
import XMonad.Util.Run (spawnPipe)
Line 16: Line 17:
   
 
main :: IO ()
 
main :: IO ()
main = do
+
main = do
 
xmobar <- spawnPipe "xmobar"
 
xmobar <- spawnPipe "xmobar"
 
xmonad defaultConfig
 
xmonad defaultConfig
 
{ normalBorderColor = "#222222"
 
{ normalBorderColor = "#222222"
, focusedBorderColor = "#aa9900"
+
, focusedBorderColor = "#EF2929"
, terminal = "xterm"
+
, borderWidth = 1
  +
, terminal = "konsole"
, logHook = dynamicLogWithPP defaultPP { ppTitle = shorten 160
+
, logHook = dynamicLogWithPP defaultPP { ppTitle = shorten 90
 
, ppLayout = (>> "")
 
, ppLayout = (>> "")
 
, ppOutput = hPutStrLn xmobar }
 
, ppOutput = hPutStrLn xmobar }
  +
, layoutHook = avoidStruts ( smartBorders (Full ||| Mirror tiled ))
>> updatePointer (Relative 0.95 0.95)
 
, layoutHook = gaps [(U,15)] (smartBorders (Mirror tiled ||| tiled ||| Full))
+
, manageHook = composeOne [ isFullscreen -?> doFullFloat,
  +
isDialog -?> doCenterFloat ]
, manageHook = composeAll [ className =? "fontforge" --> doFloat,
 
className =? "MPlayer" --> doFloat,
+
<+> composeAll [ className =? "fontforge" --> doFloat,
className =? "Gimp" --> doFloat]
+
className =? "MPlayer" --> doFloat,
  +
title =? "glxgears" --> doFloat,
  +
className =? "Gimp" --> doFloat]
  +
<+> manageDocks
 
, keys = \c -> mykeys c `M.union` keys defaultConfig c
 
, keys = \c -> mykeys c `M.union` keys defaultConfig c
 
}
 
}
Line 35: Line 40:
 
tiled = Tall nmaster delta ratio
 
tiled = Tall nmaster delta ratio
   
-- The default number of windows in the master pane
+
-- The default number of windows in the master pane
 
nmaster = 1
 
nmaster = 1
   
Line 47: Line 52:
 
[ ((controlMask .|. modm, xK_Right), nextWS)
 
[ ((controlMask .|. modm, xK_Right), nextWS)
 
, ((controlMask .|. modm, xK_Left), prevWS)
 
, ((controlMask .|. modm, xK_Left), prevWS)
, ((modm, xK_b), sendMessage $ ToggleGaps)
+
, ((modm, xK_g), goToSelected defaultGSConfig)
  +
, ((modm, xK_b), sendMessage ToggleStruts)
 
, ((modm, xK_f), spawn "firefox") ]
 
, ((modm, xK_f), spawn "firefox") ]
  +
 
</haskell>
 
</haskell>
 
[[Category:XMonad configuration]]
 
[[Category:XMonad configuration]]

Latest revision as of 18:56, 26 October 2009

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") ]