Personal tools

Xmonad/Config archive/nattfodd's xmonad.hs

From HaskellWiki

< Xmonad | Config archive(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
<haskell>import XMonad
 
<haskell>import XMonad
import XMonad.Layouts
+
import XMonad.Layout
 
import XMonad.Operations
 
import XMonad.Operations
 
import XMonad.Hooks.DynamicLog
 
import XMonad.Hooks.DynamicLog
 +
import XMonad.Hooks.ManageDocks
 
import qualified Data.Map as M
 
import qualified Data.Map as M
 
import Graphics.X11
 
import Graphics.X11
Line 22: Line 23:
 
     xmonad $ defaultConfig
 
     xmonad $ defaultConfig
 
         { workspaces        = workspaces'
 
         { workspaces        = workspaces'
        , defaultGaps        = [(14,0,0,0)]
 
 
         , layoutHook        = layoutHook'
 
         , layoutHook        = layoutHook'
 +
        , manageHook        = manageDocks <+> manageHook defaultConfig
 
         , terminal          = "/home/heimdall/scripts/urxvt"
 
         , terminal          = "/home/heimdall/scripts/urxvt"
 
         , normalBorderColor  = "#dddddd"
 
         , normalBorderColor  = "#dddddd"
Line 34: Line 35:
 
             bg    = "'#2c2c32'"
 
             bg    = "'#2c2c32'"
 
             fn    = "'-*-profont-*-*-*-*-12-*-*-*-*-*-*'"
 
             fn    = "'-*-profont-*-*-*-*-12-*-*-*-*-*-*'"
             flags = "-e '' -w 700 -ta l -fg " ++ fg ++ " -bg " ++ bg ++ " -fn " ++ fn
+
             flags = "-e '' -w 600 -ta l -fg " ++ fg ++ " -bg " ++ bg ++ " -fn " ++ fn
  
workspaces' = map show [1 .. 13 :: Int]
+
layoutHook' = layout'-- $ withUrgencyHook dzenUrgencyHook { args = ["-bg", "darkgreen", "-xs", "1"] }
  
  
layoutHook' =     tiled
+
layout' = avoidStruts (smartBorders (tiled ||| Mirror tiled ||| Full))
              ||| Mirror tiled
+
          where
              ||| noBorders Full
+
              tiled  = Tall nmaster delta ratio
              where
+
              nmaster = 1    -- The default number of windows in the master pane
                  tiled  = Tall nmaster delta ratio
+
              ratio  = 2%3   -- Default proportion of screen occupied by master pane
                  nmaster = 1    -- The default number of windows in the master pane
+
              delta  = 5%100 -- Percent of screen to increment by when resizing panes
                  ratio  = 1%2   -- Default proportion of screen occupied by master pane
+
                  delta  = 5%100 -- Percent of screen to increment by when resizing panes
+
  
 
keys' = [((m .|. mod1Mask, k), windows $ f i)
 
keys' = [((m .|. mod1Mask, k), windows $ f i)
 
             | (i, k) <- zip workspaces' [0x26,0xe9,0x22,0x27,0x28,0x2d,0xe8,0x5f,0xe7,0xe0,xK_a,xK_z,xK_e,xK_r]
 
             | (i, k) <- zip workspaces' [0x26,0xe9,0x22,0x27,0x28,0x2d,0xe8,0x5f,0xe7,0xe0,xK_a,xK_z,xK_e,xK_r]
 
             , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
 
             , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
         ++ [((mod1Mask, 0x3b), sendMessage (IncMasterN (-1)))]
+
         ++  
 +
        [((mod1Mask             , 0x3b), sendMessage (IncMasterN (-1)))]-- %! Deincrement the number of windows in the master area
 +
        ++
 +
        [((mod1Mask              , xK_b), sendMessage ToggleStruts)]-- %! Deincrement the number of windows in the master area
  
 
-- Launch xmonad with the following:
 
-- Launch xmonad with the following:

Revision as of 21:24, 4 April 2008

import XMonad
import XMonad.Layout
import XMonad.Operations
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import qualified Data.Map as M
import Graphics.X11
import qualified XMonad.StackSet as W
import Data.Bits ((.|.))
import Data.Ratio ((%))
import System.IO
 
-- XMonadContrib
-- import XMonad.Util.Dzen
import XMonad.Layout.NoBorders
import XMonad.Hooks.UrgencyHook
import XMonad.Util.EZConfig
import XMonad.Util.Run
 
 
main = do
    h <- spawnPipe ("dzen2" ++ " " ++ flags)
    xmonad $ defaultConfig
        { workspaces         = workspaces'
        , layoutHook         = layoutHook'
        , manageHook         = manageDocks <+> manageHook defaultConfig
        , terminal           = "/home/heimdall/scripts/urxvt"
        , normalBorderColor  = "#dddddd"
        , logHook            = dynamicLogWithPP defaultPP
                                { ppOutput = hPutStrLn h }
        , focusedBorderColor = "#aa0000" }
        `additionalKeys` keys'
        where
            fg    = "'grey70'"
            bg    = "'#2c2c32'"
            fn    = "'-*-profont-*-*-*-*-12-*-*-*-*-*-*'"
            flags = "-e '' -w 600 -ta l -fg " ++ fg ++ " -bg " ++ bg ++ " -fn " ++ fn
 
layoutHook' = layout'-- $ withUrgencyHook dzenUrgencyHook { args = ["-bg", "darkgreen", "-xs", "1"] }
 
 
layout' = avoidStruts (smartBorders (tiled ||| Mirror tiled ||| Full))
          where
              tiled   = Tall nmaster delta ratio
              nmaster = 1     -- The default number of windows in the master pane
              ratio   = 2%3   -- Default proportion of screen occupied by master pane
              delta   = 5%100 -- Percent of screen to increment by when resizing panes
 
keys' = [((m .|. mod1Mask, k), windows $ f i)
            | (i, k) <- zip workspaces' [0x26,0xe9,0x22,0x27,0x28,0x2d,0xe8,0x5f,0xe7,0xe0,xK_a,xK_z,xK_e,xK_r]
            , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
        ++ 
        [((mod1Mask              , 0x3b), sendMessage (IncMasterN (-1)))]-- %! Deincrement the number of windows in the master area
        ++
        [((mod1Mask              , xK_b), sendMessage ToggleStruts)]-- %! Deincrement the number of windows in the master area
 
-- Launch xmonad with the following:
-- 
-- #!/bin/sh
-- 
-- FG='grey70' 
-- BG='#2c2c32' 
-- FONT='-*-profont-*-*-*-*-12-*-*-*-*-*-*'
-- 
-- while (true); do ~/scripts/weather.pl; done &
-- xmonad-acpi | dzen2 -e '' -x 600 -w 768 -ta r -fg $FG -bg $BG -fn $FONT &
-- xmonad &
-- 
-- wait $!
-- pkill -HUP dzen2
-- pkill -HUP -f xmonad-acpi
-- wait