7fc9a145 |
1 | import XMonad |
2 | import XMonad.Actions.SpawnOn |
3 | import XMonad.Hooks.DynamicLog |
4 | import XMonad.Hooks.ManageDocks |
5 | import XMonad.Util.Run |
6 | import XMonad.Util.EZConfig(additionalKeys) |
7 | import XMonad.Util.WorkspaceCompare |
8 | import XMonad.Layout.PerWorkspace |
9 | import XMonad.Layout.Spacing |
10 | import XMonad.Layout.ThreeColumns |
11 | import XMonad.Layout.Spiral |
daac086b |
12 | import XMonad.Layout.NoBorders |
13 | --import XMonad.Layout.Fullscreen |
7fc9a145 |
14 | import Data.Ratio |
15 | import System.IO |
16 | |
17 | threeColLayout = ThreeCol 2 (3/100) (1/2) |
18 | tallLayout = Tall 1 (5/100) (2/3) |
19 | spiralLayout = spiral (1 % 1) |
20 | |
daac086b |
21 | mLayout = spacing 0 |
7fc9a145 |
22 | $ tallLayout |
23 | ||| threeColLayout |
24 | ||| spiralLayout |
daac086b |
25 | ||| noBorders Full |
7fc9a145 |
26 | |
27 | mStartupHook :: X () |
28 | mStartupHook = 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 | |
47 | mManageHook = 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 | |
64 | mWorkspaces = ["mon", "term", "www", "chat", "music", "mail", "game", "code", "extra"] |
65 | -- 1 2 3 4 5 6 7 8 9 |
66 | |
67 | main = 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 | } |