{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS -Wall #-}
module Graphics.Aosd.XUtil where
import Graphics.X11.Xlib.Display
import Control.Exception

data ScreenSize = ScreenSize { screenWidth, screenHeight :: Int }
    deriving(Show)


getScreenSize :: IO ScreenSize
getScreenSize = do
        display <- openDisplay ""

        let go = do
                -- Work around unsafe FFI declarations in the X11 bindings...
                screen <- evaluate $ defaultScreen display
                screenWidth <- evaluate . fromIntegral $ displayWidth display screen
                screenHeight <- evaluate . fromIntegral $ displayHeight display screen

                return ScreenSize{..}

        go `finally` closeDisplay display