{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
module XMonad.Config.Kde (
kdeConfig,
kde4Config,
desktopLayoutModifiers
) where
import XMonad
import XMonad.Config.Desktop
import qualified Data.Map as M
kdeConfig :: XConfig
(ModifiedLayout
AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)))
kdeConfig = XConfig
(ModifiedLayout
AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)))
desktopConfig
{ terminal = "konsole"
, keys = kdeKeys <> keys desktopConfig }
kde4Config :: XConfig
(ModifiedLayout
AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)))
kde4Config = XConfig
(ModifiedLayout
AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)))
desktopConfig
{ terminal = "konsole"
, keys = kde4Keys <> keys desktopConfig }
kdeKeys :: XConfig l -> Map (ButtonMask, KeySym) (m ())
kdeKeys XConfig{modMask :: forall (l :: * -> *). XConfig l -> ButtonMask
modMask = ButtonMask
modm} = [((ButtonMask, KeySym), m ())] -> Map (ButtonMask, KeySym) (m ())
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList
[ ((ButtonMask
modm, KeySym
xK_p), String -> m ()
forall (m :: * -> *). MonadIO m => String -> m ()
spawn String
"dcop kdesktop default popupExecuteCommand")
, ((ButtonMask
modm ButtonMask -> ButtonMask -> ButtonMask
forall a. Bits a => a -> a -> a
.|. ButtonMask
shiftMask, KeySym
xK_q), String -> m ()
forall (m :: * -> *). MonadIO m => String -> m ()
spawn String
"dcop kdesktop default logout")
]
kde4Keys :: XConfig l -> Map (ButtonMask, KeySym) (m ())
kde4Keys XConfig{modMask :: forall (l :: * -> *). XConfig l -> ButtonMask
modMask = ButtonMask
modm} = [((ButtonMask, KeySym), m ())] -> Map (ButtonMask, KeySym) (m ())
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList
[ ((ButtonMask
modm, KeySym
xK_p), String -> m ()
forall (m :: * -> *). MonadIO m => String -> m ()
spawn String
"krunner")
, ((ButtonMask
modm ButtonMask -> ButtonMask -> ButtonMask
forall a. Bits a => a -> a -> a
.|. ButtonMask
shiftMask, KeySym
xK_q), String -> m ()
forall (m :: * -> *). MonadIO m => String -> m ()
spawn String
"dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:1 int32:0 int32:1")
]