aboutsummaryrefslogtreecommitdiff
path: root/xmonad.symlink/xmonad.hs
blob: 43d0a9e4fb1e1323aa017c7cc920d01c65381c40 (plain) (blame)
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
import System.IO
import System.Posix.Env (putEnv)
import XMonad
import XMonad.Actions.CycleWS
import XMonad.Actions.CycleWindows
import XMonad.Hooks.SetWMName
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Layout.LimitWindows
import XMonad.Layout.MultiColumns
import XMonad.Layout.Tabbed
import XMonad.Util.EZConfig
import XMonad.Util.Loggers
import XMonad.Util.Run(spawnPipe)

xmoblog proc = dynamicLogWithPP xmobarPP
            { ppOutput = hPutStrLn proc
            , ppTitle = xmobarColor "green" "" . shorten 50
            , ppExtras = [logCmd "sleep .1 && volume"]
            }

main = do
        putEnv "_JAVA_AWT_WM_NONREPARENTING=1" -- java GUIs; see https://code.google.com/p/xmonad/issues/detail?id=559#c11
        xmproc <- spawnPipe "xmobar"
        xmonad $ defaultConfig
            { modMask           = mod4Mask
            , focusFollowsMouse = False
            , layoutHook        = avoidStruts $ myLayouts
            , logHook           = xmoblog xmproc
            , manageHook        = manageDocks <+> manageHook defaultConfig
            , terminal          = "uxterm"
            , borderWidth       = 1
            }
            `additionalKeysP` (myKeys xmproc)

myKeys xmproc = [ ("M-<F5>", spawn "xbacklight -dec 5 -time 80")
         , ("M-<F6>", spawn "xbacklight -inc 5 -time 80")
         , ("<XF86AudioMute>", spawn "amixer sset 'Master' toggle" >> xmoblog xmproc)
         , ("<XF86AudioRaiseVolume>", spawn "amixer sset 'Master' 1%+" >> xmoblog xmproc)
         , ("<XF86AudioLowerVolume>", spawn "amixer sset 'Master' 1%-" >> xmoblog xmproc)
         , ("<XF86PowerOff>", spawn "sudo pm-suspend")
         , ("<XF86KbdBrightnessUp>", spawn "sudo -A ./bin/kbdbacklight up")
         , ("<XF86KbdBrightnessDown>", spawn "sudo -A ./bin/kbdbacklight down")
         , ("M-<Up>", nextWS)
         , ("M-<Down>", prevWS)
         , ("M-S-p", spawn "passmenu -i")
         , ("M-v", spawn "uxterm -e vim")
         , ("M-m", spawn "uxterm -e cmus")
         , ("M--", decreaseLimit)
         , ("M-=", increaseLimit)
         ]

myLayouts = limitWindows 3 $ Tall 1 0.01 0.5
        ||| multiCol [1,1,0] 4 0.01 0.4
        ||| simpleTabbed