summary refs log tree commit diff stats
path: root/tag-xmonad/xmonad/xmonad.hs
blob: 9e1fa77f2c8c12418eb158e13d0407a4399bf22a (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
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.NoBorders
import XMonad.Util.EZConfig
import XMonad.Util.Run(spawnPipe)
import System.IO
import Data.List(isPrefixOf)

myManageHook :: ManageHook
myManageHook = composeOne
               [ className =? "Firefox" -?> doShift "2"
               , className =? "Pidgin" -?> doShift "3"
               , className =? "nuvolaplayer" -?> doShift "8"
               , className =? "Transmission-gtk" -?> doShift "9"
               , isFullscreen -?> doFullFloat
               , fmap ("mpv" `isPrefixOf`) title -?> doFullFloat
               ]

main :: IO ()
main = do
  xmproc <-spawnPipe "/usr/bin/xmobar /home/alan/.xmobarrc"
  xmonad $ defaultConfig
             { manageHook = myManageHook <+> manageDocks <+> manageHook defaultConfig
             , layoutHook = smartBorders . avoidStruts  $  layoutHook defaultConfig
             , logHook = dynamicLogWithPP xmobarPP
                         { ppOutput = hPutStrLn xmproc
                         , ppTitle  = xmobarColor "#859900" "" . shorten 200
                         , ppCurrent = xmobarColor "#b58900" "". wrap "[" "]"
                         , ppHiddenNoWindows = xmobarColor "#93a1a1" ""
                         , ppUrgent  = xmobarColor "#dc322f" "#b58900"
                         }
             , terminal = "urxvt"
             , modMask = mod4Mask
             , handleEventHook = fullscreenEventHook
  }