Difference between revisions of "Xmonad/Config archive/Ray's xmonad.hs"
< Xmonad | Config archive
Jump to navigation
Jump to search
(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 XMonad.Prompt |
||
− | import qualified XMonad.StackSet as W |
||
+ | import XMonad.Prompt.Ssh |
||
− | import Graphics.X11 |
||
+ | import XMonad.Prompt.XMonad |
||
− | import Data.Ratio |
||
+ | import qualified XMonad.StackSet as W |
||
⚫ | |||
+ | import Graphics.X11 |
||
− | main = xmonad $ defaultConfig |
||
+ | import qualified Data.Map as M |
||
⚫ | |||
+ | import System.IO.UTF8 |
||
⚫ | |||
+ | import Data.Ratio |
||
− | , workspaces = ["term", "web"] ++ map show [3..9] |
||
+ | import Data.Bits |
||
− | , terminal = "rayterm" |
||
+ | |||
− | , defaultGaps = [(18,0,0,0)] |
||
+ | main = xmonad rayConfig |
||
− | , modMask = mod4Mask |
||
+ | |||
− | , manageHook = rayManageHook |
||
+ | rayConfig = defaultConfig |
||
− | , logHook = dynamicLog |
||
⚫ | |||
− | , layoutHook = Layout |
||
⚫ | |||
− | $ Mirror (Tall 1 0 (1%2)) |
||
− | + | , 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 _ _ _ "Opera" = return $ W.shift "web" |
||
+ | |||
⚫ | |||
+ | 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 "β" |
||
⚫ | |||
+ | |||
+ | rayKeys (XConfig {modMask = modm}) = M.fromList $ |
||
⚫ | |||
+ | , ((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