summaryrefslogtreecommitdiffstats
path: root/xmonad/xmonad-0.8.hs
blob: f5926f11494e7e77400bd2ed8a3bb21e9a4c441a (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 =? "vlc"            --> doFloat
    , className =? "psi"            --> doFloat
    , className =? "Gimp"           --> 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         = ["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()
    }