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

From HaskellWiki
Jump to navigation Jump to search
(Updated my config.)
(Updated my config.)
Line 1: Line 1:
 
<haskell>
 
<haskell>
import XMonad
+
import XMonad hiding (Tall)
   
import XMonad.Actions.DwmPromote
+
import XMonad.Actions.Promote
 
import XMonad.Actions.UpdatePointer
 
import XMonad.Actions.UpdatePointer
 
import XMonad.Actions.Warp
 
import XMonad.Actions.Warp
Line 9: Line 9:
 
import XMonad.Hooks.UrgencyHook
 
import XMonad.Hooks.UrgencyHook
 
import XMonad.Layout.LayoutHints
 
import XMonad.Layout.LayoutHints
import XMonad.Layout.HintedTile as HT
+
import XMonad.Layout.HintedTile
 
import XMonad.Layout.NoBorders
 
import XMonad.Layout.NoBorders
 
import XMonad.Layout.Spiral
 
import XMonad.Layout.Spiral
Line 17: Line 17:
 
import XMonad.Prompt.Ssh
 
import XMonad.Prompt.Ssh
 
import XMonad.Util.Run (spawnPipe)
 
import XMonad.Util.Run (spawnPipe)
import System.IO (hPutStrLn)
 
   
 
import qualified Data.Map as M
 
import qualified Data.Map as M
 
import Data.Ratio
 
import Data.Ratio
import Control.Monad
+
import System.IO (hPutStrLn)
   
 
main :: IO ()
 
main :: IO ()
Line 35: Line 34:
 
, borderWidth = 2
 
, borderWidth = 2
 
, keys = \c -> myKeys c `M.union` keys defaultConfig c
 
, keys = \c -> myKeys c `M.union` keys defaultConfig c
, logHook = dynamicLogWithPP hethraelPP
+
, logHook = dynamicLogWithPP (myPP xmobar)
{ ppOutput = hPutStrLn xmobar }
+
>> updatePointer (Relative 1 1)
>> updatePointer (Relative 1 1)
 
 
}
 
}
 
where
 
where
myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile HT.Tall
+
myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile Tall
 
||| hintedTile Wide
 
||| hintedTile Wide
 
||| Full
 
||| Full
||| tabbed shrinkText hethraelTheme
+
||| tabbed shrinkText myTheme
 
||| spiral (1 % 1)
 
||| spiral (1 % 1)
 
hintedTile = HintedTile nmaster delta ratio TopLeft
 
hintedTile = HintedTile nmaster delta ratio TopLeft
Line 50: Line 48:
 
delta = 3/100
 
delta = 3/100
   
hethraelPP :: PP
+
myPP din = defaultPP
hethraelPP = defaultPP
 
 
{ ppCurrent = xmobarColor focusColor ""
 
{ ppCurrent = xmobarColor focusColor ""
 
, ppVisible = xmobarColor lightTextColor ""
 
, ppVisible = xmobarColor lightTextColor ""
 
, ppHiddenNoWindows = xmobarColor lightBackgroundColor ""
 
, ppHiddenNoWindows = xmobarColor lightBackgroundColor ""
, ppUrgent = xmobarColor "#ffc000" ""
+
, ppUrgent = xmobarColor urgentColor ""
 
, ppSep = " · "
 
, ppSep = " · "
 
, ppWsSep = ""
 
, ppWsSep = ""
, ppTitle = xmobarColor lightTextColor "" . shorten 90
+
, ppTitle = xmobarColor lightTextColor ""
  +
, ppOutput = hPutStrLn din
 
}
 
}
   
hethraelTheme :: Theme
+
myTheme = defaultTheme
hethraelTheme = defaultTheme
 
 
{ activeColor = lightBackgroundColor
 
{ activeColor = lightBackgroundColor
 
, inactiveColor = backgroundColor
 
, inactiveColor = backgroundColor
  +
, urgentColor = backgroundColor
 
, activeBorderColor = textColor
 
, activeBorderColor = textColor
 
, inactiveTextColor = textColor
 
, inactiveTextColor = textColor
, inactiveBorderColor = lightBackgroundColor
+
, urgentTextColor = textColor
  +
, inactiveBorderColor = lightBackgroundColor
  +
, urgentBorderColor = urgentColor
 
, activeTextColor = lightTextColor
 
, activeTextColor = lightTextColor
 
, fontName = myFont
 
, fontName = myFont
 
}
 
}
   
hethraelXPConfig :: XPConfig
+
myXPConfig = defaultXPConfig
hethraelXPConfig = defaultXPConfig
 
 
{ font = myFont
 
{ font = myFont
 
, bgColor = backgroundColor
 
, bgColor = backgroundColor
Line 88: Line 87:
 
backgroundColor = "#304520"
 
backgroundColor = "#304520"
 
lightBackgroundColor = "#456030"
 
lightBackgroundColor = "#456030"
 
urgentColor = "#ffc000"
   
 
myKeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $
 
myKeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $
[ ((modm, xK_Return), dwmpromote)
+
[ ((modm, xK_Return), promote)
 
, ((modm, xK_b), sendMessage ToggleStruts)
 
, ((modm, xK_b), sendMessage ToggleStruts)
, ((modm .|. controlMask, xK_x), shellPrompt hethraelXPConfig)
+
, ((modm .|. controlMask, xK_x), shellPrompt myXPConfig)
, ((modm .|. controlMask, xK_s), sshPrompt hethraelXPConfig)
+
, ((modm .|. controlMask, xK_s), sshPrompt myXPConfig)
 
, ((modm, xK_z), warpToWindow 1 1)
 
, ((modm, xK_z), warpToWindow 1 1)
 
, ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts.
 
, ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts.

Revision as of 01:50, 8 April 2008

import XMonad hiding (Tall)

import XMonad.Actions.Promote
import XMonad.Actions.UpdatePointer
import XMonad.Actions.Warp
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.UrgencyHook
import XMonad.Layout.LayoutHints
import XMonad.Layout.HintedTile
import XMonad.Layout.NoBorders
import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed
import XMonad.Prompt
import XMonad.Prompt.Shell
import XMonad.Prompt.Ssh
import XMonad.Util.Run (spawnPipe)

import qualified Data.Map as M
import Data.Ratio
import System.IO (hPutStrLn)

main :: IO ()
main = do
    xmobar <- spawnPipe "xmobar"
    xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig
        { normalBorderColor  = backgroundColor
        , focusedBorderColor = focusColor
        , terminal = "$XTERMCMD"
        , layoutHook = myLayout
        , manageHook = manageDocks
        , modMask = mod4Mask
	, borderWidth = 2
        , keys = \c -> myKeys c `M.union` keys defaultConfig c
        , logHook = dynamicLogWithPP (myPP xmobar)
                 >> updatePointer (Relative 1 1)
        }
        where
            myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile Tall
                                 ||| hintedTile Wide
                                 ||| Full
                                 ||| tabbed shrinkText myTheme
                                 ||| spiral (1 % 1)
            hintedTile = HintedTile nmaster delta ratio TopLeft
            nmaster = 1
            ratio   = 1/2
            delta   = 3/100

            myPP din = defaultPP
                { ppCurrent = xmobarColor focusColor ""
                , ppVisible = xmobarColor lightTextColor ""
                , ppHiddenNoWindows = xmobarColor lightBackgroundColor ""
                , ppUrgent = xmobarColor urgentColor ""
                , ppSep = " · "
                , ppWsSep = ""
                , ppTitle = xmobarColor lightTextColor ""
                , ppOutput = hPutStrLn din
                }

            myTheme = defaultTheme
                { activeColor = lightBackgroundColor
                , inactiveColor = backgroundColor
                , urgentColor = backgroundColor
                , activeBorderColor = textColor
                , inactiveTextColor = textColor
                , urgentTextColor = textColor
                , inactiveBorderColor = lightBackgroundColor
                , urgentBorderColor = urgentColor
                , activeTextColor = lightTextColor
                , fontName = myFont
                }

            myXPConfig = defaultXPConfig
                { font        = myFont
                , bgColor     = backgroundColor
                , fgColor     = textColor
                , fgHLight    = lightTextColor
                , bgHLight    = lightBackgroundColor
                , borderColor = lightBackgroundColor
                }

            myFont = "xft:DejaVu Sans:size=10"
            focusColor = "#60ff45"
            textColor = "#c0c0a0"
            lightTextColor = "#fffff0"
            backgroundColor = "#304520"
            lightBackgroundColor = "#456030"
            urgentColor = "#ffc000"

            myKeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $
                [ ((modm,                 xK_Return), promote)
                , ((modm,                 xK_b), sendMessage ToggleStruts)
                , ((modm .|. controlMask, xK_x), shellPrompt myXPConfig)
                , ((modm .|. controlMask, xK_s), sshPrompt myXPConfig)
                , ((modm,                 xK_z), warpToWindow 1 1)
                , ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts.
                ]