From 89eacd63aa040398255ca72825bf0ed573f54351 Mon Sep 17 00:00:00 2001 From: ndwarshuis Date: Sun, 1 Jan 2023 11:50:17 -0500 Subject: [PATCH] ENH use rio logger for eventhook --- bin/xmonad.hs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/bin/xmonad.hs b/bin/xmonad.hs index 5a3c4d3..b23c2e1 100644 --- a/bin/xmonad.hs +++ b/bin/xmonad.hs @@ -136,7 +136,7 @@ run = do , modMask = myModMask , layoutHook = myLayouts tt , manageHook = myManageHook dws - , handleEventHook = myEventHook ha + , handleEventHook = myEventHook runIO ha , startupHook = myStartupHook , workspaces = myWorkspaces , logHook = myLoghook xmobarP @@ -625,20 +625,30 @@ manageApps dws = -------------------------------------------------------------------------------- -- Eventhook configuration -myEventHook :: (String -> X ()) -> Event -> X All -myEventHook handler = xMsgEventHook handler <+> handleEventHook def +myEventHook + :: (MonadReader env m, HasLogFunc env, MonadUnliftIO m) + => (m () -> IO ()) + -> (String -> X ()) + -> Event + -> X All +myEventHook runIO handler = xMsgEventHook runIO handler <+> handleEventHook def -- | React to ClientMessage events from concurrent threads -xMsgEventHook :: (String -> X ()) -> Event -> X All -xMsgEventHook handler ClientMessageEvent {ev_message_type = t, ev_data = d} +xMsgEventHook + :: (MonadReader env m, HasLogFunc env, MonadUnliftIO m) + => (m () -> IO ()) + -> (String -> X ()) + -> Event + -> X All +xMsgEventHook runIO handler ClientMessageEvent {ev_message_type = t, ev_data = d} | t == bITMAP = do let (xtype, tag) = splitXMsg d case xtype of Workspace -> removeDynamicWorkspace tag ACPI -> handler tag - Unknown -> io $ putStrLn "WARNING: unknown concurrent message" + Unknown -> liftIO $ runIO $ logWarn "unknown concurrent message" return (All True) -xMsgEventHook _ _ = return (All True) +xMsgEventHook _ _ _ = return (All True) -------------------------------------------------------------------------------- -- Keymap configuration