Difference between revisions of "Xmonad/Config archive/lithis's xmonad.hs"
< Xmonad | Config archive
Jump to navigation
Jump to search
(Added my config.) |
(Updated my config.) |
||
Line 3: | Line 3: | ||
import XMonad.Actions.DwmPromote |
import XMonad.Actions.DwmPromote |
||
+ | import XMonad.Actions.UpdatePointer |
||
import XMonad.Actions.Warp |
import XMonad.Actions.Warp |
||
import XMonad.Hooks.DynamicLog |
import XMonad.Hooks.DynamicLog |
||
Line 8: | 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.NoBorders |
import XMonad.Layout.NoBorders |
||
import XMonad.Layout.Spiral |
import XMonad.Layout.Spiral |
||
Line 20: | Line 22: | ||
import Data.Ratio |
import Data.Ratio |
||
import Control.Monad |
import Control.Monad |
||
− | |||
− | pointerFollowsFocus :: Rational -> Rational -> X () |
||
− | pointerFollowsFocus h v = withFocused $ \w -> do |
||
− | dpy <- asks display |
||
− | root <- asks theRoot |
||
− | wa <- io $ getWindowAttributes dpy w |
||
− | (sameRoot,_,w',_,_,_,_,_) <- io $ queryPointer dpy root |
||
− | unless (sameRoot && w == w') $ |
||
− | io $ warpPointer dpy none w 0 0 0 0 |
||
− | (fraction h (wa_width wa)) (fraction v (wa_height wa)) |
||
− | where fraction x y = floor (x * fromIntegral y) |
||
main :: IO () |
main :: IO () |
||
Line 46: | Line 37: | ||
, logHook = dynamicLogWithPP hethraelPP |
, logHook = dynamicLogWithPP hethraelPP |
||
{ ppOutput = hPutStrLn xmobar } |
{ ppOutput = hPutStrLn xmobar } |
||
− | >> |
+ | >> updatePointer (Relative 1 1) |
} |
} |
||
where |
where |
||
− | myLayout = layoutHints $ avoidStruts $ smartBorders $ |
+ | myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile HT.Tall |
− | ||| |
+ | ||| hintedTile Wide |
||| Full |
||| Full |
||
||| tabbed shrinkText hethraelTheme |
||| tabbed shrinkText hethraelTheme |
||
||| spiral (1 % 1) |
||| spiral (1 % 1) |
||
− | + | hintedTile = HintedTile nmaster delta ratio TopLeft |
|
nmaster = 1 |
nmaster = 1 |
||
ratio = 1/2 |
ratio = 1/2 |
||
Line 104: | Line 95: | ||
, ((modm .|. controlMask, xK_s), sshPrompt hethraelXPConfig) |
, ((modm .|. controlMask, xK_s), sshPrompt hethraelXPConfig) |
||
, ((modm, xK_z), warpToWindow 1 1) |
, ((modm, xK_z), warpToWindow 1 1) |
||
− | , ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") |
+ | , ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts. |
] |
] |
||
</haskell> |
</haskell> |
Revision as of 19:48, 28 March 2008
import XMonad
import XMonad.Actions.DwmPromote
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 as HT
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 System.IO (hPutStrLn)
import qualified Data.Map as M
import Data.Ratio
import Control.Monad
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 hethraelPP
{ ppOutput = hPutStrLn xmobar }
>> updatePointer (Relative 1 1)
}
where
myLayout = layoutHints $ avoidStruts $ smartBorders $ hintedTile HT.Tall
||| hintedTile Wide
||| Full
||| tabbed shrinkText hethraelTheme
||| spiral (1 % 1)
hintedTile = HintedTile nmaster delta ratio TopLeft
nmaster = 1
ratio = 1/2
delta = 3/100
hethraelPP :: PP
hethraelPP = defaultPP
{ ppCurrent = xmobarColor focusColor ""
, ppVisible = xmobarColor lightTextColor ""
, ppHiddenNoWindows = xmobarColor lightBackgroundColor ""
, ppUrgent = xmobarColor "#ffc000" ""
, ppSep = " · "
, ppWsSep = ""
, ppTitle = xmobarColor lightTextColor "" . shorten 90
}
hethraelTheme :: Theme
hethraelTheme = defaultTheme
{ activeColor = lightBackgroundColor
, inactiveColor = backgroundColor
, activeBorderColor = textColor
, inactiveTextColor = textColor
, inactiveBorderColor = lightBackgroundColor
, activeTextColor = lightTextColor
, fontName = myFont
}
hethraelXPConfig :: XPConfig
hethraelXPConfig = 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"
myKeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $
[ ((modm, xK_Return), dwmpromote)
, ((modm, xK_b), sendMessage ToggleStruts)
, ((modm .|. controlMask, xK_x), shellPrompt hethraelXPConfig)
, ((modm .|. controlMask, xK_s), sshPrompt hethraelXPConfig)
, ((modm, xK_z), warpToWindow 1 1)
, ((modm .|. controlMask, xK_l), spawn "exec xlogo -render -fg `randomdarkcolor` -bg `randomdarkcolor`") -- For testing layouts.
]