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 }