aboutsummaryrefslogtreecommitdiff
path: root/xmonad.symlink/xmonad.hs
blob: 339e2142e2f0f311e05dc0426db908249a7d1617 (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
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.MultiColumns
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")
         ]

myLayouts = Tall 1 0.01 0.5
        ||| multiCol [1,1,0] 4 0.01 0.4
        ||| Full