summaryrefslogtreecommitdiffstats
path: root/xmonad-0.8.hs
blob: 0ea6d0b5053da7a17d8d7bebbb70ad1a2edc17cb (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
71
72
73
import XMonad
import XMonad.Hooks.ManageDocks
import System.Exit
 
import qualified XMonad.StackSet as W
import qualified Data.Map        as M
 
myTerminal      = "urxvt"
myBorderWidth   = 1
myModMask       = mod1Mask
myNumlockMask   = mod2Mask
myWorkspaces    = ["1","2","3","4","5","6","7","8","9"]
myNormalBorderColor  = "#dddddd"
myFocusedBorderColor = "#ff0000"
myDefaultGaps   = [(0,0,0,0)]
 
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     ), withFocused $ windows . W.sink)
    , ((modMask              , xK_h     ), sendMessage (IncMasterN 1))
    , ((modMask              , xK_f     ), 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 ]
 
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
 
myLogHook = return ()
myStartupHook = return ()
 
main = xmonad defaults
 
defaults = defaultConfig {
	manageHook         = manageDocks <+> manageHook defaultConfig,
	layoutHook         = avoidStruts $ layoutHook defaultConfig,
        terminal           = myTerminal,
        focusFollowsMouse  = myFocusFollowsMouse,
        borderWidth        = myBorderWidth,
        modMask            = myModMask,
        numlockMask        = myNumlockMask,
        workspaces         = myWorkspaces,
        normalBorderColor  = myNormalBorderColor,
        focusedBorderColor = myFocusedBorderColor,
 	defaultGaps        = myDefaultGaps,
        keys               = myKeys,
        mouseBindings      = myMouseBindings,
        logHook            = myLogHook,
        startupHook        = myStartupHook
    }