From 2ef652ebe1dbb01d5bbbdf8ce2d4f5a784dfdc52 Mon Sep 17 00:00:00 2001 From: ndwarshuis Date: Sun, 1 Jan 2023 12:49:56 -0500 Subject: [PATCH] ENH don't hardcode interfaces --- bin/xmonad.hs | 8 ++------ lib/XMonad/Internal/DBus/Control.hs | 10 +++++++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bin/xmonad.hs b/bin/xmonad.hs index 9234c21..834222c 100644 --- a/bin/xmonad.hs +++ b/bin/xmonad.hs @@ -114,8 +114,7 @@ run = do hSetBuffering stdout LineBuffering withDBusX_ $ \db -> do let fs = features $ dbSysClient db - -- startDBusInterfaces db fs - withDBusInterfaces db $ \_ -> do + withDBusInterfaces db (fsDBusExporters fs) $ \_ -> do withXmobar $ \xmobarP -> do withChildDaemons fs $ \ds -> do let ts = ThreadState ds (Just xmobarP) @@ -158,9 +157,6 @@ runXMonad conf = do dirs <- getCreateDirectories launch conf dirs --- startDBusInterfaces :: DBusState -> [Maybe SesClient -> SometimesIO] -> FIO () --- startDBusInterfaces db = mapM_ (\f -> executeSometimes $ f $ dbSesClient db) - getCreateDirectories :: IO Directories getCreateDirectories = do ds <- getDirectories @@ -176,7 +172,7 @@ getCreateDirectories = do data FeatureSet = FeatureSet { fsKeys :: X () -> DBusState -> [KeyGroup FeatureX] - , fsDBusExporters :: [Maybe SesClient -> Sometimes (IO (), IO ())] + , fsDBusExporters :: [Maybe SesClient -> Sometimes (FIO (), FIO ())] , fsPowerMon :: SometimesIO , fsRemovableMon :: Maybe SysClient -> SometimesIO , fsDaemons :: [Sometimes (FIO (Process () () ()))] diff --git a/lib/XMonad/Internal/DBus/Control.hs b/lib/XMonad/Internal/DBus/Control.hs index 4c7791b..ea45fa9 100644 --- a/lib/XMonad/Internal/DBus/Control.hs +++ b/lib/XMonad/Internal/DBus/Control.hs @@ -100,11 +100,15 @@ disconnectDBusX db = do forM_ (dbSesClient db) releaseXMonadName disconnectDBus db -withDBusInterfaces :: DBusState -> ([FIO ()] -> FIO a) -> FIO a -withDBusInterfaces db = bracket up sequence +withDBusInterfaces + :: DBusState + -> [Maybe SesClient -> Sometimes (FIO (), FIO ())] + -> ([FIO ()] -> FIO a) + -> FIO a +withDBusInterfaces db interfaces = bracket up sequence where up = do - pairs <- catMaybes <$> mapM (\f -> evalSometimes $ f $ dbSesClient db) dbusExporters + pairs <- catMaybes <$> mapM (\f -> evalSometimes $ f $ dbSesClient db) interfaces mapM_ fst pairs return $ snd <$> pairs