diff --git a/app/rofi.hs b/app/rofi.hs index d1c2bcc..bf86a2a 100644 --- a/app/rofi.hs +++ b/app/rofi.hs @@ -34,14 +34,18 @@ import UnliftIO.Environment main :: IO () main = runSimpleApp $ do + r <- getMonitorName args <- getArgs - pre <- maybe [] (\n -> ["-m", T.unpack n]) <$> getMonitorName - exitWith =<< proc "/usr/bin/rofi" (pre ++ args) runProcess + let allArgs = maybe [] (\n -> ["-m", T.unpack n] ++ args) r + c <- proc "/usr/bin/rofi" allArgs runProcess + exitWith c data Coord = Coord Int Int deriving (Eq, Show) +-- TODO bracket this getMonitorName :: MonadIO m => m (Maybe T.Text) -getMonitorName = liftIO $ withOpenDisplay $ \dpy -> do +getMonitorName = liftIO $ do + dpy <- openDisplay "" root <- rootWindow dpy $ defaultScreen dpy index <- getCurrentDesktopIndex dpy root viewports <- getDesktopViewports dpy root @@ -93,10 +97,3 @@ getAtom32 dpy root str = do a <- internAtom dpy (T.unpack str) False p <- getWindowProperty32 dpy a root return $ maybe [] (fmap fromIntegral) p - -withOpenDisplay :: MonadUnliftIO m => (Display -> m a) -> m a -withOpenDisplay = bracket (liftIO $ openDisplay "") cleanup - where - cleanup dpy = liftIO $ do - flush dpy - closeDisplay dpy