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
}
|