Xmonad/Config archive/Ray's xmonad.hs
From HaskellWiki
(Difference between revisions)
(updated my config) |
|||
| Line 1: | Line 1: | ||
<haskell> | <haskell> | ||
| - | import XMonad | + | import XMonad |
| - | import XMonad.Layouts | + | import XMonad.Layouts |
| - | import XMonad.Operations | + | import XMonad.Operations |
| - | import XMonad.Hooks.DynamicLog | + | import XMonad.Hooks.DynamicLog |
| - | import XMonad.Layout.NoBorders | + | import XMonad.Layout.NoBorders |
| - | import qualified XMonad.StackSet as W | + | import XMonad.Prompt |
| - | import Graphics.X11 | + | import XMonad.Prompt.Ssh |
| - | import Data.Ratio | + | import XMonad.Prompt.XMonad |
| - | + | import qualified XMonad.StackSet as W | |
| - | main = xmonad | + | import Graphics.X11 |
| - | + | import qualified Data.Map as M | |
| - | + | import System.IO.UTF8 | |
| - | + | import Data.Ratio | |
| - | + | import Data.Bits | |
| - | + | ||
| - | + | main = xmonad rayConfig | |
| - | + | ||
| - | + | rayConfig = defaultConfig | |
| - | + | { normalBorderColor = "#333333" | |
| - | + | , focusedBorderColor = "#0000ff" | |
| - | + | , workspaces = ["α","β","γ","δ","ε","ζ"] | |
| - | + | , terminal = "rayterm" | |
| - | + | , defaultGaps = [(18,0,0,0)] | |
| - | rayManageHook :: Window -- ^ the new window to manage | + | , modMask = mod4Mask |
| - | -> String -- ^ window title | + | , manageHook = rayManageHook |
| - | -> String -- ^ window resource name | + | , logHook = dynamicLogWithPP rayPP |
| - | -> String -- ^ window resource class | + | , keys = \c -> rayKeys c `M.union` keys defaultConfig c |
| - | -> X (WindowSet -> WindowSet) | + | , layoutHook = Layout |
| - | rayManageHook w _ _ c | c `elem` floats = fmap (W.float w . snd) (floatLocation w) | + | $ Mirror (Tall 1 0 (1%2)) |
| - | where floats = ["MPlayer", "Gimp"] | + | ||| (noBorders Full) |
| - | rayManageHook _ _ _ "Opera" = return $ W.shift " | + | } |
| - | rayManageHook _ _ _ _ = return $ id | + | |
| + | rayManageHook :: Window -- ^ the new window to manage | ||
| + | -> String -- ^ window title | ||
| + | -> String -- ^ window resource name | ||
| + | -> String -- ^ window resource class | ||
| + | -> X (WindowSet -> WindowSet) | ||
| + | rayManageHook w _ _ c | c `elem` floats = fmap (W.float w . snd) (floatLocation w) | ||
| + | where floats = ["MPlayer", "Gimp", "xli"] | ||
| + | rayManageHook _ _ _ "Opera" = return $ W.shift "β" | ||
| + | rayManageHook _ _ _ _ = return $ id | ||
| + | |||
| + | rayKeys (XConfig {modMask = modm}) = M.fromList $ | ||
| + | [ ((modm , xK_s), sshPrompt defaultXPConfig) | ||
| + | , ((modm .|. controlMask, xK_x), xmonadPrompt defaultXPConfig) | ||
| + | ] | ||
| + | |||
| + | rayPP = PP { ppCurrent = wrap "^fg(#ff0000)\"" "\"^fg()" | ||
| + | , ppVisible = wrap "^fg(#a00000)\"" "\"^fg()" | ||
| + | , ppHidden = wrap "^fg(#ffffff)\"" "\"^fg()" | ||
| + | , ppHiddenNoWindows = wrap "^fg(#555555)\"" "\"^fg()" | ||
| + | , ppSep = " " | ||
| + | , ppWsSep = "," | ||
| + | , ppTitle = shorten 80 | ||
| + | , ppLayout = (++) "layout = " | ||
| + | , ppOrder = (take 2) . workspaceTag | ||
| + | , ppOutput = System.IO.UTF8.putStrLn | ||
| + | } | ||
| + | where workspaceTag (x:xs) = ("workspaces = [" ++ x ++ "]") : xs | ||
</haskell> | </haskell> | ||
Revision as of 03:59, 9 November 2007
import XMonad import XMonad.Layouts import XMonad.Operations import XMonad.Hooks.DynamicLog import XMonad.Layout.NoBorders import XMonad.Prompt import XMonad.Prompt.Ssh import XMonad.Prompt.XMonad import qualified XMonad.StackSet as W import Graphics.X11 import qualified Data.Map as M import System.IO.UTF8 import Data.Ratio import Data.Bits main = xmonad rayConfig rayConfig = defaultConfig { normalBorderColor = "#333333" , focusedBorderColor = "#0000ff" , workspaces = ["α","β","γ","δ","ε","ζ"] , terminal = "rayterm" , defaultGaps = [(18,0,0,0)] , modMask = mod4Mask , manageHook = rayManageHook , logHook = dynamicLogWithPP rayPP , keys = \c -> rayKeys c `M.union` keys defaultConfig c , layoutHook = Layout $ Mirror (Tall 1 0 (1%2)) ||| (noBorders Full) } rayManageHook :: Window -- ^ the new window to manage -> String -- ^ window title -> String -- ^ window resource name -> String -- ^ window resource class -> X (WindowSet -> WindowSet) rayManageHook w _ _ c | c `elem` floats = fmap (W.float w . snd) (floatLocation w) where floats = ["MPlayer", "Gimp", "xli"] rayManageHook _ _ _ "Opera" = return $ W.shift "β" rayManageHook _ _ _ _ = return $ id rayKeys (XConfig {modMask = modm}) = M.fromList $ [ ((modm , xK_s), sshPrompt defaultXPConfig) , ((modm .|. controlMask, xK_x), xmonadPrompt defaultXPConfig) ] rayPP = PP { ppCurrent = wrap "^fg(#ff0000)\"" "\"^fg()" , ppVisible = wrap "^fg(#a00000)\"" "\"^fg()" , ppHidden = wrap "^fg(#ffffff)\"" "\"^fg()" , ppHiddenNoWindows = wrap "^fg(#555555)\"" "\"^fg()" , ppSep = " " , ppWsSep = "," , ppTitle = shorten 80 , ppLayout = (++) "layout = " , ppOrder = (take 2) . workspaceTag , ppOutput = System.IO.UTF8.putStrLn } where workspaceTag (x:xs) = ("workspaces = [" ++ x ++ "]") : xs
