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