update vimrc & xmonad
[dotfiles.git] / .xmonad / xmonad.hs
CommitLineData
7fc9a145 1import XMonad
2import XMonad.Actions.SpawnOn
3import XMonad.Hooks.DynamicLog
4import XMonad.Hooks.ManageDocks
5import XMonad.Util.Run
6import XMonad.Util.EZConfig(additionalKeys)
7import XMonad.Util.WorkspaceCompare
8import XMonad.Layout.PerWorkspace
9import XMonad.Layout.Spacing
10import XMonad.Layout.ThreeColumns
11import XMonad.Layout.Spiral
daac086b 12import XMonad.Layout.NoBorders
13--import XMonad.Layout.Fullscreen
7fc9a145 14import Data.Ratio
15import System.IO
16
17threeColLayout = ThreeCol 2 (3/100) (1/2)
18tallLayout = Tall 1 (5/100) (2/3)
19spiralLayout = spiral (1 % 1)
20
daac086b 21mLayout = spacing 0
7fc9a145 22 $ tallLayout
23 ||| threeColLayout
24 ||| spiralLayout
daac086b 25 ||| noBorders Full
7fc9a145 26
27mStartupHook :: X ()
28mStartupHook = do
29 spawnOn "term" "kremterm"
30 spawnOn "term" "kremterm"
31 spawnOn "term" "kremterm"
32 spawnOn "term" "kremterm"
33 spawnOn "term" "kremterm"
34 spawnOn "term" "kremterm"
35 spawnOn "term" "kremterm"
36
37 spawnOn "www" "google-chrome-stable"
38
39 spawnOn "chat" "skype"
40 spawnOn "chat" "kremirc"
41
42 spawnOn "music" "spotify"
43 spawnOn "music" "kremcmus"
44
45 spawnOn "game" "steam"
46
47mManageHook = composeAll
48 [ appName =? "kremterm" --> doShift "term"
49 , appName =? "google-chrome-stable" --> doShift "www"
50 , appName =? "firefox" --> doShift "www"
51 , appName =? "kremirc" --> doShift "chat"
52 , appName =? "skype" --> doShift "chat"
53 , appName =? "spotify" --> doShift "music"
54 , appName =? "kremcmus" --> doShift "music"
55 , appName =? "thunderbird" --> doShift "mail"
56 , appName =? "Steam" --> doShift "game"
57 , className =? "Steam" --> doShift "game"
58 , appName =? "steam" --> doShift "game"
59 , className =? "steam" --> doShift "game"
60 , appName =? "steam.sh" --> doShift "game"
61 , className =? "steam.sh" --> doShift "game"
7fc9a145 62 ]
63
64mWorkspaces = ["mon", "term", "www", "chat", "music", "mail", "game", "code", "extra"]
65-- 1 2 3 4 5 6 7 8 9
66
67main = do
68 xmproc <- spawnPipe "xmobar"
69 xmonad $ defaultConfig
70 { manageHook = mManageHook <+> manageDocks
71 , layoutHook = avoidStruts $ mLayout
72 , startupHook = mStartupHook
73 , logHook = dynamicLogWithPP xmobarPP
74 { ppOutput = hPutStrLn xmproc
75 , ppCurrent = xmobarColor "#70a16c" "" . wrap "[" "]"
76 , ppTitle = xmobarColor "#70a16c" "" . shorten 40
77 , ppVisible = wrap "(" ")"
78 , ppWsSep = " <fc=#af652f>|</fc> "
79 , ppUrgent = xmobarColor "#af652f" ""
80 , ppHidden = xmobarColor "#746c48" ""
81 , ppHiddenNoWindows = xmobarColor "#746c48" ""
82 , ppOrder = \(ws:_:t:_) -> [ws,t]
83 }
84 , workspaces = mWorkspaces
85 , modMask = mod4Mask
86 , normalBorderColor = "#170f0d"
87 , focusedBorderColor = "#746c48"
88 , borderWidth = 2
89 , terminal = "urxvtc"
90 }