Xmonad/Config archive/Ray's xmonad.hs
From HaskellWiki
(Difference between revisions)
(updated my config) |
(new managehook system and type signatures) |
||
| Line 3: | Line 3: | ||
import XMonad.Layouts | import XMonad.Layouts | ||
import XMonad.Operations | import XMonad.Operations | ||
| + | import XMonad.ManageHook | ||
import XMonad.Hooks.DynamicLog | import XMonad.Hooks.DynamicLog | ||
import XMonad.Layout.NoBorders | import XMonad.Layout.NoBorders | ||
| Line 15: | Line 16: | ||
import Data.Bits | import Data.Bits | ||
| + | main :: IO () | ||
main = xmonad rayConfig | main = xmonad rayConfig | ||
| + | rayConfig :: XConfig | ||
rayConfig = defaultConfig | rayConfig = defaultConfig | ||
{ normalBorderColor = "#333333" | { normalBorderColor = "#333333" | ||
| Line 32: | Line 35: | ||
} | } | ||
| - | rayManageHook :: | + | rayManageHook :: ManageHook |
| - | + | rayManageHook = composeAll . concat $ | |
| - | + | [ [ className =? c --> doFloat | c <- floats] | |
| - | + | , [ className =? "Opera" --> doF (W.shift "β") ]] | |
| - | + | where floats = ["MPlayer", "Gimp","xli"] | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | rayKeys :: XConfig -> M.Map (KeyMask, KeySym) (X ()) | ||
rayKeys (XConfig {modMask = modm}) = M.fromList $ | rayKeys (XConfig {modMask = modm}) = M.fromList $ | ||
| - | + | [ ((modm , xK_s), sshPrompt defaultXPConfig) | |
| - | + | , ((modm .|. controlMask, xK_x), xmonadPrompt defaultXPConfig) | |
| - | + | ] | |
| + | rayPP :: PP | ||
rayPP = PP { ppCurrent = wrap "^fg(#ff0000)\"" "\"^fg()" | rayPP = PP { ppCurrent = wrap "^fg(#ff0000)\"" "\"^fg()" | ||
, ppVisible = wrap "^fg(#a00000)\"" "\"^fg()" | , ppVisible = wrap "^fg(#a00000)\"" "\"^fg()" | ||
Revision as of 06:47, 9 November 2007
import XMonad import XMonad.Layouts import XMonad.Operations import XMonad.ManageHook 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 :: IO () main = xmonad rayConfig rayConfig :: XConfig 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 :: ManageHook rayManageHook = composeAll . concat $ [ [ className =? c --> doFloat | c <- floats] , [ className =? "Opera" --> doF (W.shift "β") ]] where floats = ["MPlayer", "Gimp","xli"] rayKeys :: XConfig -> M.Map (KeyMask, KeySym) (X ()) rayKeys (XConfig {modMask = modm}) = M.fromList $ [ ((modm , xK_s), sshPrompt defaultXPConfig) , ((modm .|. controlMask, xK_x), xmonadPrompt defaultXPConfig) ] rayPP :: PP 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
