packages feed

taffybar-5.2.0: src/System/Taffybar/Widget.hs

{- ORMOLU_DISABLE -}
{-# LANGUAGE CPP #-}
{-# LANGUAGE DuplicateRecordFields #-}

-- |
-- Module      : System.Taffybar.Widget
-- Copyright   : (c) Ivan A. Malison
-- License     : BSD3-style (see LICENSE)
--
-- Maintainer  : Ivan A. Malison
-- Stability   : unstable
-- Portability : unportable
--
-- Convenience re-export module for commonly used widgets.
module System.Taffybar.Widget
  ( module System.Taffybar.Widget.Util
  -- * "System.Taffybar.Widget.PulseAudio"
  , module System.Taffybar.Widget.PulseAudio

  -- * "System.Taffybar.Widget.Backlight"
  , module System.Taffybar.Widget.Backlight

  -- * "System.Taffybar.Widget.Battery"
  , module System.Taffybar.Widget.Battery

  -- * "System.Taffybar.Widget.BatteryDonut"
  , module System.Taffybar.Widget.BatteryDonut

  -- * "System.Taffybar.Widget.BatteryTextIcon"
  , module System.Taffybar.Widget.BatteryTextIcon

  -- * "System.Taffybar.Widget.CPUMonitor"
  , module System.Taffybar.Widget.CPUMonitor

  -- * "System.Taffybar.Widget.CommandRunner"
  , module System.Taffybar.Widget.CommandRunner

#ifdef WIDGET_CRYPTO
  -- * "System.Taffybar.Widget.Crypto"
  , module System.Taffybar.Widget.Crypto
#endif

  -- * "System.Taffybar.Widget.DiskIOMonitor"
  , module System.Taffybar.Widget.DiskIOMonitor

  -- * "System.Taffybar.Widget.DiskUsage"
  , module System.Taffybar.Widget.DiskUsage

  -- * "System.Taffybar.Widget.FSMonitor"
  , module System.Taffybar.Widget.FSMonitor

  -- * "System.Taffybar.Widget.FreedesktopNotifications"
  , module System.Taffybar.Widget.FreedesktopNotifications

  -- * "System.Taffybar.Widget.ImageCommandButton"
  , module System.Taffybar.Widget.ImageCommandButton

  -- * "System.Taffybar.Widget.Inhibitor"
  , module System.Taffybar.Widget.Inhibitor

  -- * "System.Taffybar.Widget.Layout"
  , module System.Taffybar.Widget.Layout

  -- * "System.Taffybar.Widget.MPRIS2"
  , module System.Taffybar.Widget.MPRIS2

  -- * "System.Taffybar.Widget.NetworkGraph"
  , module System.Taffybar.Widget.NetworkGraph

  -- * "System.Taffybar.Widget.NetworkManager"
  , module System.Taffybar.Widget.NetworkManager

  -- * "System.Taffybar.Widget.PowerProfiles"
  , module System.Taffybar.Widget.PowerProfiles

  -- * "System.Taffybar.Widget.SNITray"
  , module System.Taffybar.Widget.SNITray
  , module System.Taffybar.Widget.SNITray.PrioritizedCollapsible

  -- * "System.Taffybar.Widget.SimpleClock"
  , module System.Taffybar.Widget.SimpleClock

  -- * "System.Taffybar.Widget.SimpleCommandButton"
  , module System.Taffybar.Widget.SimpleCommandButton

  -- * "System.Taffybar.Widget.WakeupDebug"
  , module System.Taffybar.Widget.WakeupDebug

  -- * "System.Taffybar.Widget.Text.CPUMonitor"
  , module System.Taffybar.Widget.Text.CPUMonitor

  -- * "System.Taffybar.Widget.Text.MemoryMonitor"
  , module System.Taffybar.Widget.Text.MemoryMonitor

  -- * "System.Taffybar.Widget.Text.NetworkMonitor"
  , module System.Taffybar.Widget.Text.NetworkMonitor

  -- * "System.Taffybar.Widget.Weather"
  , module System.Taffybar.Widget.Weather

  -- * "System.Taffybar.Widget.Windows"
  , module System.Taffybar.Widget.Windows

  -- * "System.Taffybar.Widget.ChannelWorkspaces"
  , ChannelWorkspacesConfig
  , defaultChannelWorkspacesConfig
  , defaultChannelEWMHWorkspacesConfig
  , channelWorkspacesNew

  -- * "System.Taffybar.Widget.HyprlandWorkspaces"
  , HyprlandWorkspacesConfig(..)
  , defaultHyprlandWorkspacesConfig
  , hyprlandWorkspacesNew
  , HyprlandWorkspace(..)
  , HyprlandWindow(..)
  , HyprlandWindowIconPixbufGetter
  , HyprlandWorkspaceWidgetController(..)
  , HyprlandWWC(..)
  , HyprlandControllerConstructor
  , HyprlandParentControllerConstructor
  , hyprlandBuildLabelController
  , hyprlandBuildIconController
  , hyprlandBuildContentsController
  , hyprlandBuildLabelOverlayController
  , hyprlandBuildCustomOverlayController
  , hyprlandBuildButtonController
  , defaultHyprlandWidgetBuilder
  , defaultHyprlandGetWindowIconPixbuf
  , getHyprlandWorkspaces
  , hyprlandSwitchToWorkspace
  , getActiveWindowAddress
  , runHyprctlJson
  , HyprlandClient(..)
  , windowFromClient

  -- * "System.Taffybar.Widget.Workspaces"
  , module System.Taffybar.Widget.Workspaces

  -- * "System.Taffybar.Widget.XDGMenu.MenuWidget"
  , module System.Taffybar.Widget.XDGMenu.MenuWidget
  ) where

import qualified GI.Gtk as Gtk
import System.Taffybar.Context (TaffyIO)
import System.Taffybar.Widget.Battery
import System.Taffybar.Widget.BatteryDonut
import System.Taffybar.Widget.BatteryTextIcon
import System.Taffybar.Widget.CPUMonitor
import System.Taffybar.Widget.CommandRunner
#ifdef WIDGET_CRYPTO
import System.Taffybar.Widget.Crypto
#endif
import System.Taffybar.Widget.DiskIOMonitor
import System.Taffybar.Widget.DiskUsage
import System.Taffybar.Widget.FSMonitor
import System.Taffybar.Widget.FreedesktopNotifications
import System.Taffybar.Widget.ImageCommandButton
import System.Taffybar.Widget.Inhibitor
import System.Taffybar.Widget.Layout
import System.Taffybar.Widget.MPRIS2
import System.Taffybar.Widget.NetworkGraph
import System.Taffybar.Widget.NetworkManager
import System.Taffybar.Widget.PowerProfiles
import System.Taffybar.Widget.SNITray
import System.Taffybar.Widget.SNITray.PrioritizedCollapsible
import System.Taffybar.Widget.SimpleClock
import System.Taffybar.Widget.SimpleCommandButton
import System.Taffybar.Widget.WakeupDebug
import System.Taffybar.Widget.Text.CPUMonitor
import System.Taffybar.Widget.Text.MemoryMonitor
import System.Taffybar.Widget.Text.NetworkMonitor
import System.Taffybar.Widget.Util
import System.Taffybar.Widget.PulseAudio
import System.Taffybar.Widget.Backlight
import System.Taffybar.Widget.Weather
import System.Taffybar.Widget.Windows
import System.Taffybar.Widget.Workspaces.Hyprland hiding
  ( HyprlandWorkspacesConfig(..)
  , defaultHyprlandWorkspacesConfig
  , hyprlandBuildButtonController
  , hyprlandBuildContentsController
  , hyprlandBuildCustomOverlayController
  , hyprlandBuildIconController
  , hyprlandBuildLabelController
  , hyprlandBuildLabelOverlayController
  , hyprlandWorkspacesNew
  , defaultHyprlandWidgetBuilder
  )
import System.Taffybar.Widget.Workspaces.Hyprland.Compat
  ( HyprlandWorkspacesConfig(..)
  , defaultHyprlandWorkspacesConfig
  , hyprlandWorkspacesNew
  , hyprlandBuildLabelController
  , hyprlandBuildIconController
  , hyprlandBuildContentsController
  , hyprlandBuildLabelOverlayController
  , hyprlandBuildCustomOverlayController
  , hyprlandBuildButtonController
  , defaultHyprlandWidgetBuilder
  )
import System.Taffybar.Widget.Workspaces
import System.Taffybar.Widget.XDGMenu.MenuWidget

type ChannelWorkspacesConfig = WorkspacesConfig

defaultChannelWorkspacesConfig :: ChannelWorkspacesConfig
defaultChannelWorkspacesConfig = defaultWorkspacesConfig

defaultChannelEWMHWorkspacesConfig :: ChannelWorkspacesConfig
defaultChannelEWMHWorkspacesConfig = defaultEWMHWorkspacesConfig

channelWorkspacesNew :: ChannelWorkspacesConfig -> TaffyIO Gtk.Widget
channelWorkspacesNew = workspacesNew