summaryrefslogtreecommitdiffstats
path: root/xmonad/xmonad-0.8.hs
blob: 1d3664bba5dcf09162fca3032603b1921454091d (plain)
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
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.EwmhDesktops
import XMonad.Actions.CycleWS
import System.Exit
import System.IO
 
import qualified XMonad.StackSet as W
import qualified Data.Map        as M
 
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
	[ ((modMask,               xK_Return), spawn $ XMonad.terminal conf)
	, ((modMask,               xK_q     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"")
	, ((modMask,               xK_l     ), spawn "slock")
	, ((modMask .|. shiftMask, xK_c     ), kill)
	, ((modMask,               xK_space ), sendMessage NextLayout)
	, ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
	, ((modMask,               xK_r     ), windows W.focusDown)
	, ((modMask,               xK_g     ), windows W.focusUp  )
	, ((modMask,               xK_m     ), windows W.focusMaster  )
	, ((modMask .|. shiftMask, xK_r	), windows W.swapDown  )
	, ((modMask .|. shiftMask, xK_g	), windows W.swapUp  )
	, ((modMask,               xK_h     ), prevWS)
	, ((modMask,               xK_f     ), nextWS)
	, ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess))
	, ((modMask              , xK_n     ), sendMessage (IncMasterN 1))
	, ((modMask              , xK_t     ), sendMessage (IncMasterN (-1)))
	]
	++
 
    [((m .|. modMask, k), windows $ f i)
        | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
        , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
 
myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
	[ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w))
	, ((modMask, button2), (\w -> focus w >> windows W.swapMaster))
	, ((modMask, button3), (\w -> focus w >> mouseResizeWindow w))
	]

myManageHook = composeAll
	[ className =? "MPlayer"        --> doFloat
	, className =? "Gimp"           --> doFloat
	, className =? "PacketTracer5"           --> doFloat
	]

myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True

myConfig = defaultConfig

main = do
xmonad $ defaultConfig {
	manageHook         = manageDocks <+> manageHook defaultConfig,
	terminal           = "x-terminal-emulator",
	focusFollowsMouse  = myFocusFollowsMouse,
	borderWidth        = 1,
	modMask            = mod1Mask,
	numlockMask        = mod2Mask,
	workspaces         = ["0","1","2","3","4","5","6","7","8","9"],
	normalBorderColor  = "#dddddd",
	focusedBorderColor = "#ff0000",
	keys               = myKeys,
	mouseBindings      = myMouseBindings,
	logHook            = ewmhDesktopsLogHook,
	--logHook            = dynamicLog,
	layoutHook         = avoidStruts $ layoutHook defaultConfig,
	startupHook        = return()
	}