Personal tools

Xmonad/Config archive/Octoploid's xmonad.hs

From HaskellWiki

< Xmonad | Config archive(Difference between revisions)
Jump to: navigation, search
m
m
Line 4: Line 4:
 
import XMonad.Config (defaultConfig)
 
import XMonad.Config (defaultConfig)
 
import XMonad.Layout.NoBorders
 
import XMonad.Layout.NoBorders
 +
import XMonad.Actions.UpdatePointer
 
import XMonad.Layout.Gaps
 
import XMonad.Layout.Gaps
 
import XMonad.Hooks.DynamicLog hiding (xmobar)
 
import XMonad.Hooks.DynamicLog hiding (xmobar)
Line 12: Line 13:
 
import System.IO (hPutStrLn)
 
import System.IO (hPutStrLn)
 
import Graphics.X11
 
import Graphics.X11
 +
  
 
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 = "#aa9900"
         , terminal = "gnome-terminal"
+
         , terminal = "xterm"
 
         , logHook = dynamicLogWithPP defaultPP { ppTitle  = shorten 160
 
         , logHook = dynamicLogWithPP defaultPP { ppTitle  = shorten 160
 
                                                 , ppLayout = (>> "")
 
                                                 , ppLayout = (>> "")
 
                                                 , ppOutput = hPutStrLn xmobar }
 
                                                 , ppOutput = hPutStrLn xmobar }
         , layoutHook = gaps [(U,15)] (smartBorders (tiled ||| Full))
+
                    >> updatePointer (Relative 0.95 0.95)
 +
         , layoutHook = gaps [(U,15)] (smartBorders (Mirror tiled ||| tiled ||| Full))
 
         , manageHook = composeAll [ className =? "fontforge" --> doFloat,
 
         , manageHook = composeAll [ className =? "fontforge" --> doFloat,
 
                                     className =? "MPlayer"  --> doFloat,
 
                                     className =? "MPlayer"  --> doFloat,
Line 32: Line 35:
 
     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 44: Line 47:
 
             [ ((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_b), sendMessage $ ToggleGaps)  
            , ((modm, xK_m    ), spawn "minefield")
+
             , ((modm, xK_f), spawn "firefox") ]
             , ((modm, xK_f     ), spawn "firefox") ]  
+
 
</haskell>
 
</haskell>
 
 
[[Category:XMonad configuration]]
 
[[Category:XMonad configuration]]

Revision as of 07:56, 7 November 2008

import XMonad
import XMonad.Layout
import XMonad.Config (defaultConfig)
import XMonad.Layout.NoBorders
import XMonad.Actions.UpdatePointer
import XMonad.Layout.Gaps
import XMonad.Hooks.DynamicLog hiding (xmobar)
import XMonad.Actions.CycleWS
import Data.Bits
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 = "#aa9900"
         , terminal = "xterm"
         , logHook = dynamicLogWithPP defaultPP { ppTitle  = shorten 160
                                                , ppLayout = (>> "")
                                                , ppOutput = hPutStrLn xmobar }
                     >> updatePointer (Relative 0.95 0.95)
         , layoutHook = gaps [(U,15)] (smartBorders (Mirror tiled ||| tiled ||| Full))
         , manageHook = composeAll [ className =? "fontforge" --> doFloat,
                                     className =? "MPlayer"   --> doFloat,
                                     className =? "Gimp"      --> doFloat]
         , 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_b), sendMessage $ ToggleGaps) 
             , ((modm, xK_f), spawn "firefox") ]