{-# LANGUAGE TemplateHaskell #-} module Pager.Types where import Data.Text (Text) import Scanner (Scan) data Action = None | FocusWorkspace Text data Command = ViewWorkspace | ShiftWindowToWorkspace Int | ShiftWindowToAndViewWorkspace Int data Event = EResize Int Int | EScan Scan | EShutdown data Geometry = Geometry { geometry_x :: Int , geometry_y :: Int , geometry_width :: Int , geometry_height :: Int } data Window = Window { window_id :: Int , window_title :: Text , window_geometry :: Geometry , window_focused :: Bool , window_urgent :: Bool } data Workspace = Workspace { workspace_geometry :: Geometry , workspace_focused :: Bool , workspace_name :: Text , workspace_windows :: [Window] -- sorted by z-order, earlier windows overlap later ones }