update vimrc & xmonad
[dotfiles.git] / .xmonad / xmonad.hs
... / ...
CommitLineData
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
12import XMonad.Layout.NoBorders
13--import XMonad.Layout.Fullscreen
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
21mLayout = spacing 0
22 $ tallLayout
23 ||| threeColLayout
24 ||| spiralLayout
25 ||| noBorders Full
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"
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 }