xmonad-extras 0.9.2 → 0.10
raw patch · 8 files changed
+258/−22 lines, 8 filesdep +regex-posixdep ~libmpddep ~xmonaddep ~xmonad-contribPVP ok
version bump matches the API change (PVP)
Dependencies added: regex-posix
Dependency ranges changed: libmpd, xmonad, xmonad-contrib
API changes (from Hackage documentation)
- XMonad.Actions.Eval: EvalConfig :: (InterpreterError -> X String) -> [(ModuleName, Maybe String)] -> [String] -> EvalConfig
- XMonad.Actions.Eval: data EvalConfig
- XMonad.Actions.Eval: defaultEvalConfig :: EvalConfig
- XMonad.Actions.Eval: evalExpression :: EvalConfig -> String -> X ()
- XMonad.Actions.Eval: evalExpressionWithReturn :: EvalConfig -> String -> X String
- XMonad.Actions.Eval: handleError :: EvalConfig -> InterpreterError -> X String
- XMonad.Actions.Eval: imports :: EvalConfig -> [(ModuleName, Maybe String)]
- XMonad.Actions.Eval: modules :: EvalConfig -> [String]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (Event -> X All))) => Mode Modify HandleEventHook x[adsi] l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (Event -> X All))) => Mode ModifyIO HandleEventHook x[adsh] l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (Event -> X All))) => Mode Set HandleEventHook x[adsj] l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode Modify LogHook x[adty] l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode Modify StartupHook x[adtL] l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode ModifyIO LogHook x[adtx] l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode ModifyIO StartupHook x[adtK] l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode Set LogHook x[adtz] l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (X ()))) => Mode Set StartupHook x[adtM] l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())))) => Mode Modify MouseBindings x[adt8] l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())))) => Mode ModifyIO MouseBindings x[adt7] l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())))) => Mode Set MouseBindings x[adt9] l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ())))) => Mode Modify Keys x[adsV] l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ())))) => Mode ModifyIO Keys x[adsU] l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ())))) => Mode Set Keys x[adsW] l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Bool)) => Mode Modify FocusFollowsMouse x[adtY] l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Bool)) => Mode ModifyIO FocusFollowsMouse x[adtX] l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Bool)) => Mode Set FocusFollowsMouse x[adtZ] l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Dimension)) => Mode Modify BorderWidth x[adtl] l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Dimension)) => Mode ModifyIO BorderWidth x[adtk] l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected Dimension)) => Mode Set BorderWidth x[adtm] l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected KeyMask)) => Mode Modify ModMask x[adsI] l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected KeyMask)) => Mode ModifyIO ModMask x[adsH] l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected KeyMask)) => Mode Set ModMask x[adsJ] l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected ManageHook)) => Mode Modify ManageHook x[ads5] l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected ManageHook)) => Mode ModifyIO ManageHook x[ads4] l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected ManageHook)) => Mode Set ManageHook x[ads6] l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Modify FocusedBorderColor x[adrF] l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Modify NormalBorderColor x[adrs] l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Modify Terminal x[adrS] l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode ModifyIO FocusedBorderColor x[adrE] l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode ModifyIO NormalBorderColor x[adrr] l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode ModifyIO Terminal x[adrR] l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Set FocusedBorderColor x[adrG] l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Set NormalBorderColor x[adrt] l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected String)) => Mode Set Terminal x[adrT] l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected [String])) => Mode Modify Workspaces x[adsv] l[adst] l[adst]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected [String])) => Mode ModifyIO Workspaces x[adsu] l[adst] l[adst]
- XMonad.Config.Alt.Internal: instance [overlap ok] (Fail (Expected [String])) => Mode Set Workspaces x[adsw] l[adst] l[adst]
- XMonad.Config.Alt.Internal: instance [overlap ok] (HCompose r (a -> b)) => HCompose ((b -> c) :*: r) (a -> c)
- XMonad.Config.Alt.Internal: instance [overlap ok] (HMap f a b) => Apply (HHMap f) a b
- XMonad.Config.Alt.Internal: instance [overlap ok] (HNat a) => HSubtract a HZero a
- XMonad.Config.Alt.Internal: instance [overlap ok] (HNat n) => HPred' (HSucc n) n
- XMonad.Config.Alt.Internal: instance [overlap ok] (LayoutClass l' Window) => Mode Set LayoutHook (l' Window) l l'
- XMonad.Config.Alt.Internal: instance [overlap ok] (Show a) => Apply Print a (IO ())
- XMonad.Config.Alt.Internal: instance [overlap ok] (Show a) => Show (T1 a)
- XMonad.Config.Alt.Internal: instance [overlap ok] (Show a) => Show (T2 a)
- XMonad.Config.Alt.Internal: instance [overlap ok] (Show a) => Show (T3 a)
- XMonad.Config.Alt.Internal: instance [overlap ok] (Show a) => Show (T3a a)
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify BorderWidth (Dimension -> Dimension) l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify FocusFollowsMouse (Bool -> Bool) l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify FocusedBorderColor (String -> String) l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify HandleEventHook ((Event -> X All) -> Event -> X All) l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify LogHook (X () -> X ()) l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify ManageHook (ManageHook -> ManageHook) l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify ModMask (KeyMask -> KeyMask) l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify NormalBorderColor (String -> String) l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify StartupHook (X () -> X ()) l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Terminal (String -> String) l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Workspaces ([String] -> [String]) l[adst] l[adst]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO BorderWidth (Dimension -> Config Dimension) l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO FocusFollowsMouse (Bool -> Config Bool) l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO FocusedBorderColor (String -> Config String) l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO HandleEventHook ((Event -> X All) -> Config (Event -> X All)) l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> Config (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO LogHook (X () -> Config (X ())) l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO ManageHook (ManageHook -> Config ManageHook) l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO ModMask (KeyMask -> Config KeyMask) l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> Config (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO NormalBorderColor (String -> Config String) l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO StartupHook (X () -> Config (X ())) l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Terminal (String -> Config String) l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Workspaces ([String] -> Config [String]) l[adst] l[adst]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set BorderWidth Dimension l[adtj] l[adtj]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set FocusFollowsMouse Bool l[adtW] l[adtW]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set FocusedBorderColor String l[adrD] l[adrD]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set HandleEventHook (Event -> X All) l[adsg] l[adsg]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Keys (XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l[adsT] l[adsT]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set LogHook (X ()) l[adtw] l[adtw]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set ManageHook ManageHook l[ads3] l[ads3]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set ModMask KeyMask l[adsG] l[adsG]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set MouseBindings (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l[adt6] l[adt6]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set NormalBorderColor String l[adrq] l[adrq]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set StartupHook (X ()) l[adtJ] l[adtJ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Terminal String l[adrQ] l[adrQ]
- XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Workspaces [String] l[adst] l[adst]
- XMonad.Config.Alt.Sample: ex1 :: IO ()
- XMonad.Config.Alt.Sample: ex2 :: IO ()
- XMonad.Prompt.Eval: evalPrompt :: EvalConfig -> XPConfig -> X ()
- XMonad.Prompt.Eval: evalPromptWithOutput :: EvalConfig -> XPConfig -> (String -> X ()) -> X ()
- XMonad.Prompt.Eval: instance XPrompt EvalPrompt
- XMonad.Prompt.Eval: showWithDzen :: Int -> [String] -> String -> X ()
- XMonad.Prompt.MPD: addAndPlay :: RunMPD -> XPConfig -> [Metadata] -> X ()
- XMonad.Prompt.MPD: addMatching :: RunMPD -> XPConfig -> [Metadata] -> X [Int]
- XMonad.Prompt.MPD: findMatching :: RunMPD -> XPConfig -> [Metadata] -> X [Song]
- XMonad.Prompt.MPD: findOrAdd :: Song -> MPD Int
- XMonad.Prompt.MPD: instance XPrompt MPDPrompt
- XMonad.Prompt.MPD: type RunMPD = forall a. MPD a -> IO (Response a)
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (Event -> X All)) => Mode Modify HandleEventHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (Event -> X All)) => Mode ModifyIO HandleEventHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (Event -> X All)) => Mode Set HandleEventHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode Modify LogHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode Modify StartupHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode ModifyIO LogHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode ModifyIO StartupHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode Set LogHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (X ())) => Mode Set StartupHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode Modify MouseBindings x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode ModifyIO MouseBindings x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) => Mode Set MouseBindings x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode Modify Keys x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode ModifyIO Keys x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) => Mode Set Keys x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Bool) => Mode Modify FocusFollowsMouse x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Bool) => Mode ModifyIO FocusFollowsMouse x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Bool) => Mode Set FocusFollowsMouse x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Dimension) => Mode Modify BorderWidth x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Dimension) => Mode ModifyIO BorderWidth x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected Dimension) => Mode Set BorderWidth x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected KeyMask) => Mode Modify ModMask x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected KeyMask) => Mode ModifyIO ModMask x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected KeyMask) => Mode Set ModMask x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected ManageHook) => Mode Modify ManageHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected ManageHook) => Mode ModifyIO ManageHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected ManageHook) => Mode Set ManageHook x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Modify FocusedBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Modify NormalBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Modify Terminal x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode ModifyIO FocusedBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode ModifyIO NormalBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode ModifyIO Terminal x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Set FocusedBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Set NormalBorderColor x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected String) => Mode Set Terminal x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected [String]) => Mode Modify Workspaces x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected [String]) => Mode ModifyIO Workspaces x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Fail (Expected [String]) => Mode Set Workspaces x0 l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] HCompose r (a -> b) => HCompose ((b -> c) :*: r) (a -> c)
+ XMonad.Config.Alt.Internal: instance [overlap ok] HMap f a b => Apply (HHMap f) a b
+ XMonad.Config.Alt.Internal: instance [overlap ok] HNat a => HSubtract a HZero a
+ XMonad.Config.Alt.Internal: instance [overlap ok] HNat n => HPred' (HSucc n) n
+ XMonad.Config.Alt.Internal: instance [overlap ok] LayoutClass l' Window => Mode Set LayoutHook (l' Window) l l'
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify BorderWidth (Dimension -> Dimension) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify FocusFollowsMouse (Bool -> Bool) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify FocusedBorderColor (String -> String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify HandleEventHook ((Event -> X All) -> Event -> X All) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify LogHook (X () -> X ()) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify ManageHook (ManageHook -> ManageHook) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify ModMask (KeyMask -> KeyMask) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify NormalBorderColor (String -> String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify StartupHook (X () -> X ()) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Terminal (String -> String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Modify Workspaces ([String] -> [String]) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO BorderWidth (Dimension -> Config Dimension) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO FocusFollowsMouse (Bool -> Config Bool) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO FocusedBorderColor (String -> Config String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO HandleEventHook ((Event -> X All) -> Config (Event -> X All)) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Keys ((XConfig Layout -> Map (ButtonMask, KeySym) (X ())) -> Config (XConfig Layout -> Map (ButtonMask, KeySym) (X ()))) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO LogHook (X () -> Config (X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO ManageHook (ManageHook -> Config ManageHook) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO ModMask (KeyMask -> Config KeyMask) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO MouseBindings ((XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) -> Config (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ()))) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO NormalBorderColor (String -> Config String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO StartupHook (X () -> Config (X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Terminal (String -> Config String) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode ModifyIO Workspaces ([String] -> Config [String]) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set BorderWidth Dimension l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set FocusFollowsMouse Bool l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set FocusedBorderColor String l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set HandleEventHook (Event -> X All) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Keys (XConfig Layout -> Map (ButtonMask, KeySym) (X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set LogHook (X ()) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set ManageHook ManageHook l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set ModMask KeyMask l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set MouseBindings (XConfig Layout -> Map (ButtonMask, Button) (Window -> X ())) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set NormalBorderColor String l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set StartupHook (X ()) l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Terminal String l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Mode Set Workspaces [String] l0 l0
+ XMonad.Config.Alt.Internal: instance [overlap ok] Show a => Apply Print a (IO ())
+ XMonad.Config.Alt.Internal: instance [overlap ok] Show a => Show (T1 a)
+ XMonad.Config.Alt.Internal: instance [overlap ok] Show a => Show (T2 a)
+ XMonad.Config.Alt.Internal: instance [overlap ok] Show a => Show (T3 a)
+ XMonad.Config.Alt.Internal: instance [overlap ok] Show a => Show (T3a a)
+ XMonad.Hooks.PerWindowKbdLayout: instance ExtensionClass LayoutStorage
+ XMonad.Hooks.PerWindowKbdLayout: instance Read LayoutStorage
+ XMonad.Hooks.PerWindowKbdLayout: instance Show LayoutStorage
+ XMonad.Hooks.PerWindowKbdLayout: instance Storable XkbStateRec
+ XMonad.Hooks.PerWindowKbdLayout: instance Typeable LayoutStorage
+ XMonad.Hooks.PerWindowKbdLayout: perWindowKbdLayout :: Event -> X All
+ XMonad.Util.WindowPropertiesRE: (~?) :: Functor f => f String -> String -> f Bool
+ XMonad.Util.WindowPropertiesRE: RE :: Property -> PropertyRE
+ XMonad.Util.WindowPropertiesRE: data PropertyRE
+ XMonad.Util.WindowPropertiesRE: hasPropertyRE :: PropertyRE -> Window -> X Bool
+ XMonad.Util.WindowPropertiesRE: instance Predicate PropertyRE Window
+ XMonad.Util.WindowPropertiesRE: instance Read PropertyRE
+ XMonad.Util.WindowPropertiesRE: instance Show PropertyRE
+ XMonad.Util.WindowPropertiesRE: instance Typeable PropertyRE
+ XMonad.Util.WindowPropertiesRE: propertyToQueryRE :: Property -> Query Bool
- XMonad.Actions.Volume: getMute :: (MonadIO m) => m Bool
+ XMonad.Actions.Volume: getMute :: MonadIO m => m Bool
- XMonad.Actions.Volume: getMuteChannels :: (MonadIO m) => [String] -> m Bool
+ XMonad.Actions.Volume: getMuteChannels :: MonadIO m => [String] -> m Bool
- XMonad.Actions.Volume: getVolume :: (MonadIO m) => m Double
+ XMonad.Actions.Volume: getVolume :: MonadIO m => m Double
- XMonad.Actions.Volume: getVolumeChannels :: (MonadIO m) => [String] -> m Double
+ XMonad.Actions.Volume: getVolumeChannels :: MonadIO m => [String] -> m Double
- XMonad.Actions.Volume: getVolumeMute :: (MonadIO m) => m (Double, Bool)
+ XMonad.Actions.Volume: getVolumeMute :: MonadIO m => m (Double, Bool)
- XMonad.Actions.Volume: getVolumeMuteChannels :: (MonadIO m) => [String] -> m (Double, Bool)
+ XMonad.Actions.Volume: getVolumeMuteChannels :: MonadIO m => [String] -> m (Double, Bool)
- XMonad.Actions.Volume: lowerVolume :: (MonadIO m) => Double -> m Double
+ XMonad.Actions.Volume: lowerVolume :: MonadIO m => Double -> m Double
- XMonad.Actions.Volume: lowerVolumeChannels :: (MonadIO m) => [String] -> Double -> m Double
+ XMonad.Actions.Volume: lowerVolumeChannels :: MonadIO m => [String] -> Double -> m Double
- XMonad.Actions.Volume: modifyMute :: (MonadIO m) => (Bool -> Bool) -> m Bool
+ XMonad.Actions.Volume: modifyMute :: MonadIO m => (Bool -> Bool) -> m Bool
- XMonad.Actions.Volume: modifyMuteChannels :: (MonadIO m) => [String] -> (Bool -> Bool) -> m Bool
+ XMonad.Actions.Volume: modifyMuteChannels :: MonadIO m => [String] -> (Bool -> Bool) -> m Bool
- XMonad.Actions.Volume: modifyVolume :: (MonadIO m) => (Double -> Double) -> m Double
+ XMonad.Actions.Volume: modifyVolume :: MonadIO m => (Double -> Double) -> m Double
- XMonad.Actions.Volume: modifyVolumeChannels :: (MonadIO m) => [String] -> (Double -> Double) -> m Double
+ XMonad.Actions.Volume: modifyVolumeChannels :: MonadIO m => [String] -> (Double -> Double) -> m Double
- XMonad.Actions.Volume: modifyVolumeMute :: (MonadIO m) => (Double -> Bool -> (Double, Bool)) -> m (Double, Bool)
+ XMonad.Actions.Volume: modifyVolumeMute :: MonadIO m => (Double -> Bool -> (Double, Bool)) -> m (Double, Bool)
- XMonad.Actions.Volume: modifyVolumeMuteChannels :: (MonadIO m) => [String] -> (Double -> Bool -> (Double, Bool)) -> m (Double, Bool)
+ XMonad.Actions.Volume: modifyVolumeMuteChannels :: MonadIO m => [String] -> (Double -> Bool -> (Double, Bool)) -> m (Double, Bool)
- XMonad.Actions.Volume: osdCat :: (MonadIO m) => Double -> (Bool -> String) -> m ()
+ XMonad.Actions.Volume: osdCat :: MonadIO m => Double -> (Bool -> String) -> m ()
- XMonad.Actions.Volume: raiseVolume :: (MonadIO m) => Double -> m Double
+ XMonad.Actions.Volume: raiseVolume :: MonadIO m => Double -> m Double
- XMonad.Actions.Volume: raiseVolumeChannels :: (MonadIO m) => [String] -> Double -> m Double
+ XMonad.Actions.Volume: raiseVolumeChannels :: MonadIO m => [String] -> Double -> m Double
- XMonad.Actions.Volume: setMute :: (MonadIO m) => Bool -> m ()
+ XMonad.Actions.Volume: setMute :: MonadIO m => Bool -> m ()
- XMonad.Actions.Volume: setMuteChannels :: (MonadIO m) => [String] -> Bool -> m ()
+ XMonad.Actions.Volume: setMuteChannels :: MonadIO m => [String] -> Bool -> m ()
- XMonad.Actions.Volume: setVolume :: (MonadIO m) => Double -> m ()
+ XMonad.Actions.Volume: setVolume :: MonadIO m => Double -> m ()
- XMonad.Actions.Volume: setVolumeChannels :: (MonadIO m) => [String] -> Double -> m ()
+ XMonad.Actions.Volume: setVolumeChannels :: MonadIO m => [String] -> Double -> m ()
- XMonad.Actions.Volume: setVolumeMute :: (MonadIO m) => Double -> Bool -> m ()
+ XMonad.Actions.Volume: setVolumeMute :: MonadIO m => Double -> Bool -> m ()
- XMonad.Actions.Volume: setVolumeMuteChannels :: (MonadIO m) => [String] -> Double -> Bool -> m ()
+ XMonad.Actions.Volume: setVolumeMuteChannels :: MonadIO m => [String] -> Double -> Bool -> m ()
- XMonad.Actions.Volume: toggleMute :: (MonadIO m) => m Bool
+ XMonad.Actions.Volume: toggleMute :: MonadIO m => m Bool
- XMonad.Actions.Volume: toggleMuteChannels :: (MonadIO m) => [String] -> m Bool
+ XMonad.Actions.Volume: toggleMuteChannels :: MonadIO m => [String] -> m Bool
- XMonad.Config.Alt.Desktop: avoidStruts :: (Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) l l', HLt ll (HSucc HZero) b, HLength l ll, Read (x Window), LayoutClass x Window) => l -> l'
+ XMonad.Config.Alt.Desktop: avoidStruts :: (Read (x Word32), HLength l ll, HLt ll (HSucc HZero) b, LayoutClass x Window, Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) l l') => l -> l'
- XMonad.Config.Alt.Desktop: avoidStrutsOn :: (Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) l l', HLt ll (HSucc HZero) b, HLength l ll, Read (x Window), LayoutClass x Window) => [Direction2D] -> l -> l'
+ XMonad.Config.Alt.Desktop: avoidStrutsOn :: (Read (x Word32), HLength l ll, HLt ll (HSucc HZero) b, LayoutClass x Window, Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) l l') => [Direction2D] -> l -> l'
- XMonad.Config.Alt.Desktop: dzen :: (Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 l', HLt ll (HSucc HZero) b, HLength b1 ll, Read (x Window), LayoutClass x Window, MonadIO m, LayoutClass l Window, HLength a ll1, HLt ll1 (HSucc (HSucc HZero)) b2, Ins2 b2 (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => a -> l'
+ XMonad.Config.Alt.Desktop: dzen :: (Read (x Word32), HLength b1 ll1, HLength a ll, HLt ll1 (HSucc HZero) b2, HLt ll (HSucc (HSucc HZero)) b, MonadIO m, LayoutClass x Window, LayoutClass l Window, Ins2 b2 (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 c, Ins2 b (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => a -> c
- XMonad.Config.Alt.Desktop: statusBar :: (Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 l', HLt ll (HSucc HZero) b, HLength b1 ll, Read (x Window), LayoutClass x Window, MonadIO m, LayoutClass l Window, HLength a ll1, HLt ll1 (HSucc (HSucc HZero)) b2, Ins2 b2 (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => String -> PP -> (XConfig Layout -> (KeyMask, KeySym)) -> a -> l'
+ XMonad.Config.Alt.Desktop: statusBar :: (Read (x Word32), HLength b1 ll1, HLength a ll, HLt ll1 (HSucc HZero) b2, HLt ll (HSucc (HSucc HZero)) b, MonadIO m, LayoutClass x Window, LayoutClass l Window, Ins2 b2 (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 c, Ins2 b (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => String -> PP -> (XConfig Layout -> (KeyMask, KeySym)) -> a -> c
- XMonad.Config.Alt.Desktop: xmobar :: (Ins2 b (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 l', HLt ll (HSucc HZero) b, HLength b1 ll, Read (x Window), LayoutClass x Window, MonadIO m, LayoutClass l Window, HLength a ll1, HLt ll1 (HSucc (HSucc HZero)) b2, Ins2 b2 (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => a -> l'
+ XMonad.Config.Alt.Desktop: xmobar :: (Read (x Word32), HLength b1 ll1, HLength a ll, HLt ll1 (HSucc HZero) b2, HLt ll (HSucc (HSucc HZero)) b, MonadIO m, LayoutClass x Window, LayoutClass l Window, Ins2 b2 (HSucc HZero) HTrue (Config (XConfig x) -> Config (XConfig (ModifiedLayout AvoidStruts x))) b1 c, Ins2 b (HSucc (HSucc HZero)) HTrue (m (XConfig l) -> m (XConfig l)) a b1) => a -> c
- XMonad.Config.Alt.Internal: add :: (Mode Add field e x y, HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: add :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Add field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- XMonad.Config.Alt.Internal: class (HNat n) => HReplicateF n e l | n e -> l
+ XMonad.Config.Alt.Internal: class HNat n => HReplicateF n e l | n e -> l
- XMonad.Config.Alt.Internal: class (HBool hold) => Ins2 b n hold f l l' | b n hold f l -> l'
+ XMonad.Config.Alt.Internal: class HBool hold => Ins2 b n hold f l l' | b n hold f l -> l'
- XMonad.Config.Alt.Internal: hComp :: (HCompose l f) => l -> f
+ XMonad.Config.Alt.Internal: hComp :: HCompose l f => l -> f
- XMonad.Config.Alt.Internal: hPred' :: (HPred' n n') => n -> n'
+ XMonad.Config.Alt.Internal: hPred' :: HPred' n n' => n -> n'
- XMonad.Config.Alt.Internal: hReplicateF :: (HReplicateF n e l) => n -> e -> l
+ XMonad.Config.Alt.Internal: hReplicateF :: HReplicateF n e l => n -> e -> l
- XMonad.Config.Alt.Internal: hSubtract :: (HSubtract a b c) => a -> b -> c
+ XMonad.Config.Alt.Internal: hSubtract :: HSubtract a b c => a -> b -> c
- XMonad.Config.Alt.Internal: ins :: (Monad m, HLength l ll, HLt ll n b1, Ins2 b1 n HFalse (m a -> m b) l l') => n -> (a -> m b) -> l -> l'
+ XMonad.Config.Alt.Internal: ins :: (Monad m, HLength l ll, HLt ll n b, Ins2 b n HFalse (m a -> m b1) l l') => n -> (a -> m b1) -> l -> l'
- XMonad.Config.Alt.Internal: ins' :: (Ins' n hold f l l') => n -> hold -> f -> l -> l'
+ XMonad.Config.Alt.Internal: ins' :: Ins' n hold f l l' => n -> hold -> f -> l -> l'
- XMonad.Config.Alt.Internal: ins2 :: (Ins2 b n hold f l l') => b -> n -> hold -> f -> l -> l'
+ XMonad.Config.Alt.Internal: ins2 :: Ins2 b n hold f l l' => b -> n -> hold -> f -> l -> l'
- XMonad.Config.Alt.Internal: insGeq :: (HCond t (t, a -> b) (t1, a -> c) z, HUpdateAtHNat n z l l', HLookupByHNat n l (t, a -> b)) => n -> t1 -> (b -> c) -> l -> l'
+ XMonad.Config.Alt.Internal: insGeq :: (HLookupByHNat n l (t1, a -> b), HUpdateAtHNat n e l l', HCond t1 (t1, a -> b) (t, a -> c) e) => n -> t -> (b -> c) -> l -> l'
- XMonad.Config.Alt.Internal: insLt :: (HLength l n, HSubtract a n c, HReplicateF c Id l1, HAppend l l1 l'', HAppend l'' (HCons (t, t1) HNil) l''1) => a -> t -> t1 -> l -> l''1
+ XMonad.Config.Alt.Internal: insLt :: (HLength l1 b, HAppend l (HCons (t, t1) HNil) l'', HAppend l1 l' l, HReplicateF n Id l', HSubtract a b n) => a -> t -> t1 -> l1 -> l''
- XMonad.Config.Alt.Internal: insertInto :: (Mode action field e x y, HLength l ll, HLt ll n b, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => action -> hold -> n -> field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: insertInto :: (HLength l ll, HLt ll n b, Mode action field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => action -> hold -> n -> field -> e -> l -> l'
- XMonad.Config.Alt.Internal: m :: (Mode action field e x y) => action -> field -> e -> XConfig x -> Config (XConfig y)
+ XMonad.Config.Alt.Internal: m :: Mode action field e x y => action -> field -> e -> XConfig x -> Config (XConfig y)
- XMonad.Config.Alt.Internal: modify :: (Mode Modify field e x y, HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: modify :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Modify field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- XMonad.Config.Alt.Internal: modifyIO :: (Mode ModifyIO field e x y, HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: modifyIO :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode ModifyIO field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
- XMonad.Config.Alt.Internal: modifyIO' :: (Mode ModifyIO field e x y, HLength l ll, HLt ll n b, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => hold -> n -> field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: modifyIO' :: (HLength l ll, HLt ll n b, Mode ModifyIO field e x y, Ins2 b n hold (Config (XConfig x) -> Config (XConfig y)) l l') => hold -> n -> field -> e -> l -> l'
- XMonad.Config.Alt.Internal: runConfig :: (LayoutClass l Window, Read (l Window), HCompose (HCons t t1) (HNil -> l1), HMap Snd l1 l', Monad m, HCompose l' (m (XConfig (Choose Tall (Choose (Mirror Tall) Full))) -> Config (XConfig l))) => HCons t t1 -> IO ()
+ XMonad.Config.Alt.Internal: runConfig :: (Monad m, Read (l Window), HMap Snd l2 l1, LayoutClass l Window, HCompose l1 (m (XConfig (Choose Tall (Choose (Mirror Tall) Full))) -> Config (XConfig l)), HCompose (HCons t t1) (HNil -> l2)) => HCons t t1 -> IO ()
- XMonad.Config.Alt.Internal: runConfig' :: (HCompose (HCons t t1) (HNil -> l), HMap Snd l l', Monad m, HCompose l' (m a -> Config b)) => a -> HCons t t1 -> IO b
+ XMonad.Config.Alt.Internal: runConfig' :: (Monad m, HMap Snd l1 l, HCompose l (m a -> Config b), HCompose (HCons t t1) (HNil -> l1)) => a -> HCons t t1 -> IO b
- XMonad.Config.Alt.Internal: set :: (Mode Set field e x y, HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
+ XMonad.Config.Alt.Internal: set :: (HLength l ll, HLt ll (HSucc (HSucc (HSucc (HSucc HZero)))) b, Mode Set field e x y, Ins2 b (HSucc (HSucc (HSucc (HSucc HZero)))) HFalse (Config (XConfig x) -> Config (XConfig y)) l l') => field -> e -> l -> l'
Files
- XMonad/Actions/Volume.hs +3/−3
- XMonad/Config/Alt/Internal.hs +2/−1
- XMonad/Config/Alt/Sample.hs +9/−6
- XMonad/Hooks/PerWindowKbdLayout.hsc +140/−0
- XMonad/Prompt/MPD.hs +10/−7
- XMonad/Prompt/MPD/Compat.hs +20/−0
- XMonad/Util/WindowPropertiesRE.hs +58/−0
- xmonad-extras.cabal +16/−5
XMonad/Actions/Volume.hs view
@@ -177,19 +177,19 @@ amixerGetAll :: [String] -> IO (Double, Bool) amixerGet :: String -> IO String amixerSetAll = (mapM_ .) . amixerSet-amixerSet v m s = outputOf $ "amixer set '" ++ s ++ "' " ++ show (clip v) ++ "% " ++ (if m then "" else "un") ++ "mute"+amixerSet v m s = outputOf $ "amixer set '" ++ s ++ "' playback " ++ show (clip v) ++ "% " ++ (if m then "" else "un") ++ "mute" amixerGetAll = fmap parseAmixerGetAll . mapM amixerGet amixerGet s = outputOf $ "amixer get \'" ++ s ++ "\'" amixerSetVolumeOnlyAll :: Double -> [String] -> IO () amixerSetVolumeOnly :: Double -> String -> IO String amixerSetVolumeOnlyAll = mapM_ . amixerSetVolumeOnly-amixerSetVolumeOnly v s = outputOf $ "amixer set '" ++ s ++ "' " ++ show (clip v) ++ "% "+amixerSetVolumeOnly v s = outputOf $ "amixer set '" ++ s ++ "' playback " ++ show (clip v) ++ "%" amixerSetMuteOnlyAll :: Bool -> [String] -> IO () amixerSetMuteOnly :: Bool -> String -> IO String amixerSetMuteOnlyAll = mapM_ . amixerSetMuteOnly-amixerSetMuteOnly m s = outputOf $ "amixer set '" ++ s ++ "' " ++ (if m then "" else "un") ++ "mute"+amixerSetMuteOnly m s = outputOf $ "amixer set '" ++ s ++ "' playback " ++ (if m then "" else "un") ++ "mute" parseAmixerGetAll :: [String] -> (Double, Bool) parseAmixerGetAll ss = (geomMean vols, mute) where
XMonad/Config/Alt/Internal.hs view
@@ -14,7 +14,8 @@ ,TypeSynonymInstances ,UndecidableInstances ,ViewPatterns #-}-{-# OPTIONS_GHC -fno-warn-missing-signatures #-}+{-# OPTIONS_GHC -fno-warn-missing-signatures+ -fcontext-stack=81 #-} -- I can't figure out an acceptable type for 'set' and similar: -- ghc doesn't accept the type inferred by ghci
XMonad/Config/Alt/Sample.hs view
@@ -1,16 +1,19 @@ {-# LANGUAGE NoMonomorphismRestriction #-}-{-# OPTIONS_GHC -fno-warn-missing-signatures #-}+{-# OPTIONS_GHC -fno-warn-missing-signatures -fcontext-stack=81 #-} module XMonad.Config.Alt.Sample where import XMonad.Config.Alt as C import XMonad import qualified XMonad.Hooks.ManageDocks import qualified XMonad.Hooks.DynamicLog -ex1, ex2 :: IO ()-ex1 = runConfig $ hBuild- (C.modify Workspaces (++["lol","hi"]))- (C.set ModMask mod4Mask)- (C.modify LayoutHook XMonad.Hooks.ManageDocks.avoidStruts)+-- for an unknown reason ex1 and ex2 cannot coexist with ghc-7.0.2, previously+-- they did+-- ex1, ex2 :: IO ()+-- ex1 = runConfig $ hBuild+-- (C.modify Workspaces (++["lol","hi"]))+-- (C.set ModMask mod4Mask)+-- (C.modify LayoutHook XMonad.Hooks.ManageDocks.avoidStruts)+ ex2 = runConfig ex2'
+ XMonad/Hooks/PerWindowKbdLayout.hsc view
@@ -0,0 +1,140 @@+{-# LANGUAGE ScopedTypeVariables, ForeignFunctionInterface, MultiParamTypeClasses, DeriveDataTypeable, FlexibleInstances, PatternGuards #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-} -- GHC 6.10.4 complains about Foreign.C.Types, see Ticket #3419++-----------------------------------------------------------------------------+-- |+-- Module : XMonad.Hooks.PerWindowKbdLayout+-- Copyright : (c) Konstantin Sobolev <konstantin.sobolev@gmail.com>+-- License : BSD-style (see LICENSE)+--+-- Maintainer : Konstantin Sobolev <konstantin.sobolev@gmail.com>+-- Stability : unstable+-- Portability : unportable+--+-- A hook that remembers per-window keyboard layouts and switches them+-- on focus changes.+--+-----------------------------------------------------------------------------++module XMonad.Hooks.PerWindowKbdLayout (+ -- * Usage+ -- $usage+ perWindowKbdLayout) where++import Foreign+import Foreign.C.Types (CUChar,CUShort,CUInt(..),CInt(..))++import Control.Monad (when)+import Data.List (find)+import qualified Data.Map as M+import Data.Monoid (All(..))+import Data.Traversable (traverse)++import XMonad+import qualified XMonad.StackSet as W+import qualified XMonad.Util.ExtensibleState as XS++#include <X11/XKBlib.h>++-- $usage+-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:+--+-- > import XMonad.Hooks.PerWindowKbdLayout+--+-- Then edit your @eventHook@ by adding 'perWindowKbdLayout', for example+--+-- > main = xmonad defaultConfig { handleEventHook = perWindowKbdLayout }++data XkbStateRec = XkbStateRec {+ group :: CUChar,+ locked_group :: CUChar,+ base_group :: CUShort,+ latched_group :: CUShort,+ mods :: CUChar,+ base_mods :: CUChar,+ latched_mods :: CUChar,+ locked_mods :: CUChar,+ compat_state :: CUChar,+ grab_mods :: CUChar,+ compat_grab_mods :: CUChar,+ lookup_mods :: CUChar,+ compat_lookup_mods :: CUChar,+ ptr_buttons :: CUShort+}++instance Storable XkbStateRec where+ sizeOf _ = (#size XkbStateRec)+ alignment _ = alignment (undefined :: CUShort)+ peek ptr = do+ r_group <- (#peek XkbStateRec, group) ptr+ r_locked_group <- (#peek XkbStateRec, locked_group) ptr+ r_base_group <- (#peek XkbStateRec, base_group) ptr+ r_latched_group <- (#peek XkbStateRec, latched_group) ptr+ r_mods <- (#peek XkbStateRec, mods) ptr+ r_base_mods <- (#peek XkbStateRec, base_mods) ptr+ r_latched_mods <- (#peek XkbStateRec, latched_mods) ptr+ r_locked_mods <- (#peek XkbStateRec, locked_mods) ptr+ r_compat_state <- (#peek XkbStateRec, compat_state) ptr+ r_grab_mods <- (#peek XkbStateRec, grab_mods) ptr+ r_compat_grab_mods <- (#peek XkbStateRec, compat_grab_mods) ptr+ r_lookup_mods <- (#peek XkbStateRec, lookup_mods) ptr+ r_compat_lookup_mods <- (#peek XkbStateRec, compat_lookup_mods) ptr+ r_ptr_buttons <- (#peek XkbStateRec, ptr_buttons) ptr+ return XkbStateRec {+ group = r_group,+ locked_group = r_locked_group,+ base_group = r_base_group,+ latched_group = r_latched_group,+ mods = r_mods,+ base_mods = r_base_mods,+ latched_mods = r_latched_mods,+ locked_mods = r_locked_mods,+ compat_state = r_compat_state,+ grab_mods = r_grab_mods,+ compat_grab_mods = r_compat_grab_mods,+ lookup_mods = r_lookup_mods,+ compat_lookup_mods = r_compat_lookup_mods,+ ptr_buttons = r_ptr_buttons+ }++foreign import ccall unsafe "X11/XKBlib.h XkbGetState"+ xkbGetState :: Display -> CUInt -> Ptr XkbStateRec -> IO CInt++foreign import ccall unsafe "XkbLockGroup" xkbLockGroup :: Display -> CUInt -> CUInt -> IO ()++type KbdLayout = Int++getKbdLayout :: Display -> IO KbdLayout+getKbdLayout d = alloca $ \stRecPtr -> do+ xkbGetState d (#const XkbUseCoreKbd) stRecPtr+ st <- peek stRecPtr+ return $ fromIntegral (group st)++setKbdLayout :: Display -> KbdLayout -> IO ()+setKbdLayout d l = xkbLockGroup d (#const XkbUseCoreKbd) $ fromIntegral l++data LayoutStorage = LayoutStorage (Maybe Window) (M.Map Window KbdLayout) deriving (Typeable,Read,Show)+instance ExtensionClass LayoutStorage where initialValue = LayoutStorage Nothing M.empty++perWindowKbdLayout :: Event -> X All+perWindowKbdLayout (DestroyWindowEvent {ev_window = w, ev_event_type = et}) = do+ when (et == destroyNotify) $+ XS.modify $ \(LayoutStorage mpf wtl) -> (LayoutStorage mpf (M.delete w wtl))+ return (All True)+perWindowKbdLayout _ = do+ mst <- gets (W.stack . W.workspace . W.current . windowset)+ traverse update $ W.focus `fmap` mst+ return (All True)++update :: Window -> X()+update foc = withDisplay $ \dpy -> do+ (LayoutStorage mpf wtl) <- XS.get+ curLayout <- io $ getKbdLayout dpy+ case mpf of+ Nothing ->+ XS.put (LayoutStorage (Just foc) (M.insert foc curLayout wtl))+ Just pf -> when (pf /= foc) $ do+ XS.put (LayoutStorage (Just foc) (M.insert pf curLayout wtl))+ io $ whenJust (M.lookup foc wtl) (setKbdLayout dpy)++-- vim:ft=haskell:ts=4:shiftwidth=4:softtabstop=4:expandtab:
XMonad/Prompt/MPD.hs view
@@ -26,12 +26,14 @@ ) where import Control.Monad import Data.Char+import Data.Either import qualified Data.Map as M import Data.Maybe import Network.MPD import XMonad import XMonad.Prompt-import Data.List (nub,isPrefixOf,findIndex)+import Data.List as L (nub,isPrefixOf,find)+import qualified XMonad.Prompt.MPD.Compat as Compat -- $usage --@@ -98,14 +100,14 @@ case resp of Left err -> trace ("XMonad.Prompt.MPD: MPD returned an error: " ++ show err) >> return []- Right songs -> foldM (findMatching' xp) songs metas+ Right songs -> foldM (findMatching' xp) (rights songs) metas -- | Determine playlist position of the song and add it, if it isn't present. findOrAdd :: Song -> MPD Int findOrAdd s = playlistInfo Nothing >>= \pl ->- case findIndex ((== sgFilePath s) . sgFilePath) pl of- Just i -> return . fromIntegral $ i- Nothing -> flip addId Nothing . sgFilePath $ s+ case L.find ((== sgFilePath s) . sgFilePath) pl of+ Just (Song { sgIndex = Just i }) -> return i+ _ -> fmap Compat.unwrapId . flip addId Nothing . sgFilePath $ s -- | Add all selected songs to the playlist if they are not in it. addMatching :: RunMPD -> XPConfig -> [Metadata] -> X [Int]@@ -115,5 +117,6 @@ -- | Add matching songs and play the first one. addAndPlay :: RunMPD -> XPConfig -> [Metadata] -> X ()-addAndPlay runMPD xp ms = addMatching runMPD xp ms >>=- io . runMPD . play . listToMaybe >> return ()+addAndPlay runMPD xp ms = do+ ids <- addMatching runMPD xp ms+ whenJust (listToMaybe ids) ((>> return ()) . io . runMPD . playId . Compat.wrapId)
+ XMonad/Prompt/MPD/Compat.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE CPP #-}++module XMonad.Prompt.MPD.Compat (wrapId, unwrapId) where++#if MIN_VERSION_libmpd(0,7,0)++import Network.MPD (Id(..))+wrapId = Id+unwrapId (Id i) = i++#else++type Id = Int+wrapId = id+unwrapId = id++#endif++wrapId :: Int -> Id+unwrapId :: Id -> Int
+ XMonad/Util/WindowPropertiesRE.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE TypeSynonymInstances, MultiParamTypeClasses, DeriveDataTypeable #-}+-----------------------------------------------------------------------------+-- |+-- Module : XMonad.Util.WindowPropertiesRE+-- Copyright : (c) 2011 Ilya Portnov <portnov84@rambler.ru>+-- License : BSD3-style (see LICENSE)+--+-- Maintainer : Ilya Portnov <portnov84@rambler.ru>+-- Stability : unstable+-- Portability : unportable+--+-- Similar to XMonad.Util.WindowProperties, but uses posix regular expressions matching+-- instead of exact match.+--+-----------------------------------------------------------------------------+module XMonad.Util.WindowPropertiesRE+ (PropertyRE (..),+ (~?),+ propertyToQueryRE, hasPropertyRE+ ) where++import Text.Regex.Posix ((=~))++import XMonad++import XMonad.Util.WindowProperties+import XMonad.Layout.LayoutBuilderP++-- | A wrapper for X.U.WindowProperties.Property.+-- Checks using regular expression.+data PropertyRE = RE Property+ deriving (Show,Read,Typeable)++-- | Regular expressions matching for ManageHooks+(~?) :: (Functor f) => f String -> String -> f Bool+q ~? x = fmap (=~ x) q++-- | Similar to XMonad.Util.WindowProperties.propertyToQuery, +-- but uses regexp match instead of exact match+propertyToQueryRE :: Property -> Query Bool+propertyToQueryRE (Title s) = title ~? s+propertyToQueryRE (Resource s) = resource ~? s+propertyToQueryRE (ClassName s) = className ~? s+propertyToQueryRE (Role s) = stringProperty "WM_WINDOW_ROLE" ~? s+propertyToQueryRE (Machine s) = stringProperty "WM_CLIENT_MACHINE" ~? s+propertyToQueryRE (And p1 p2) = propertyToQueryRE p1 <&&> propertyToQueryRE p2+propertyToQueryRE (Or p1 p2) = propertyToQueryRE p1 <||> propertyToQueryRE p2+propertyToQueryRE (Not p) = not `fmap` propertyToQueryRE p+propertyToQueryRE (Const b) = return b++-- | Does given window have this property?+hasPropertyRE :: PropertyRE -> Window -> X Bool+hasPropertyRE (RE p) w = runQuery (propertyToQueryRE p) w++instance Predicate PropertyRE Window where+ alwaysTrue _ = RE (Const True)+ checkPredicate = hasPropertyRE+
xmonad-extras.cabal view
@@ -1,5 +1,5 @@ name: xmonad-extras-version: 0.9.2+version: 0.10 homepage: http://projects.haskell.org/xmonad-extras synopsis: Third party extensions for xmonad with wacky dependencies description: Various modules for xmonad that cannot be added to xmonad-contrib@@ -30,6 +30,9 @@ flag with_hlist description: Build modules depending on HList. +flag with_regex_posix+ description: Build modules depending on posix-regex.+ flag with_template_haskell description: Build modules depending on template haskell. @@ -43,7 +46,7 @@ else build-depends: base < 3 - build-depends: mtl, unix, X11>=1.4.3, xmonad>=0.9 && <0.10, xmonad-contrib>=0.9 && <0.10+ build-depends: mtl, unix, X11>=1.4.3, xmonad>=0.10 && <0.11, xmonad-contrib>=0.10 && <0.11 if true ghc-options: -fwarn-tabs -Wall@@ -58,15 +61,23 @@ build-depends: parsec >= 2 && < 4, split >= 0.1 && < 0.2 exposed-modules: XMonad.Actions.Volume - if flag(with_hint)+ -- At the moment of writing, hint does not yet support+ -- GHCs newer than 7.0.4; If that changes and no new release+ -- of xmonad-extras has been made, please contact the maintainer.+ if flag(with_hint) && impl (ghc < 7.2) build-depends: hint >= 0.3 && < 0.4, network exposed-modules: XMonad.Actions.Eval XMonad.Prompt.Eval -- XMonad.Hooks.EvalServer if flag(with_mpd)- build-depends: libmpd >= 0.5 && < 0.6+ build-depends: libmpd >= 0.6 && < 0.8 exposed-modules: XMonad.Prompt.MPD+ other-modules: XMonad.Prompt.MPD.Compat + if flag(with_regex_posix)+ build-depends: regex-posix+ exposed-modules: XMonad.Util.WindowPropertiesRE+ if impl(ghc >= 6.12.1) && flag(with_template_haskell) && flag(with_hlist) build-depends: template-haskell, HList >= 0.2.3 && < 0.3 exposed-modules: XMonad.Config.Alt@@ -77,7 +88,7 @@ other-modules: XMonad.Config.Alt.Types --- exposed-modules: XMonad.Hooks.PerWindowKbdLayout+ exposed-modules: XMonad.Hooks.PerWindowKbdLayout if impl(ghc >= 6.12.1) ghc-options: -fno-warn-unused-do-bind