module XMonad.Actions.PerWorkspaceKeys (
chooseAction,
bindOn
) where
import XMonad
import XMonad.StackSet as S
chooseAction :: (String->X()) -> X()
chooseAction :: (String -> X ()) -> X ()
chooseAction String -> X ()
f = (WindowSet -> X ()) -> X ()
forall a. (WindowSet -> X a) -> X a
withWindowSet (String -> X ()
f (String -> X ()) -> (WindowSet -> String) -> WindowSet -> X ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WindowSet -> String
forall i l a s sd. StackSet i l a s sd -> i
S.currentTag)
bindOn :: [(String, X())] -> X()
bindOn :: [(String, X ())] -> X ()
bindOn [(String, X ())]
bindings = (String -> X ()) -> X ()
chooseAction String -> X ()
chooser where
chooser :: String -> X ()
chooser String
ws = case String -> [(String, X ())] -> Maybe (X ())
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup String
ws [(String, X ())]
bindings of
Just X ()
action -> X ()
action
Maybe (X ())
Nothing -> case String -> [(String, X ())] -> Maybe (X ())
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup String
"" [(String, X ())]
bindings of
Just X ()
action -> X ()
action
Maybe (X ())
Nothing -> () -> X ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()