-- |A clipboard management CLI tool built with Polysemy, Servant and GI.Gtk. module Helic ( -- $intro -- -- * Effects -- ** Agent Agent, AgentTag, Agents, -- ** XClipboard XClipboard, -- ** Gtk Gtk, -- ** GtkMain GtkMain, -- ** GtkClipboard GtkClipboard, -- * Interpreters interpretAgentNet, interpretAgentX, interpretAgentTmux, interpretXClipboardGtk, interpretGtk, interpretGtkMain, handleGtkMain, interpretGtkClipboard, handleGtkClipboard, -- * Data Event, Selection (..), -- * Utilities transformXEvents, subscribeToClipboard, gtkMainLoop, Api, serve, listen, yank, ) where import Prelude hiding (listen) import Helic.Data.Event (Event) import Helic.Data.Selection (Selection (..)) import Helic.Effect.Agent (Agent, AgentTag, Agents) import Helic.Effect.Gtk (Gtk) import Helic.Effect.GtkClipboard (GtkClipboard) import Helic.Effect.GtkMain (GtkMain) import Helic.Effect.XClipboard (XClipboard) import Helic.Gtk (subscribeToClipboard) import Helic.GtkMain (gtkMainLoop) import Helic.Interpreter.AgentNet (interpretAgentNet) import Helic.Interpreter.AgentTmux (interpretAgentTmux) import Helic.Interpreter.AgentX (interpretAgentX, transformXEvents) import Helic.Interpreter.Gtk (interpretGtk) import Helic.Interpreter.GtkClipboard (handleGtkClipboard, interpretGtkClipboard) import Helic.Interpreter.GtkMain (handleGtkMain, interpretGtkMain) import Helic.Interpreter.XClipboard (interpretXClipboardGtk) import Helic.Listen (listen) import Helic.Net.Api (Api, serve) import Helic.Yank (yank) -- $intro -- /Helic/ is primarily a CLI tool that listens for clipboard events and broadcasts them to other hosts and tmux. -- -- The program is built with Polysemy, so its effects and interpreters may be useful for other developers. -- Some utilities for interfacing with GTK are exposed as well.