Xmonad/Config archive/Octoploid's xmonad.hs
From HaskellWiki
(Difference between revisions)
m |
|||
| Line 1: | Line 1: | ||
<haskell> | <haskell> | ||
| - | import XMonad | + | import XMonad |
| - | import XMonad. | + | import XMonad.Layout |
import XMonad.Config (defaultConfig) | import XMonad.Config (defaultConfig) | ||
import XMonad.Layout.NoBorders | import XMonad.Layout.NoBorders | ||
import XMonad.Hooks.DynamicLog | import XMonad.Hooks.DynamicLog | ||
| - | import XMonad.Actions. | + | import XMonad.Actions.CycleWS |
import Data.Bits | import Data.Bits | ||
import qualified Data.Map as M | import qualified Data.Map as M | ||
| Line 14: | Line 14: | ||
main :: IO () | main :: IO () | ||
main = do | main = do | ||
| - | + | xmobar <- spawnPipe "xmobar" | |
| - | + | xmonad defaultConfig | |
| - | + | { defaultGaps = [(15,0,0,0)] | |
| - | + | , normalBorderColor = "#222222" | |
| - | + | , focusedBorderColor = "#aa9900" | |
| - | + | , terminal = "gnome-terminal" | |
| - | + | , logHook = dynamicLogWithPP defaultPP { ppTitle = shorten 160 | |
| - | + | , ppLayout = (>> "") | |
| - | + | , ppOutput = hPutStrLn xmobar } | |
| - | , manageHook = composeAll [ className =? "fontforge" --> doFloat, | + | -- , modMask = mod4Mask |
| - | + | , layoutHook = smartBorders (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 | tiled = Tall nmaster delta ratio | ||
| Line 41: | Line 43: | ||
delta = 0.03 | delta = 0.03 | ||
| - | mykeys (XConfig {modMask = modm}) = M.fromList $ | + | mykeys (XConfig {XMonad.modMask = modm}) = M.fromList $ |
| - | [ ((controlMask .|. modm, xK_Right), | + | [ ((controlMask .|. modm, xK_Right), nextWS) |
| - | , ((controlMask .|. modm, xK_Left), | + | , ((controlMask .|. modm, xK_Left), prevWS) |
| + | , ((modm, xK_m ), spawn "minefield") | ||
| + | , ((modm, xK_f ), spawn "firefox") ] | ||
| + | |||
</haskell> | </haskell> | ||
[[Category:XMonad configuration]] | [[Category:XMonad configuration]] | ||
Revision as of 05:42, 10 June 2008
import XMonad import XMonad.Layout import XMonad.Config (defaultConfig) import XMonad.Layout.NoBorders import XMonad.Hooks.DynamicLog 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 { defaultGaps = [(15,0,0,0)] , normalBorderColor = "#222222" , focusedBorderColor = "#aa9900" , terminal = "gnome-terminal" , logHook = dynamicLogWithPP defaultPP { ppTitle = shorten 160 , ppLayout = (>> "") , ppOutput = hPutStrLn xmobar } -- , modMask = mod4Mask , layoutHook = smartBorders (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_m ), spawn "minefield") , ((modm, xK_f ), spawn "firefox") ]
