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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{- |
Module : XMonad.Config.Alt.Desktop
Copyright : Adam Vogt <vogt.adam@gmail.com>
License : BSD3-style (see LICENSE)
Maintainer : Adam Vogt <vogt.adam@gmail.com>
Stability : unstable
Portability : unportable
Adapts functionality from some contrib modules
-}
module XMonad.Config.Alt.Desktop (
-- * "XMonad.Hooks.DynamicLog"
dzen,
xmobar,
statusBar,
-- * "XMonad.Hooks.EwmhDesktops"
ewmh,
-- * "XMonad.Hooks.ManageDocks"
avoidStrutsOn,
avoidStruts,
-- * precedences (apply modifiers in what should be the right order)
AvoidStrutsPrec, StatusBarPrec,
EwmhPrec,
) where
import qualified XMonad as X
import qualified XMonad.Hooks.EwmhDesktops as E
import qualified XMonad.Hooks.ManageDocks as ManageDocks
import qualified XMonad.Hooks.DynamicLog as DynamicLog
import XMonad.Config.Alt.Internal
import Control.Monad.Trans
$(decNat "avoidStrutsPrec" 1)
$(decNat "statusBarPrec" 2)
$(decNat "ewmhPrec" 6)
-- | See 'E.ewmh'
ewmh c = ins' ewmhPrec hTrue (liftM E.ewmh) c
-- | See 'ManageDocks.avoidStrutsOn'
avoidStrutsOn a c = ins' avoidStrutsPrec hTrue
((m (Proxy :: Proxy Modify) LayoutHook (ManageDocks.avoidStrutsOn a)) =<<)
c
-- | See 'ManageDocks.avoidStruts'
avoidStruts c = ins' avoidStrutsPrec hTrue
(m (Proxy :: Proxy Modify) LayoutHook ManageDocks.avoidStruts =<<)
c
-- | See 'DynamicLog.statusBar'
-- doesn't set struts
statusBar cmd pp k conf = {- avoidStruts . -- doesn't typecheck -}
ins' statusBarPrec hTrue
(\c -> do
c' <- c
c'' <- liftIO $ DynamicLog.statusBar cmd pp k c'
return $ c'' { X.layoutHook = X.layoutHook c' }
)
$ conf
toggleStrutsKey c = (X.modMask c, X.xK_b)
xmobar conf = statusBar
"xmobar"
DynamicLog.xmobarPP
toggleStrutsKey
conf
dzen conf = statusBar
("dzen2" ++ flags)
DynamicLog.xmobarPP
toggleStrutsKey
conf
where
fg = "'#a8a3f7'" -- n.b quoting
bg = "'#3f3c6d'"
flags = "-e 'onstart=lower' -w 400 -ta l -fg " ++ fg ++ " -bg " ++ bg
|