-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxmonad.hs
104 lines (84 loc) · 3.52 KB
/
xmonad.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
{-# OPTIONS_GHC -Wall -fno-warn-missing-signatures #-}
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.UrgencyHook
import XMonad.Actions.GridSelect
import XMonad.Prompt
import XMonad.Prompt.Ssh
import XMonad.Prompt.Man
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig
import XMonad.Util.Run
import XMonad.Layout.NoBorders
import XMonad.Actions.CycleWS
import System.IO
myWorkspaces = [" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 "]
myManageHook = composeAll
[
className =? "Firefox" --> doShift " 1 ",
className =? "Xmessage" --> doCenterFloat,
isFullscreen --> (doF W.focusDown <+> doFullFloat)
]
myKeys = [
-- xmonad stuff
("M-]", nextWS),
("M-[", prevWS),
("M-z", toggleWS),
("M-g", goToSelected defaultGSConfig),
("M-u", focusUrgent),
("M-p", spawn "dmenu_run -l 5"),
-- miscelleaneous stuff
("M-S-l", spawn "slock"),
-- applications
("M-b", spawn "$BROWSER"),
("M-i", runInTerm "" "sudo htop"),
("M-c", runInTerm "" "mc"),
-- prompts
("M-s", sshPrompt defaultXPConfig),
("M-<F1>", manPrompt defaultXPConfig),
-- mpd stuff
("M-f", spawn "mpc seek +10"),
("M-S-f", spawn "mpc seek -10"),
("M-S-.", spawn "mpc next"),
("M-S-,", spawn "mpc prev"),
-- xf86 keys
("<XF86Tools>", runInTerm "" "ncmpcpp"),
("<XF86AudioPlay>", spawn "mpc toggle"),
("<XF86AudioMute>", spawn "amixer set Master toggle"),
("<XF86AudioLowerVolume>", spawn "amixer set Master playback 1-"),
("<XF86AudioRaiseVolume>", spawn "amixer set Master playback 1+"),
("M-<XF86AudioLowerVolume>", spawn "mpc volume -5"),
("M-<XF86AudioRaiseVolume>", spawn "mpc volume +5"),
("<XF86HomePage>", spawn "$BROWSER")
]
myLogHook xmobar = dynamicLogWithPP xmobarPP {
ppOutput = hPutStrLn xmobar,
ppCurrent = xmobarColor "#D7D0C7" "#870E0E",
ppVisible = xmobarColor "#D7D0C7" "#536175",
ppUrgent = xmobarColor "#D7D0C7" "#3F9E6C" . xmobarStrip,
ppHidden = xmobarColor "#D7D0C7" "#3B3A3A",
ppHiddenNoWindows = xmobarColor "#D7D0C7" "",
ppTitle = xmobarColor "#D7D0C7" "" . shorten 80,
ppSep = " : ",
ppWsSep = ""
}
myConfig xmobar = defaultConfig {
terminal = "urxvt",
modMask = mod4Mask,
focusFollowsMouse = False,
borderWidth = 2,
normalBorderColor = "#7D7C7C",
focusedBorderColor = "#FF5781",
workspaces = myWorkspaces,
manageHook = manageDocks <+> myManageHook,
layoutHook = avoidStruts $ smartBorders $ layoutHook defaultConfig,
logHook = myLogHook xmobar
}
myUrgencyConfig = UrgencyConfig { suppressWhen = Focused, remindWhen = Dont }
main = do
xmobar <- spawnPipe "xmobar ~/.xmonad/xmobarrc"
xmonad $ withUrgencyHookC NoUrgencyHook myUrgencyConfig
$ myConfig xmobar `additionalKeysP` myKeys