patat-0.10.0.0: lib/Patat/Size.hs
--------------------------------------------------------------------------------
module Patat.Size
( Size (..)
, getTerminalSize
) where
--------------------------------------------------------------------------------
import Data.Maybe (fromMaybe)
import qualified System.Console.Terminal.Size as Terminal
--------------------------------------------------------------------------------
data Size = Size {sRows :: Int, sCols :: Int} deriving (Show)
--------------------------------------------------------------------------------
getTerminalSize :: IO Size
getTerminalSize = do
mbWindow <- Terminal.size
let rows = fromMaybe 24 $ Terminal.height <$> mbWindow
cols = fromMaybe 72 $ Terminal.width <$> mbWindow
pure $ Size {sRows = rows, sCols = cols}