-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Vte bindings
--   
--   Bindings for Vte, autogenerated by haskell-gi.
@package gi-vte
@version 2.91.35


-- | Build time configuration used during code generation.
module GI.Vte.Config

-- | Overrides used when generating these bindings.
overrides :: Text

-- | Modules in this package
modules :: [Text]


module GI.Vte.Constants

-- | <i>No description available in the introspection data.</i>
pattern TEST_FLAGS_NONE :: Word64

-- | <i>No description available in the introspection data.</i>
pattern TEST_FLAGS_ALL :: Word64

-- | A <a>PropertyTypeString</a> termprop that stores the xterm window
--   title as set by OSC 0 and OSC 2. Use this with
--   <a>terminalGetTermpropString</a> instead of using
--   <a>terminalGetWindowTitle</a>.
--   
--   Note that this termprop is not settable via the termprop OSC.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_XTERM_TITLE :: Text

-- | A <a>PropertyTypeValueless</a> termprop that signals that the shell is
--   preparing to execute the command entered at the prompt.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_SHELL_PREEXEC :: Text

-- | A <a>PropertyTypeValueless</a> termprop that signals that the shell is
--   going to prompt.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_SHELL_PRECMD :: Text

-- | An ephemeral <a>PropertyTypeUint</a> termprop that signals that the
--   shell has executed the commands entered at the prompt and these
--   commands have returned. The termprop value is the exit code.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_SHELL_POSTEXEC :: Text

-- | A <a>PropertyTypeUint</a> termprop that stores the progress of the
--   running command as a value between 0 and 100.
--   
--   Note that before version 0.82, this termprop could not be set by the
--   termprop OSC, but instead only by OSC 9 ; 4 (ConEmu progress).
--   
--   <i>Since: 0.80</i>
pattern TERMPROP_PROGRESS_VALUE :: Text

-- | A <a>PropertyTypeInt</a> termprop that stores a hint how to interpret
--   the <a>TERMPROP_PROGRESS_VALUE</a> termprop value. If set, this
--   termprop's value will be from the <a>ProgressHint</a> enumeration. An
--   unset termprop should be treated as if it had value
--   <a>ProgressHintActive</a> if the <a>TERMPROP_PROGRESS_VALUE</a>
--   termprop has a value
--   
--   Note that this termprop never will have the value
--   <a>ProgressHintInactive</a>.
--   
--   The value of this termprop should be ignored unless the
--   <a>TERMPROP_PROGRESS_VALUE</a> termprop has a value.
--   
--   Note that before version 0.82, this termprop could not be set by the
--   termprop OSC, but instead only by OSC 9 ; 4 (ConEmu progress).
--   
--   <i>Since: 0.80</i>
pattern TERMPROP_PROGRESS_HINT :: Text

-- | The string prefix that any termprop's name must start with to be
--   installed by <a>installTermprop</a>.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_NAME_PREFIX :: Text

-- | A <a>PropertyTypeImage</a> termprop to specify an image for use as a
--   favicon.
--   
--   Applications should prefer to use this termprop, if set, over the
--   <a>TERMPROP_ICON_COLOR</a> color.
--   
--   Note that in this vte version, this termprop is always unset.
--   
--   <i>Since: 0.80</i>
pattern TERMPROP_ICON_IMAGE :: Text

-- | <i>No description available in the introspection data.</i>
pattern TERMPROP_ICON_COLOR :: Text

-- | A <a>PropertyTypeUri</a> termprop that stores the current file URI as
--   set by OSC 6. Use this with <a>terminalRefTermpropUri</a> instead of
--   using <a>terminalGetCurrentFileUri</a>.
--   
--   Note that this termprop is not settable via the termprop OSC.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_CURRENT_FILE_URI :: Text

-- | A <a>PropertyTypeUri</a> termprop that stores the current directory
--   URI as set by OSC 7. Use this with <a>terminalRefTermpropUri</a>
--   instead of using <a>terminalGetCurrentDirectoryUri</a>.
--   
--   Note that this termprop is not settable via the termprop OSC.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_CURRENT_DIRECTORY_URI :: Text

-- | A <a>PropertyTypeUint</a> termprop that stores the user ID of the
--   container.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_CONTAINER_UID :: Text

-- | A <a>PropertyTypeString</a> termprop that stores the runtime of the
--   container.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_CONTAINER_RUNTIME :: Text

-- | A <a>PropertyTypeString</a> termprop that stores the name of the
--   container.
--   
--   <i>Since: 0.78</i>
pattern TERMPROP_CONTAINER_NAME :: Text

-- | Use this as a spawn flag (together with flags from <a>SpawnFlags</a>)
--   in <a>ptySpawnAsync</a>.
--   
--   Requires <a>ptySpawnAsync</a> etc. to move the newly created child
--   process to a systemd user scope; if that fails, the whole spawn fails.
--   
--   This is supported on Linux only.
--   
--   <i>Since: 0.60</i>
pattern SPAWN_REQUIRE_SYSTEMD_SCOPE :: Int32

-- | Use this as a spawn flag (together with flags from <a>SpawnFlags</a>)
--   in <a>ptySpawnAsync</a>.
--   
--   Prevents <a>ptySpawnAsync</a> etc. from moving the newly created child
--   process to a systemd user scope.
--   
--   <i>Since: 0.60</i>
pattern SPAWN_NO_SYSTEMD_SCOPE :: Int32

-- | Use this as a spawn flag (together with flags from <a>SpawnFlags</a>)
--   in <a>ptySpawnAsync</a>.
--   
--   Normally, the spawned process inherits the environment from the parent
--   process; when this flag is used, only the environment variables passed
--   to <a>ptySpawnAsync</a> etc. are passed to the child process.
pattern SPAWN_NO_PARENT_ENVV :: Int32

-- | <i>No description available in the introspection data.</i>
pattern REGEX_FLAGS_DEFAULT :: Int32

-- | The minor version number of the VTE library (e.g. in version 3.1.4
--   this is 1).
pattern MINOR_VERSION :: Int32

-- | The micro version number of the VTE library (e.g. in version 3.1.4
--   this is 4).
pattern MICRO_VERSION :: Int32

-- | The major version number of the VTE library (e.g. in version 3.1.4
--   this is 3).
pattern MAJOR_VERSION :: Int32


module GI.Vte.Enums

-- | An enumeration type that can be used to specify how the terminal uses
--   extra allocated space.
--   
--   <i>Since: 0.76</i>
data Align

-- | align to left/top
AlignStart :: Align

-- | align to centre
AlignCenter :: Align

-- | align to right/bottom
AlignEnd :: Align

-- | Catch-all for unknown values
AnotherAlign :: Int -> Align

-- | An enumerated type which can be used to indicate the cursor blink mode
--   for the terminal.
data CursorBlinkMode

-- | Follow GTK+ settings for cursor blinking.
CursorBlinkModeSystem :: CursorBlinkMode

-- | Cursor blinks.
CursorBlinkModeOn :: CursorBlinkMode

-- | Cursor does not blink.
CursorBlinkModeOff :: CursorBlinkMode

-- | Catch-all for unknown values
AnotherCursorBlinkMode :: Int -> CursorBlinkMode

-- | An enumerated type which can be used to indicate what should the
--   terminal draw at the cursor position.
data CursorShape

-- | Draw a block cursor. This is the default.
CursorShapeBlock :: CursorShape

-- | Draw a vertical bar on the left side of character. This is similar to
--   the default cursor for other GTK+ widgets.
CursorShapeIbeam :: CursorShape

-- | Draw a horizontal bar below the character.
CursorShapeUnderline :: CursorShape

-- | Catch-all for unknown values
AnotherCursorShape :: Int -> CursorShape

-- | An enumerated type which can be used to indicate which string the
--   terminal should send to an application when the user presses the
--   Delete or Backspace keys.
data EraseBinding

-- | For backspace, attempt to determine the right value from the
--   terminal's IO settings. For delete, use the control sequence.
EraseBindingAuto :: EraseBinding

-- | Send an ASCII backspace character (0x08).
EraseBindingAsciiBackspace :: EraseBinding

-- | Send an ASCII delete character (0x7F).
EraseBindingAsciiDelete :: EraseBinding

-- | Send the "@<i><tt>7</tt></i>" control sequence.
EraseBindingDeleteSequence :: EraseBinding

-- | Send terminal's "erase" setting.
EraseBindingTty :: EraseBinding

-- | Catch-all for unknown values
AnotherEraseBinding :: Int -> EraseBinding

-- | An enumeration type that can be used to specify the format the
--   selection should be copied to the clipboard in.
--   
--   <i>Since: 0.50</i>
data Format

-- | Export as plain text
FormatText :: Format

-- | Export as HTML formatted text
FormatHtml :: Format

-- | Catch-all for unknown values
AnotherFormat :: Int -> Format

-- | An enum describing how to interpret progress state, for the
--   <a>TERMPROP_PROGRESS_HINT</a> termprop.
--   
--   <i>Since: 0.80</i>
data ProgressHint

-- | no progress current
ProgressHintInactive :: ProgressHint

-- | progress is normal
ProgressHintActive :: ProgressHint

-- | progress is aborted by an error
ProgressHintError :: ProgressHint

-- | progress is indeterminate
ProgressHintIndeterminate :: ProgressHint

-- | progress is paused
ProgressHintPaused :: ProgressHint

-- | Catch-all for unknown values
AnotherProgressHint :: Int -> ProgressHint

-- | An enum containing the IDs of the always-installed termprops.
--   
--   <i>Since: 0.78</i>
data PropertyId

-- | the ID of the <a>TERMPROP_CURRENT_DIRECTORY_URI</a> termprop
PropertyIdCurrentDirectoryUri :: PropertyId

-- | the ID of the <a>TERMPROP_CURRENT_FILE_URI</a> termprop
PropertyIdCurrentFileUri :: PropertyId

-- | the ID of the <a>TERMPROP_XTERM_TITLE</a> termprop
PropertyIdXtermTitle :: PropertyId

-- | the ID of the <a>TERMPROP_CONTAINER_NAME</a> termprop
PropertyIdContainerName :: PropertyId

-- | the ID of the <a>TERMPROP_CONTAINER_RUNTIME</a> termprop
PropertyIdContainerRuntime :: PropertyId

-- | the ID of the <a>TERMPROP_CONTAINER_UID</a> termprop
PropertyIdContainerUid :: PropertyId

-- | the ID of the <a>TERMPROP_SHELL_PRECMD</a> termprop
PropertyIdShellPrecmd :: PropertyId

-- | the ID of the <a>TERMPROP_SHELL_PREEXEC</a> termprop
PropertyIdShellPreexec :: PropertyId

-- | the ID of the <a>TERMPROP_SHELL_POSTEXEC</a> termprop
PropertyIdShellPostexec :: PropertyId

-- | the ID of the <a>TERMPROP_PROGRESS_HINT</a> termprop. Since: 0.80
PropertyIdProgressHint :: PropertyId

-- | the ID of the <a>TERMPROP_PROGRESS_VALUE</a> termprop. Since: 0.80
PropertyIdProgressValue :: PropertyId

-- | the ID of the <a>TERMPROP_ICON_COLOR</a> termprop. Since: 0.80
PropertyIdIconColor :: PropertyId

-- | the ID of the <a>TERMPROP_ICON_IMAGE</a> termprop. Since: 0.80
PropertyIdIconImage :: PropertyId

-- | Catch-all for unknown values
AnotherPropertyId :: Int -> PropertyId

-- | An enumeration type describing types of properties.
--   
--   <i>Since: 0.78</i>
data PropertyType

-- | no value, use for signalling
PropertyTypeValueless :: PropertyType

-- | a bool
PropertyTypeBool :: PropertyType

-- | a signed 64-bit integer
PropertyTypeInt :: PropertyType

-- | an unsigned 64-bit integer
PropertyTypeUint :: PropertyType

-- | a finite double-precision floating point number
PropertyTypeDouble :: PropertyType

-- | a color
PropertyTypeRgb :: PropertyType

-- | a color with alpha
PropertyTypeRgba :: PropertyType

-- | a string
PropertyTypeString :: PropertyType

-- | binary data
PropertyTypeData :: PropertyType

-- | a UUID
PropertyTypeUuid :: PropertyType

-- | a URI
PropertyTypeUri :: PropertyType

-- | an image. Since: 0.80
PropertyTypeImage :: PropertyType

-- | Catch-all for unknown values
AnotherPropertyType :: Int -> PropertyType

-- | <i>No description available in the introspection data.</i>
data PtyError

-- | Obsolete. Deprecated: 0.42
PtyErrorPtyHelperFailed :: PtyError

-- | failure when using PTY98 to allocate the PTY
PtyErrorPty98Failed :: PtyError

-- | Catch-all for unknown values
AnotherPtyError :: Int -> PtyError

-- | Catch exceptions of type <a>PtyError</a>. This is a specialized
--   version of <a>catchGErrorJustDomain</a>.
catchPtyError :: IO a -> (PtyError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>PtyError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handlePtyError :: (PtyError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | An enum type for regex errors. In addition to the values listed above,
--   any PCRE2 error values may occur.
--   
--   <i>Since: 0.46</i>
data RegexError

-- | The PCRE2 library was built without Unicode support which is required
--   for VTE
RegexErrorIncompatible :: RegexError

-- | Regexes are not supported because VTE was built without PCRE2 support
RegexErrorNotSupported :: RegexError

-- | Catch-all for unknown values
AnotherRegexError :: Int -> RegexError

-- | Catch exceptions of type <a>RegexError</a>. This is a specialized
--   version of <a>catchGErrorJustDomain</a>.
catchRegexError :: IO a -> (RegexError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>RegexError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handleRegexError :: (RegexError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | An enumerated type which can be used to indicate whether the terminal
--   allows the text contents to be blinked.
--   
--   <i>Since: 0.52</i>
data TextBlinkMode

-- | Do not blink the text.
TextBlinkModeNever :: TextBlinkMode

-- | Allow blinking text only if the terminal is focused.
TextBlinkModeFocused :: TextBlinkMode

-- | Allow blinking text only if the terminal is unfocused.
TextBlinkModeUnfocused :: TextBlinkMode

-- | Allow blinking text. This is the default.
TextBlinkModeAlways :: TextBlinkMode

-- | Catch-all for unknown values
AnotherTextBlinkMode :: Int -> TextBlinkMode

-- | A flag type to determine how terminal contents should be written to an
--   output stream.
data WriteFlags

-- | Write contents as UTF-8 text. This is the default.
WriteFlagsDefault :: WriteFlags

-- | Catch-all for unknown values
AnotherWriteFlags :: Int -> WriteFlags
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.Align
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.CursorBlinkMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.CursorShape
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.EraseBinding
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.Format
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.ProgressHint
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.PropertyId
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.PropertyType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.PtyError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.RegexError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.TextBlinkMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Vte.Enums.WriteFlags
instance GHC.Internal.Enum.Enum GI.Vte.Enums.Align
instance GHC.Internal.Enum.Enum GI.Vte.Enums.CursorBlinkMode
instance GHC.Internal.Enum.Enum GI.Vte.Enums.CursorShape
instance GHC.Internal.Enum.Enum GI.Vte.Enums.EraseBinding
instance GHC.Internal.Enum.Enum GI.Vte.Enums.Format
instance GHC.Internal.Enum.Enum GI.Vte.Enums.ProgressHint
instance GHC.Internal.Enum.Enum GI.Vte.Enums.PropertyId
instance GHC.Internal.Enum.Enum GI.Vte.Enums.PropertyType
instance GHC.Internal.Enum.Enum GI.Vte.Enums.PtyError
instance GHC.Internal.Enum.Enum GI.Vte.Enums.RegexError
instance GHC.Internal.Enum.Enum GI.Vte.Enums.TextBlinkMode
instance GHC.Internal.Enum.Enum GI.Vte.Enums.WriteFlags
instance GHC.Classes.Eq GI.Vte.Enums.Align
instance GHC.Classes.Eq GI.Vte.Enums.CursorBlinkMode
instance GHC.Classes.Eq GI.Vte.Enums.CursorShape
instance GHC.Classes.Eq GI.Vte.Enums.EraseBinding
instance GHC.Classes.Eq GI.Vte.Enums.Format
instance GHC.Classes.Eq GI.Vte.Enums.ProgressHint
instance GHC.Classes.Eq GI.Vte.Enums.PropertyId
instance GHC.Classes.Eq GI.Vte.Enums.PropertyType
instance GHC.Classes.Eq GI.Vte.Enums.PtyError
instance GHC.Classes.Eq GI.Vte.Enums.RegexError
instance GHC.Classes.Eq GI.Vte.Enums.TextBlinkMode
instance GHC.Classes.Eq GI.Vte.Enums.WriteFlags
instance Data.GI.Base.GError.GErrorClass GI.Vte.Enums.PtyError
instance Data.GI.Base.GError.GErrorClass GI.Vte.Enums.RegexError
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.Align
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.CursorBlinkMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.CursorShape
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.EraseBinding
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.Format
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.ProgressHint
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.PropertyId
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.PropertyType
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.PtyError
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.RegexError
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.TextBlinkMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Enums.WriteFlags
instance GHC.Classes.Ord GI.Vte.Enums.Align
instance GHC.Classes.Ord GI.Vte.Enums.CursorBlinkMode
instance GHC.Classes.Ord GI.Vte.Enums.CursorShape
instance GHC.Classes.Ord GI.Vte.Enums.EraseBinding
instance GHC.Classes.Ord GI.Vte.Enums.Format
instance GHC.Classes.Ord GI.Vte.Enums.ProgressHint
instance GHC.Classes.Ord GI.Vte.Enums.PropertyId
instance GHC.Classes.Ord GI.Vte.Enums.PropertyType
instance GHC.Classes.Ord GI.Vte.Enums.PtyError
instance GHC.Classes.Ord GI.Vte.Enums.RegexError
instance GHC.Classes.Ord GI.Vte.Enums.TextBlinkMode
instance GHC.Classes.Ord GI.Vte.Enums.WriteFlags
instance GHC.Internal.Show.Show GI.Vte.Enums.Align
instance GHC.Internal.Show.Show GI.Vte.Enums.CursorBlinkMode
instance GHC.Internal.Show.Show GI.Vte.Enums.CursorShape
instance GHC.Internal.Show.Show GI.Vte.Enums.EraseBinding
instance GHC.Internal.Show.Show GI.Vte.Enums.Format
instance GHC.Internal.Show.Show GI.Vte.Enums.ProgressHint
instance GHC.Internal.Show.Show GI.Vte.Enums.PropertyId
instance GHC.Internal.Show.Show GI.Vte.Enums.PropertyType
instance GHC.Internal.Show.Show GI.Vte.Enums.PtyError
instance GHC.Internal.Show.Show GI.Vte.Enums.RegexError
instance GHC.Internal.Show.Show GI.Vte.Enums.TextBlinkMode
instance GHC.Internal.Show.Show GI.Vte.Enums.WriteFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.Align
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.CursorBlinkMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.CursorShape
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.EraseBinding
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.Format
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.ProgressHint
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.PropertyId
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.PropertyType
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.PtyError
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.RegexError
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.TextBlinkMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Enums.WriteFlags


module GI.Vte.Flags

-- | An enumeration type for features.
--   
--   <i>Since: 0.62</i>
data FeatureFlags

-- | whether VTE was built with bidirectional text support
FeatureFlagsFlagBidi :: FeatureFlags

-- | whether VTE was built with ICU support
FeatureFlagsFlagIcu :: FeatureFlags

-- | whether VTE was built with systemd support
FeatureFlagsFlagSystemd :: FeatureFlags

-- | whether VTE was built with SIXEL support
FeatureFlagsFlagSixel :: FeatureFlags

-- | mask of all feature flags
FeatureFlagsFlagsMask :: FeatureFlags

-- | Catch-all for unknown values
AnotherFeatureFlags :: Int -> FeatureFlags

-- | A flags type.
--   
--   <i>Since: 0.78</i>
data PropertyFlags

-- | no flags, default
PropertyFlagsNone :: PropertyFlags

-- | denotes an ephemeral termprop
PropertyFlagsEphemeral :: PropertyFlags

-- | Catch-all for unknown values
AnotherPropertyFlags :: Int -> PropertyFlags

-- | <i>No description available in the introspection data.</i>
data PtyFlags

-- | Unused. Deprecated: 0.38
PtyFlagsNoLastlog :: PtyFlags

-- | Unused. Deprecated: 0.38
PtyFlagsNoUtmp :: PtyFlags

-- | Unused. Deprecated: 0.38
PtyFlagsNoWtmp :: PtyFlags

-- | Unused. Deprecated: 0.38
PtyFlagsNoHelper :: PtyFlags

-- | Unused. Deprecated: 0.38
PtyFlagsNoFallback :: PtyFlags

-- | Do not start a new session for the child in <a>ptyChildSetup</a>. See
--   man:setsid(2) for more information. Since: 0.58
PtyFlagsNoSession :: PtyFlags

-- | Do not set the PTY as the controlling TTY for the child in
--   <a>ptyChildSetup</a>. See man:tty_ioctl(4) for more information.
--   Since: 0.58
PtyFlagsNoCtty :: PtyFlags

-- | the default flags
PtyFlagsDefault :: PtyFlags

-- | Catch-all for unknown values
AnotherPtyFlags :: Int -> PtyFlags

-- | <i>No description available in the introspection data.</i>
data UuidFormat

-- | <i>No description available in the introspection data.</i>
UuidFormatSimple :: UuidFormat

-- | <i>No description available in the introspection data.</i>
UuidFormatBraced :: UuidFormat

-- | <i>No description available in the introspection data.</i>
UuidFormatUrn :: UuidFormat

-- | <i>No description available in the introspection data.</i>
UuidFormatAny :: UuidFormat

-- | Catch-all for unknown values
AnotherUuidFormat :: Int -> UuidFormat
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Vte.Flags.PropertyFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Vte.Flags.PtyFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Vte.Flags.UuidFormat
instance GHC.Internal.Enum.Enum GI.Vte.Flags.FeatureFlags
instance GHC.Internal.Enum.Enum GI.Vte.Flags.PropertyFlags
instance GHC.Internal.Enum.Enum GI.Vte.Flags.PtyFlags
instance GHC.Internal.Enum.Enum GI.Vte.Flags.UuidFormat
instance GHC.Classes.Eq GI.Vte.Flags.FeatureFlags
instance GHC.Classes.Eq GI.Vte.Flags.PropertyFlags
instance GHC.Classes.Eq GI.Vte.Flags.PtyFlags
instance GHC.Classes.Eq GI.Vte.Flags.UuidFormat
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Flags.PropertyFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Flags.PtyFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Flags.UuidFormat
instance Data.GI.Base.BasicTypes.IsGFlag GI.Vte.Flags.FeatureFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Vte.Flags.PropertyFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Vte.Flags.PtyFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Vte.Flags.UuidFormat
instance GHC.Classes.Ord GI.Vte.Flags.FeatureFlags
instance GHC.Classes.Ord GI.Vte.Flags.PropertyFlags
instance GHC.Classes.Ord GI.Vte.Flags.PtyFlags
instance GHC.Classes.Ord GI.Vte.Flags.UuidFormat
instance GHC.Internal.Show.Show GI.Vte.Flags.FeatureFlags
instance GHC.Internal.Show.Show GI.Vte.Flags.PropertyFlags
instance GHC.Internal.Show.Show GI.Vte.Flags.PtyFlags
instance GHC.Internal.Show.Show GI.Vte.Flags.UuidFormat
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Flags.PropertyFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Flags.PtyFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Flags.UuidFormat


module GI.Vte.Functions

-- | Queries whether the legacy encoding <i><tt>encoding</tt></i> is
--   supported.
--   
--   If ICU support is not available, this function always returns
--   <a>False</a>.
--   
--   Note that UTF-8 is always supported; you can select it by passing
--   <a>Nothing</a> to <a>terminalSetEncoding</a>.
--   
--   <i>Since: 0.60</i>

-- | <i>Deprecated: (Since version 0.60)</i>
getEncodingSupported :: (HasCallStack, MonadIO m) => Text -> m Bool

-- | Gets the list of supported legacy encodings.
--   
--   If ICU support is not available, this returns an empty vector. Note
--   that UTF-8 is always supported; you can select it by passing
--   <a>Nothing</a> to <a>terminalSetEncoding</a>.
--   
--   <i>Since: 0.60</i>

-- | <i>Deprecated: (Since version 0.60)</i>
getEncodings :: (HasCallStack, MonadIO m) => Bool -> m [Text]

-- | Gets features VTE was compiled with.
--   
--   <i>Since: 0.62</i>
getFeatureFlags :: (HasCallStack, MonadIO m) => m [FeatureFlags]

-- | Gets a list of features vte was compiled with.
--   
--   <i>Since: 0.40</i>
getFeatures :: (HasCallStack, MonadIO m) => m Text

-- | Returns the major version of the VTE library at runtime. Contrast this
--   with <a>MAJOR_VERSION</a> which represents the version of the VTE
--   library that the code was compiled with.
--   
--   <i>Since: 0.40</i>
getMajorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the micro version of the VTE library at runtime. Contrast this
--   with <a>MICRO_VERSION</a> which represents the version of the VTE
--   library that the code was compiled with.
--   
--   <i>Since: 0.40</i>
getMicroVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the minor version of the VTE library at runtime. Contrast this
--   with <a>MINOR_VERSION</a> which represents the version of the VTE
--   library that the code was compiled with.
--   
--   <i>Since: 0.40</i>
getMinorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Gets the names of the installed termprops in an unspecified order.
--   
--   <i>Since: 0.78</i>
getTermprops :: (HasCallStack, MonadIO m) => m (Maybe [Text])

-- | Gets the user's shell, or <a>Nothing</a>. In the latter case, the
--   system default (usually "/bin/sh") should be used.
getUserShell :: (HasCallStack, MonadIO m) => m [Char]

-- | Installs a new terminal property that can be set by the application.
--   
--   <i><tt>name</tt></i> must follow the rules for termprop names as laid
--   out above; it must have at least 4 components, the first two of which
--   must be "vte", and "ext". Use the <a>TERMPROP_NAME_PREFIX</a> macro
--   which defines this name prefix.
--   
--   You should use an identifier for your terminal as the first component
--   after the prefix, as a namespace marker.
--   
--   It is a programming error to call this function with a
--   <i><tt>name</tt></i> that does not meet these requirements.
--   
--   It is a programming error to call this function after any
--   <a>Terminal</a> instances have been created.
--   
--   It is a programming error to call this function if the named termprop
--   is already installed with a different type or flags.
--   
--   <i>Since: 0.78</i>
installTermprop :: (HasCallStack, MonadIO m) => Text -> PropertyType -> [PropertyFlags] -> m Int32

-- | Installs a new terminal property <i><tt>name</tt></i> as an alias for
--   the terminal property <i><tt>targetName</tt></i>.
--   
--   <i>Since: 0.78</i>
installTermpropAlias :: (HasCallStack, MonadIO m) => Text -> Text -> m Int32

-- | Gets the property type of the termprop. For properties installed by
--   <a>installTermprop</a>, the name starts with "vte.ext.".
--   
--   For an alias termprop (see <a>installTermpropAlias</a>),
--   <i><tt>resolvedName</tt></i> will be name of the alias' target
--   termprop; otherwise it will be <i><tt>name</tt></i>.
--   
--   <i>Since: 0.78</i>
queryTermprop :: (HasCallStack, MonadIO m) => Text -> m (Bool, Text, Int32, PropertyType, [PropertyFlags])

-- | Like <a>queryTermprop</a> except that it takes the termprop by ID. See
--   that function for more information.
--   
--   For an alias termprop (see <a>installTermpropAlias</a>),
--   <i><tt>resolvedName</tt></i> will be name of the alias' target
--   termprop; otherwise it will be <i><tt>name</tt></i>.
--   
--   <i>Since: 0.78</i>
queryTermpropById :: (HasCallStack, MonadIO m) => Int32 -> m (Bool, Text, PropertyType, [PropertyFlags])


-- | <i>No description available in the introspection data.</i>
module GI.Vte.Objects.Pty

-- | Memory-managed wrapper type.
newtype Pty
Pty :: ManagedPtr Pty -> Pty

-- | Type class for types which can be safely cast to <a>Pty</a>, for
--   instance with <a>toPty</a>.
class (GObject o, IsDescendantOf Pty o) => IsPty o

-- | Cast to <a>Pty</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toPty :: (MonadIO m, IsPty o) => o -> m Pty

-- | <i>No description available in the introspection data.</i>
ptyChildSetup :: (HasCallStack, MonadIO m, IsPty a) => a -> m ()

-- | Since 0.42 this is a no-op.

-- | <i>Deprecated: (Since version 0.42)</i>
ptyClose :: (HasCallStack, MonadIO m, IsPty a) => a -> m ()

-- | <i>No description available in the introspection data.</i>
ptyGetFd :: (HasCallStack, MonadIO m, IsPty a) => a -> m Int32

-- | Reads the pseudo terminal's window size.
--   
--   If getting the window size failed, <i><tt>error</tt></i> will be set
--   to a <a>IOError</a>.
ptyGetSize :: (HasCallStack, MonadIO m, IsPty a) => a -> m (Int32, Int32)

-- | Creates a new <a>Pty</a> for the PTY master <i><tt>fd</tt></i>.
--   
--   No entry will be made in the lastlog, utmp or wtmp system files.
--   
--   Note that the newly created <a>Pty</a> will take ownership of
--   <i><tt>fd</tt></i> and close it on finalize.
ptyNewForeignSync :: (HasCallStack, MonadIO m, IsCancellable a) => Int32 -> Maybe a -> m Pty

-- | Allocates a new pseudo-terminal.
--   
--   You can later use <tt><i>fork()</i></tt> or the <a>spawnAsync</a>
--   family of functions to start a process on the PTY.
--   
--   If using <tt><i>fork()</i></tt>, you MUST call <a>ptyChildSetup</a> in
--   the child.
--   
--   If using <a>spawnAsync</a> and friends, you MUST either use
--   <a>ptyChildSetup</a> directly as the child setup function, or call
--   <a>ptyChildSetup</a> from your own child setup function supplied.
--   
--   When using <a>terminalSpawnSync</a> with a custom child setup
--   function, <a>ptyChildSetup</a> will be called before the supplied
--   function; you must not call it again.
--   
--   Also, you MUST pass the <a>SpawnFlagsDoNotReapChild</a> flag.
--   
--   Note also that <a>SpawnFlagsStdoutToDevNull</a>,
--   <a>SpawnFlagsStderrToDevNull</a>, and
--   <a>SpawnFlagsChildInheritsStdin</a> are not supported, since stdin,
--   stdout and stderr of the child process will always be connected to the
--   PTY.
--   
--   Note that you should set the PTY's size using <a>ptySetSize</a> before
--   spawning the child process, so that the child process has the correct
--   size from the start instead of starting with a default size and then
--   shortly afterwards receiving a &lt;literal&gt;SIGWINCH&lt;/literal&gt;
--   signal. You should prefer using <a>terminalPtyNewSync</a> which does
--   this automatically.
ptyNewSync :: (HasCallStack, MonadIO m, IsCancellable a) => [PtyFlags] -> Maybe a -> m Pty

-- | Attempts to resize the pseudo terminal's window size. If successful,
--   the OS kernel will send &lt;literal&gt;SIGWINCH&lt;/literal&gt; to the
--   child process group.
--   
--   If setting the window size failed, <i><tt>error</tt></i> will be set
--   to a <a>IOError</a>.
ptySetSize :: (HasCallStack, MonadIO m, IsPty a) => a -> Int32 -> Int32 -> m ()

-- | Tells the kernel whether the terminal is UTF-8 or not, in case it can
--   make use of the info. Linux 2.6.5 or so defines IUTF8 to make the line
--   discipline do multibyte backspace correctly.
ptySetUtf8 :: (HasCallStack, MonadIO m, IsPty a) => a -> Bool -> m ()

-- | Like <a>ptySpawnWithFdsAsync</a>, except that this function does not
--   allow passing file descriptors to the child process. See
--   <a>ptySpawnWithFdsAsync</a> for more information.
--   
--   <i>Since: 0.48</i>
ptySpawnAsync :: (HasCallStack, MonadIO m, IsPty a, IsCancellable b) => a -> Maybe Text -> [[Char]] -> Maybe [[Char]] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.48</i>
ptySpawnFinish :: (HasCallStack, MonadIO m, IsPty a, IsAsyncResult b) => a -> b -> m Int32

-- | Starts the specified command under the pseudo-terminal
--   <i><tt>pty</tt></i>. The <i><tt>argv</tt></i> and <i><tt>envv</tt></i>
--   lists should be <a>Nothing</a>-terminated. The "TERM" environment
--   variable is automatically set to a default value, but can be
--   overridden from <i><tt>envv</tt></i>. <i><tt>ptyFlags</tt></i>
--   controls logging the session to the specified system log files.
--   
--   Note also that <a>SpawnFlagsStdoutToDevNull</a>,
--   <a>SpawnFlagsStderrToDevNull</a>, and
--   <a>SpawnFlagsChildInheritsStdin</a> are not supported in
--   <i><tt>spawnFlags</tt></i>, since stdin, stdout and stderr of the
--   child process will always be connected to the PTY. Also
--   <a>SpawnFlagsLeaveDescriptorsOpen</a> is not supported; and
--   <a>SpawnFlagsDoNotReapChild</a> will always be added to
--   <i><tt>spawnFlags</tt></i>.
--   
--   If <i><tt>fds</tt></i> is not <a>Nothing</a>, the child process will
--   map the file descriptors from <i><tt>fds</tt></i> according to
--   <i><tt>mapFds</tt></i>; <i><tt>nMapFds</tt></i> must be less or equal
--   to <i><tt>nFds</tt></i>. This function will take ownership of the file
--   descriptors in <i><tt>fds</tt></i>; you must not use or close them
--   after this call. All file descriptors in <i><tt>fds</tt></i> must have
--   the FD_CLOEXEC flag set on them; it will be unset in the child process
--   before calling man:execve(2). Note also that no file descriptor may be
--   mapped to stdin, stdout, or stderr (file descriptors 0, 1, or 2),
--   since these will be assigned to the PTY. All open file descriptors
--   apart from those mapped as above will be closed when
--   <tt><i>execve()</i></tt> is called.
--   
--   Beginning with 0.60, and on linux only, and unless
--   <a>SPAWN_NO_SYSTEMD_SCOPE</a> is passed in <i><tt>spawnFlags</tt></i>,
--   the newly created child process will be moved to its own systemd user
--   scope; and if <a>SPAWN_REQUIRE_SYSTEMD_SCOPE</a> is passed, and
--   creation of the systemd user scope fails, the whole spawn will fail.
--   You can override the options used for the systemd user scope by
--   providing a systemd override file for 'vte-spawn-.scope' unit. See
--   man:systemd.unit(5) for further information.
--   
--   See <tt><i>vte_pty_new()</i></tt>, and <a>terminalWatchChild</a> for
--   more information.
--   
--   <i>Since: 0.62</i>
ptySpawnWithFdsAsync :: (HasCallStack, MonadIO m, IsPty a, IsCancellable b) => a -> Maybe Text -> [[Char]] -> Maybe [[Char]] -> Maybe [Int32] -> Maybe [Int32] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>fd</tt>” property. This is rarely needed directly, but it is used
--   by <a>new</a>.
constructPtyFd :: (IsPty o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>fd</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> pty #fd
--   </pre>
getPtyFd :: (MonadIO m, IsPty o) => o -> m Int32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>flags</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructPtyFlags :: (IsPty o, MonadIO m) => [PtyFlags] -> m (GValueConstruct o)

-- | Get the value of the “<tt>flags</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> pty #flags
--   </pre>
getPtyFlags :: (MonadIO m, IsPty o) => o -> m [PtyFlags]
instance GHC.Classes.Eq GI.Vte.Objects.Pty.Pty
instance Data.GI.Base.BasicTypes.GObject GI.Vte.Objects.Pty.Pty
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Objects.Pty.Pty
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Vte.Objects.Pty.Pty)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Vte.Objects.Pty.Pty o) => GI.Vte.Objects.Pty.IsPty o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Objects.Pty.Pty
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Objects.Pty.Pty


-- | <i>No description available in the introspection data.</i>
module GI.Vte.Structs.CharAttributes

-- | Memory-managed wrapper type.
newtype CharAttributes
CharAttributes :: ManagedPtr CharAttributes -> CharAttributes

-- | Construct a <a>CharAttributes</a> struct initialized to zero.
newZeroCharAttributes :: MonadIO m => m CharAttributes
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Vte.Structs.CharAttributes.CharAttributes
instance Data.GI.Base.BasicTypes.CallocPtr GI.Vte.Structs.CharAttributes.CharAttributes
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Vte.Structs.CharAttributes.CharAttributes tag
instance GHC.Classes.Eq GI.Vte.Structs.CharAttributes.CharAttributes
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Structs.CharAttributes.CharAttributes


-- | Provides context information for a context menu event.
--   
--   <i>Since: 0.76</i>
module GI.Vte.Structs.EventContext

-- | Memory-managed wrapper type.
newtype EventContext
EventContext :: ManagedPtr EventContext -> EventContext

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
eventContextGetEvent :: (HasCallStack, MonadIO m) => EventContext -> m Event
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Vte.Structs.EventContext.EventContext
instance GHC.Classes.Eq GI.Vte.Structs.EventContext.EventContext
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Structs.EventContext.EventContext


-- | <i>No description available in the introspection data.</i>
module GI.Vte.Structs.Regex

-- | Memory-managed wrapper type.
newtype Regex
Regex :: ManagedPtr Regex -> Regex

-- | If the platform supports JITing, JIT compiles <i><tt>regex</tt></i>.
regexJit :: (HasCallStack, MonadIO m) => Regex -> Word32 -> m ()

-- | Compiles <i><tt>pattern</tt></i> into a regex for use as a match regex
--   with <a>terminalMatchAddRegex</a> or
--   <tt><i>vte_terminal_event_check_regex_simple()</i></tt>.
--   
--   See man:pcre2pattern(3) for information about the supported regex
--   language, and man:pcre2api(3) for information about the supported
--   <i><tt>flags</tt></i>.
--   
--   The regex will be compiled using
--   &lt;literal&gt;PCRE2_UTF&lt;/literal&gt; and possibly other flags, in
--   addition to the flags supplied in <i><tt>flags</tt></i>.
regexNewForMatch :: (HasCallStack, MonadIO m) => Text -> Int64 -> Word32 -> m Regex

-- | Compiles <i><tt>pattern</tt></i> into a regex for use as a match regex
--   with <a>terminalMatchAddRegex</a> or
--   <tt><i>vte_terminal_event_check_regex_simple()</i></tt>.
--   
--   See man:pcre2pattern(3) for information about the supported regex
--   language, and man:pcre2api(3) for information about the supported
--   <i><tt>flags</tt></i> and <i><tt>extraFlags</tt></i>.
--   
--   The regex will be compiled using
--   &lt;literal&gt;PCRE2_UTF&lt;/literal&gt; and possibly other flags, in
--   addition to the flags supplied in <i><tt>flags</tt></i>.
--   
--   If regex compilation fails, <i><tt>error</tt></i> will be set and
--   <i><tt>errorOffset</tt></i> point to error as an offset into
--   <i><tt>pattern</tt></i>.
--   
--   <i>Since: 0.76</i>
regexNewForMatchFull :: (HasCallStack, MonadIO m) => Text -> Int64 -> Word32 -> Word32 -> m (Regex, CSize)

-- | Compiles <i><tt>pattern</tt></i> into a regex for use as a search
--   regex with <a>terminalSearchSetRegex</a>.
--   
--   See man:pcre2pattern(3) for information about the supported regex
--   language, and man:pcre2api(3) for information about the supported
--   <i><tt>flags</tt></i>.
--   
--   The regex will be compiled using
--   &lt;literal&gt;PCRE2_UTF&lt;/literal&gt; and possibly other flags, in
--   addition to the flags supplied in <i><tt>flags</tt></i>.
regexNewForSearch :: (HasCallStack, MonadIO m) => Text -> Int64 -> Word32 -> m Regex

-- | Compiles <i><tt>pattern</tt></i> into a regex for use as a search
--   regex with <a>terminalSearchSetRegex</a>.
--   
--   See man:pcre2pattern(3) for information about the supported regex
--   language, and man:pcre2api(3) for information about the supported
--   <i><tt>flags</tt></i> and <i><tt>extraFlags</tt></i>.
--   
--   The regex will be compiled using
--   &lt;literal&gt;PCRE2_UTF&lt;/literal&gt; and possibly other flags, in
--   addition to the flags supplied in <i><tt>flags</tt></i>.
--   
--   If regex compilation fails, <i><tt>error</tt></i> will be set and
--   <i><tt>errorOffset</tt></i> point to error as an offset into
--   <i><tt>pattern</tt></i>.
--   
--   <i>Since: 0.76</i>
regexNewForSearchFull :: (HasCallStack, MonadIO m) => Text -> Int64 -> Word32 -> Word32 -> m (Regex, CSize)

-- | Increases the reference count of <i><tt>regex</tt></i> by one.
regexRef :: (HasCallStack, MonadIO m) => Regex -> m Regex

-- | See man:pcre2api(3) and man:pcre2_substitute(3) for more information.
--   
--   <i>Since: 0.56</i>
regexSubstitute :: (HasCallStack, MonadIO m) => Regex -> Text -> Text -> Word32 -> m Text

-- | Decreases the reference count of <i><tt>regex</tt></i> by one, and
--   frees <i><tt>regex</tt></i> if the refcount reaches zero.
regexUnref :: (HasCallStack, MonadIO m) => Regex -> m Regex
instance GHC.Classes.Eq GI.Vte.Structs.Regex.Regex
instance Data.GI.Base.BasicTypes.GBoxed GI.Vte.Structs.Regex.Regex
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Structs.Regex.Regex
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Vte.Structs.Regex.Regex)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Structs.Regex.Regex
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Structs.Regex.Regex


-- | An object representing an UUID.
--   
--   <i>Since: 0.78</i>
module GI.Vte.Structs.Uuid

-- | Memory-managed wrapper type.
newtype Uuid
Uuid :: ManagedPtr Uuid -> Uuid

-- | Creates a copy of <i><tt>uuid</tt></i>.
--   
--   <i>Since: 0.78</i>
uuidDup :: (HasCallStack, MonadIO m) => Uuid -> m Uuid

-- | Compares <i><tt>uuid</tt></i> and <i><tt>other</tt></i> for equality.
--   
--   <i>Since: 0.78</i>
uuidEqual :: (HasCallStack, MonadIO m) => Uuid -> Uuid -> m Bool

-- | Frees <i><tt>uuid</tt></i>.
--   
--   <i>Since: 0.78</i>
uuidFree :: (HasCallStack, MonadIO m) => Uuid -> m ()

-- | Frees <i><tt>uuid</tt></i> and returns its string representation, see
--   <a>uuidToString</a> for more information.
--   
--   <i>Since: 0.78</i>
uuidFreeToString :: (HasCallStack, MonadIO m) => Uuid -> [UuidFormat] -> CSize -> m Text

-- | Creates a new UUID from its string representation <i><tt>str</tt></i>.
--   
--   <i>Since: 0.78</i>
uuidNewFromString :: (HasCallStack, MonadIO m) => Text -> Int64 -> [UuidFormat] -> m (Maybe Uuid)

-- | Creates a new random UUID.
--   
--   <i>Since: 0.78</i>
uuidNewV4 :: (HasCallStack, MonadIO m) => m Uuid

-- | Creates a new UUID for <i><tt>ns</tt></i> and <i><tt>str</tt></i>.
--   
--   <i>Since: 0.78</i>
uuidNewV5 :: (HasCallStack, MonadIO m) => Maybe Uuid -> Text -> Int64 -> m Uuid

-- | Returns the string representation of <i><tt>uuid</tt></i>.
--   
--   <i>Since: 0.78</i>
uuidToString :: (HasCallStack, MonadIO m) => Uuid -> [UuidFormat] -> m (Text, CSize)

-- | Checks whether <i><tt>str</tt></i> is a valid string representation of
--   an UUID.
--   
--   <i>Since: 0.78</i>
uuidValidateString :: (HasCallStack, MonadIO m) => Text -> Int64 -> [UuidFormat] -> m Bool
instance GHC.Classes.Eq GI.Vte.Structs.Uuid.Uuid
instance Data.GI.Base.BasicTypes.GBoxed GI.Vte.Structs.Uuid.Uuid
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Structs.Uuid.Uuid
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Vte.Structs.Uuid.Uuid)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Structs.Uuid.Uuid
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Structs.Uuid.Uuid


module GI.Vte.Structs


module GI.Vte.Callbacks

-- | Type for the callback on the (unwrapped) C side.
type C_SelectionFunc = Ptr Terminal -> CLong -> CLong -> Ptr () -> IO CInt

-- | Specifies the type of a selection function used to check whether a
--   cell has to be selected or not.

-- | <i>Deprecated: (Since version 0.76)</i>
type SelectionFunc = Terminal -> CLong -> CLong -> IO Bool

-- | Specifies the type of a selection function used to check whether a
--   cell has to be selected or not.
type SelectionFunc_WithClosures = Terminal -> CLong -> CLong -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_SelectionFunc :: SelectionFunc -> SelectionFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_SelectionFunc :: (HasCallStack, MonadIO m, IsTerminal a) => FunPtr C_SelectionFunc -> a -> CLong -> CLong -> Ptr () -> m Bool

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_SelectionFunc :: MonadIO m => SelectionFunc -> m (GClosure C_SelectionFunc)

-- | Generate a function pointer callable from C code, from a
--   <a>C_SelectionFunc</a>.
mk_SelectionFunc :: C_SelectionFunc -> IO (FunPtr C_SelectionFunc)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>SelectionFunc</a></tt>.
noSelectionFunc :: Maybe SelectionFunc

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>SelectionFunc_WithClosures</a></tt>.
noSelectionFunc_WithClosures :: Maybe SelectionFunc_WithClosures

-- | Wrap a <a>SelectionFunc</a> into a <a>C_SelectionFunc</a>.
wrap_SelectionFunc :: Maybe (Ptr (FunPtr C_SelectionFunc)) -> SelectionFunc_WithClosures -> C_SelectionFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TerminalSpawnAsyncCallback = Ptr Terminal -> Int32 -> Ptr GError -> Ptr () -> IO ()

-- | Callback for <a>terminalSpawnAsync</a>.
--   
--   On success, <i><tt>pid</tt></i> contains the PID of the spawned
--   process, and <i><tt>error</tt></i> is <a>Nothing</a>. On failure,
--   <i><tt>pid</tt></i> is -1 and <i><tt>error</tt></i> contains the error
--   information.
--   
--   <i>Since: 0.48</i>
type TerminalSpawnAsyncCallback = Terminal -> Int32 -> Maybe GError -> IO ()

-- | Callback for <a>terminalSpawnAsync</a>.
--   
--   On success, <i><tt>pid</tt></i> contains the PID of the spawned
--   process, and <i><tt>error</tt></i> is <a>Nothing</a>. On failure,
--   <i><tt>pid</tt></i> is -1 and <i><tt>error</tt></i> contains the error
--   information.
--   
--   <i>Since: 0.48</i>
type TerminalSpawnAsyncCallback_WithClosures = Terminal -> Int32 -> Maybe GError -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TerminalSpawnAsyncCallback :: TerminalSpawnAsyncCallback -> TerminalSpawnAsyncCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TerminalSpawnAsyncCallback :: (HasCallStack, MonadIO m, IsTerminal a) => FunPtr C_TerminalSpawnAsyncCallback -> a -> Int32 -> Maybe GError -> Ptr () -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_TerminalSpawnAsyncCallback :: MonadIO m => TerminalSpawnAsyncCallback -> m (GClosure C_TerminalSpawnAsyncCallback)

-- | Generate a function pointer callable from C code, from a
--   <a>C_TerminalSpawnAsyncCallback</a>.
mk_TerminalSpawnAsyncCallback :: C_TerminalSpawnAsyncCallback -> IO (FunPtr C_TerminalSpawnAsyncCallback)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>TerminalSpawnAsyncCallback</a></tt>.
noTerminalSpawnAsyncCallback :: Maybe TerminalSpawnAsyncCallback

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>TerminalSpawnAsyncCallback_WithClosures</a></tt>.
noTerminalSpawnAsyncCallback_WithClosures :: Maybe TerminalSpawnAsyncCallback_WithClosures

-- | Wrap a <a>TerminalSpawnAsyncCallback</a> into a
--   <a>C_TerminalSpawnAsyncCallback</a>.
wrap_TerminalSpawnAsyncCallback :: Maybe (Ptr (FunPtr C_TerminalSpawnAsyncCallback)) -> TerminalSpawnAsyncCallback_WithClosures -> C_TerminalSpawnAsyncCallback


-- | <i>No description available in the introspection data.</i>
module GI.Vte.Objects.Terminal

-- | Memory-managed wrapper type.
newtype Terminal
Terminal :: ManagedPtr Terminal -> Terminal

-- | Type class for types which can be safely cast to <a>Terminal</a>, for
--   instance with <a>toTerminal</a>.
class (GObject o, IsDescendantOf Terminal o) => IsTerminal o

-- | Cast to <a>Terminal</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toTerminal :: (MonadIO m, IsTerminal o) => o -> m Terminal

-- | Places the selected text in the terminal in the
--   <tt><i>GDK_SELECTION_CLIPBOARD</i></tt> selection.

-- | <i>Deprecated: (Since version 0.50)Use
--   <a>terminalCopyClipboardFormat</a> with <a>FormatText</a>instead.</i>
terminalCopyClipboard :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Places the selected text in the terminal in the
--   <tt><i>GDK_SELECTION_CLIPBOARD</i></tt> selection in the form
--   specified by <i><tt>format</tt></i>.
--   
--   For all formats, the selection data (see <a>SelectionData</a>) will
--   include the text targets (see <a>targetListAddTextTargets</a> and
--   <tt><i>gtk_selection_data_targets_includes_text()</i></tt>). For
--   <a>FormatHtml</a>, the selection will also include the "text/html"
--   target, which when requested, returns the HTML data in UTF-16 with a
--   U+FEFF BYTE ORDER MARK character at the start.
--   
--   <i>Since: 0.50</i>
terminalCopyClipboardFormat :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Format -> m ()

-- | Places the selected text in the terminal in the
--   <tt><i>GDK_SELECTION_PRIMARY</i></tt> selection.
terminalCopyPrimary :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Returns the value of a <a>PropertyTypeString</a> termprop, or
--   <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalDupTermpropString :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Text, CSize)

-- | Like <a>terminalDupTermpropString</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalDupTermpropStringById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Text, CSize)

-- | Returns the value of a <a>PropertyTypeUuid</a> termprop as a
--   <a>Uuid</a>, or <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalDupTermpropUuid :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Uuid)

-- | Like <a>terminalDupTermpropUuid</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalDupTermpropUuidById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Uuid)

-- | Interprets <i><tt>data</tt></i> as if it were data received from a
--   child process.
terminalFeed :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe ByteString -> m ()

-- | Sends a block of UTF-8 text to the child as if it were entered by the
--   user at the keyboard.
terminalFeedChild :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe ByteString -> m ()

-- | Sends a block of binary data to the child.

-- | <i>Deprecated: (Since version 0.60)Don't send binary data. Use
--   <a>terminalFeedChild</a> instead to sendUTF-8 text</i>
terminalFeedChildBinary :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe ByteString -> m ()

-- | Checks whether or not the terminal will attempt to draw bold text, by
--   using a bold font variant.

-- | <i>Deprecated: (Since version 0.60)There's probably no reason for this
--   feature to exist.</i>
terminalGetAllowBold :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Checks whether or not hyperlinks (OSC 8 escape sequence) are allowed.
--   
--   <i>Since: 0.50</i>
terminalGetAllowHyperlink :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Checks whether or not the terminal will beep when the child outputs
--   the "bl" sequence.
terminalGetAudibleBell :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Checks whether the SGR 1 attribute also switches to the bright
--   counterpart of the first 8 palette colors, in addition to making them
--   bold (legacy behavior) or if SGR 1 only enables bold and leaves the
--   color intact.
--   
--   <i>Since: 0.52</i>
terminalGetBoldIsBright :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.52</i>
terminalGetCellHeightScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Double

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.52</i>
terminalGetCellWidthScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Double

-- | <i>No description available in the introspection data.</i>
terminalGetCharHeight :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CLong

-- | <i>No description available in the introspection data.</i>
terminalGetCharWidth :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CLong

-- | Returns whether ambiguous-width characters are narrow or wide. (Note
--   that when using a non-UTF-8 encoding set via
--   <a>terminalSetEncoding</a>, the width of ambiguous-width characters is
--   fixed and determined by the encoding itself.)
terminalGetCjkAmbiguousWidth :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Int32

-- | Returns the background colour, as used by <i><tt>terminal</tt></i>
--   when drawing the background, which may be different from the color set
--   by <a>terminalSetColorBackground</a>.
--   
--   Note: you must only call this function while handling the
--   GtkWidget<a>draw</a> signal.
--   
--   This function is rarely useful. One use for it is if you disable
--   drawing the background (see <a>terminalSetClearBackground</a>) and
--   then need to draw the background yourself.
--   
--   <i>Since: 0.54</i>
terminalGetColorBackgroundForDraw :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m RGBA

-- | <i>No description available in the introspection data.</i>
terminalGetColumnCount :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CLong

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetContextMenu :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Widget)

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetContextMenuModel :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe MenuModel)

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.78)Use the
--   <tt><i>VTE_TERMPROP_CURRENT_FILE_URI_STRING</i></tt> termprop.</i>
terminalGetCurrentDirectoryUri :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.78)Use the
--   <tt><i>VTE_TERMPROP_CURRENT_FILE_URI_STRING</i></tt> termprop.</i>
terminalGetCurrentFileUri :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | Returns the currently set cursor blink mode.
terminalGetCursorBlinkMode :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CursorBlinkMode

-- | Reads the location of the insertion cursor and returns it. The row
--   coordinate is absolute.
--   
--   This method is unaware of BiDi. The returned column is logical column.
terminalGetCursorPosition :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (CLong, CLong)

-- | Returns the currently set cursor shape.
terminalGetCursorShape :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CursorShape

-- | Checks whether the terminal communicates with a11y backends
--   
--   <i>Since: 0.78</i>
terminalGetEnableA11y :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Checks whether the terminal performs bidirectional text rendering.
--   
--   <i>Since: 0.58</i>
terminalGetEnableBidi :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.64</i>
terminalGetEnableFallbackScrolling :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.78</i>
terminalGetEnableLegacyOsc777 :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Checks whether the terminal shapes Arabic text.
--   
--   <i>Since: 0.58</i>
terminalGetEnableShaping :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.62</i>
terminalGetEnableSixel :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Determines the name of the encoding in which the terminal expects data
--   to be encoded, or <a>Nothing</a> if UTF-8 is in use.

-- | <i>Deprecated: (Since version 0.54)Support for non-UTF-8 is
--   deprecated.</i>
terminalGetEncoding :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | Queries the terminal for information about the fonts which will be
--   used to draw text in the terminal. The actual font takes the font
--   scale into account, this is not reflected in the return value, the
--   unscaled font is returned.
terminalGetFont :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m FontDescription

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.74</i>
terminalGetFontOptions :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe FontOptions)

-- | <i>No description available in the introspection data.</i>
terminalGetFontScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Double

-- | Fills in some <i><tt>hints</tt></i> from <i><tt>terminal</tt></i>'s
--   geometry. The hints filled are those covered by the
--   <a>WindowHintsResizeInc</a>, <a>WindowHintsMinSize</a> and
--   <a>WindowHintsBaseSize</a> flags.
--   
--   See <a>windowSetGeometryHints</a> for more information.
--   
--   <i><tt>terminal</tt></i> must be realized (see
--   <a>widgetGetRealized</a>).

-- | <i>Deprecated: (Since version 0.52)</i>
terminalGetGeometryHints :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> Int32 -> m Geometry

-- | Checks if the terminal currently contains selected text. Note that
--   this is different from determining if the terminal is the owner of any
--   <a>Clipboard</a> items.
terminalGetHasSelection :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.54)</i>
terminalGetIconTitle :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | Returns whether the terminal allow user input.
terminalGetInputEnabled :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Determines the value of the terminal's mouse autohide setting. When
--   autohiding is enabled, the mouse cursor will be hidden when the user
--   presses a key and shown when the user moves the mouse. This setting
--   can be changed using <a>terminalSetMouseAutohide</a>.
terminalGetMouseAutohide :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Returns the <a>Pty</a> of <i><tt>terminal</tt></i>.
terminalGetPty :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Pty)

-- | Checks whether or not the terminal will rewrap its contents upon
--   resize.

-- | <i>Deprecated: (Since version 0.58)</i>
terminalGetRewrapOnResize :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
terminalGetRowCount :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CLong

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetScrollOnInsert :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.52</i>
terminalGetScrollOnKeystroke :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.52</i>
terminalGetScrollOnOutput :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.66</i>
terminalGetScrollUnitIsPixels :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.52</i>
terminalGetScrollbackLines :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m CLong

-- | For a <a>PropertyTypeBool</a> termprop, sets <i><tt>value</tt></i> to
--   <i><tt>prop</tt></i>'s value, or to <a>False</a> if
--   <i><tt>prop</tt></i> is unset, or <i><tt>prop</tt></i> is not a
--   registered property.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropBool :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, Bool)

-- | Like <a>terminalGetTermpropBool</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropBoolById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, Bool)

-- | Returns the value of a <a>PropertyTypeData</a> termprop, or
--   <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropData :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe ByteString)

-- | Like <a>terminalGetTermpropData</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropDataById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe ByteString)

-- | For a <a>PropertyTypeDouble</a> termprop, sets <i><tt>value</tt></i>
--   to <i><tt>prop</tt></i>'s value, which is finite; or to 0.0 if
--   <i><tt>prop</tt></i> is unset, or <i><tt>prop</tt></i> is not a
--   registered property.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropDouble :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, Double)

-- | Like <a>terminalGetTermpropDouble</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropDoubleById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, Double)

-- | See <tt><i>vte_properties_get_property_enum()</i></tt> for more
--   information.
--   
--   <i>Since: 0.82</i>
terminalGetTermpropEnum :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> GType -> m (Bool, Int64)

-- | Like <a>terminalGetTermpropEnum</a> except that it takes the property
--   by ID. See that function for more information.
--   
--   <i>Since: 0.82</i>
terminalGetTermpropEnumById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> GType -> m (Bool, Int64)

-- | See <tt><i>vte_properties_get_property_flags()</i></tt> for more
--   information.
--   
--   <i>Since: 0.82</i>
terminalGetTermpropFlags :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> GType -> Bool -> m (Bool, Word64)

-- | Like <a>terminalGetTermpropFlags</a> except that it takes the property
--   by ID. See that function for more information.
--   
--   <i>Since: 0.82</i>
terminalGetTermpropFlagsById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> GType -> Bool -> m (Bool, Word64)

-- | For a <a>PropertyTypeInt</a> termprop, sets <i><tt>value</tt></i> to
--   <i><tt>prop</tt></i>'s value, or to 0 if <i><tt>prop</tt></i> is
--   unset, or if <i><tt>prop</tt></i> is not a registered property.
--   
--   If only a subset or range of values are acceptable for the given
--   property, the caller must validate the returned value and treat any
--   out-of-bounds value as if the termprop had no value; in particular it
--   *must not* clamp the values to the expected range.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropInt :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, Int64)

-- | Like <a>terminalGetTermpropInt</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropIntById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, Int64)

-- | Stores the value of a <a>PropertyTypeRgb</a> or
--   <a>PropertyTypeRgba</a> termprop in <i><tt>color</tt></i> and returns
--   <a>True</a> if the termprop is set, or stores rgb(0,0,0) or
--   rgba(0,0,0,1) in <i><tt>color</tt></i> and returns <a>False</a> if the
--   termprop is unset.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropRgba :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, RGBA)

-- | Like <a>terminalGetTermpropRgba</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropRgbaById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, RGBA)

-- | Returns the value of a <a>PropertyTypeString</a> termprop, or
--   <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropString :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Text, CSize)

-- | Like <a>terminalGetTermpropString</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropStringById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Text, CSize)

-- | For a <a>PropertyTypeUint</a> termprop, sets <i><tt>value</tt></i> to
--   <i><tt>prop</tt></i>'s value, or to 0 if <i><tt>prop</tt></i> is
--   unset, or <i><tt>prop</tt></i> is not a registered property.
--   
--   If only a subset or range of values are acceptable for the given
--   property, the caller must validate the returned value and treat any
--   out-of-bounds value as if the termprop had no value; in particular it
--   *must not* clamp the values to the expected range.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropUint :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, Word64)

-- | Like <a>terminalGetTermpropUint</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropUintById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, Word64)

-- | Returns <a>True</a> with the value of <i><tt>prop</tt></i> stored in
--   <i><tt>value</tt></i> (if not <a>Nothing</a>) if, the termprop has a
--   value, or <a>False</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property; in that case
--   <i><tt>value</tt></i> will not be set.
--   
--   The value type returned depends on the termprop type: * A
--   <a>PropertyTypeValueless</a> termprop stores no value, and returns
--   <a>False</a> from this function. * A <a>PropertyTypeBool</a> termprop
--   stores a <tt><i>G_TYPE_BOOLEAN</i></tt> value. * A
--   <a>PropertyTypeInt</a> termprop stores a <tt><i>G_TYPE_INT64</i></tt>
--   value. * A <a>PropertyTypeUint</a> termprop stores a
--   <tt><i>G_TYPE_UINT64</i></tt> value. * A <a>PropertyTypeDouble</a>
--   termprop stores a <tt><i>G_TYPE_DOUBLE</i></tt> value. * A
--   <a>PropertyTypeRgb</a> termprop stores a boxed <a>RGBA</a> value with
--   alpha 1.0 on gtk3, and nothing on gtk4. * A <a>PropertyTypeRgba</a>
--   termprop stores a boxed <a>RGBA</a> value on gtk3, and nothing on
--   gtk4. * A <a>PropertyTypeString</a> termprop stores a
--   <tt><i>G_TYPE_STRING</i></tt> value. * A <a>PropertyTypeData</a>
--   termprop stores a boxed <a>Bytes</a> value. * A
--   <a>PropertyTypeUuid</a> termprop stores a boxed <a>Uuid</a> value. * A
--   <a>PropertyTypeUri</a> termprop stores a boxed <a>Uri</a> value. * A
--   <a>PropertyTypeImage</a> termprop stores a boxed <a>Surface</a> value
--   on gtk3, and a boxed <tt><i>GdkTexture</i></tt> on gtk4
--   
--   <i>Since: 0.78</i>
terminalGetTermpropValue :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Bool, GValue)

-- | Like <a>terminalGetTermpropValue</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalGetTermpropValueById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Bool, GValue)

-- | Extracts a view of the visible part of the terminal.
--   
--   This method is unaware of BiDi. The columns returned in
--   <i><tt>attributes</tt></i> are logical columns.
--   
--   Note: since 0.68, passing a non-<a>Nothing</a>
--   <i><tt>attributes</tt></i> parameter is deprecated. Starting with
--   0.72, passing a non-<a>Nothing</a> <i><tt>attributes</tt></i>
--   parameter will make this function itself return <a>Nothing</a>. Since
--   0.72, passing a non-<a>Nothing</a> <i><tt>isSelected</tt></i>
--   parameter will make this function itself return <a>Nothing</a>.

-- | <i>Deprecated: (Since version 0.76)Use <a>terminalGetTextFormat</a>
--   instead</i>
terminalGetText :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe SelectionFunc -> m (Maybe Text, Maybe [CharAttributes])

-- | Checks whether or not the terminal will allow blinking text.
--   
--   <i>Since: 0.52</i>
terminalGetTextBlinkMode :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m TextBlinkMode

-- | Returns text from the visible part of the terminal in the specified
--   format.
--   
--   This method is unaware of BiDi. The columns returned in
--   <i><tt>attributes</tt></i> are logical columns.
--   
--   <i>Since: 0.76</i>
terminalGetTextFormat :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Format -> m (Maybe Text)

-- | Extracts a view of the visible part of the terminal.
--   
--   This method is unaware of BiDi. The columns returned in
--   <i><tt>attributes</tt></i> are logical columns.
--   
--   Note: since 0.68, passing a non-<a>Nothing</a> <i><tt>array</tt></i>
--   parameter is deprecated. Starting with 0.72, passing a
--   non-<a>Nothing</a> <i><tt>array</tt></i> parameter will make this
--   function itself return <a>Nothing</a>. Since 0.72, passing a
--   non-<a>Nothing</a> <i><tt>isSelected</tt></i> parameter will make this
--   function itself return <a>Nothing</a>.

-- | <i>Deprecated: (Since version 0.56)Use <a>terminalGetTextFormat</a>
--   instead.</i>
terminalGetTextIncludeTrailingSpaces :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe SelectionFunc -> m (Text, Maybe [CharAttributes])

-- | Extracts a view of the visible part of the terminal. The entire
--   scrollback buffer is scanned, so it is possible to read the entire
--   contents of the buffer using this function.
--   
--   This method is unaware of BiDi. The columns passed in
--   <i><tt>startCol</tt></i> and <i><tt>endRow</tt></i>, and returned in
--   <i><tt>attributes</tt></i> are logical columns.
--   
--   Since 0.68, passing a non-<a>Nothing</a> <i><tt>array</tt></i>
--   parameter is deprecated. Since 0.72, passing a non-<a>Nothing</a>
--   <i><tt>array</tt></i> parameter will make this function itself return
--   <a>Nothing</a>. Since 0.72, passing a non-<a>Nothing</a>
--   <i><tt>isSelected</tt></i> function will make this function itself
--   return <a>Nothing</a>.

-- | <i>Deprecated: (Since version 0.76)Use
--   <a>terminalGetTextRangeFormat</a> instead</i>
terminalGetTextRange :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CLong -> CLong -> CLong -> CLong -> Maybe SelectionFunc -> m (Maybe Text, Maybe [CharAttributes])

-- | Returns the specified range of text in the specified format.
--   
--   <i>Since: 0.72</i>
terminalGetTextRangeFormat :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Format -> CLong -> CLong -> CLong -> CLong -> m (Maybe Text, CSize)

-- | Gets the currently selected text in the format specified by
--   <i><tt>format</tt></i>. Since 0.72, this function also supports
--   <a>FormatHtml</a> format.
--   
--   <i>Since: 0.70</i>
terminalGetTextSelected :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Format -> m (Maybe Text)

-- | Gets the currently selected text in the format specified by
--   <i><tt>format</tt></i>.
--   
--   <i>Since: 0.72</i>
terminalGetTextSelectedFull :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Format -> m (Maybe Text, CSize)

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.78)Use the <a>TERMPROP_XTERM_TITLE</a>
--   termprop.</i>
terminalGetWindowTitle :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | Returns the set of characters which will be considered parts of a word
--   when doing word-wise selection, in addition to the default which only
--   considers alphanumeric characters part of a word.
--   
--   If <a>Nothing</a>, a built-in set is used.
--   
--   <i>Since: 0.40</i>
terminalGetWordCharExceptions :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m (Maybe Text)

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetXalign :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Align

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetXfill :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetYalign :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Align

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.76</i>
terminalGetYfill :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Returns a nonempty string: the target of the explicit hyperlink
--   (printed using the OSC 8 escape sequence) at the position of the
--   event, or <a>Nothing</a>.
--   
--   Proper use of the escape sequence should result in URI-encoded URIs
--   with a proper scheme like "http://", "https://", "file://", "mailto:"
--   etc. This is, however, not enforced by VTE. The caller must tolerate
--   the returned string potentially not being a valid URI.
--   
--   <i>Since: 0.50</i>
terminalHyperlinkCheckEvent :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Event -> m (Maybe Text)

-- | This function does nothing since version 0.60.

-- | <i>Deprecated: (Since version 0.46)Use <a>terminalMatchAddRegex</a>
--   instead.</i>
terminalMatchAddGregex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Regex -> [RegexMatchFlags] -> m Int32

-- | Adds the regular expression <i><tt>regex</tt></i> to the list of
--   matching expressions. When the user moves the mouse cursor over a
--   section of displayed text which matches this expression, the text will
--   be highlighted.
--   
--   Note that <i><tt>regex</tt></i> should have been created using the
--   &lt;literal&gt;PCRE2_MULTILINE&lt;/literal&gt; flag.
--   
--   <i>Since: 0.46</i>
terminalMatchAddRegex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Regex -> Word32 -> m Int32

-- | Checks if the text in and around the specified position matches any of
--   the regular expressions previously set using
--   <tt><i>vte_terminal_match_add()</i></tt>. If a match exists, the text
--   string is returned and if <i><tt>tag</tt></i> is not <a>Nothing</a>,
--   the number associated with the matched regular expression will be
--   stored in <i><tt>tag</tt></i>.
--   
--   If more than one regular expression has been set with
--   <tt><i>vte_terminal_match_add()</i></tt>, then expressions are checked
--   in the order in which they were added.

-- | <i>Deprecated: (Since version 0.46)Use <a>terminalMatchCheckEvent</a>
--   instead.</i>
terminalMatchCheck :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CLong -> CLong -> m (Maybe Text, Int32)

-- | Checks if the text in and around the position of the event matches any
--   of the regular expressions previously set using
--   <tt><i>vte_terminal_match_add()</i></tt>. If a match exists, the text
--   string is returned and if <i><tt>tag</tt></i> is not <a>Nothing</a>,
--   the number associated with the matched regular expression will be
--   stored in <i><tt>tag</tt></i>.
--   
--   If more than one regular expression has been set with
--   <tt><i>vte_terminal_match_add()</i></tt>, then expressions are checked
--   in the order in which they were added.
terminalMatchCheckEvent :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Event -> m (Maybe Text, Int32)

-- | Removes the regular expression which is associated with the given
--   <i><tt>tag</tt></i> from the list of expressions which the terminal
--   will highlight when the user moves the mouse cursor over matching
--   text.
terminalMatchRemove :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m ()

-- | Clears the list of regular expressions the terminal uses to highlight
--   text when the user moves the mouse cursor.
terminalMatchRemoveAll :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Sets which cursor the terminal will use if the pointer is over the
--   pattern specified by <i><tt>tag</tt></i>. The terminal keeps a
--   reference to <i><tt>cursor</tt></i>.

-- | <i>Deprecated: (Since version 0.40)Use
--   <a>terminalMatchSetCursorName</a> instead.</i>
terminalMatchSetCursor :: (HasCallStack, MonadIO m, IsTerminal a, IsCursor b) => a -> Int32 -> Maybe b -> m ()

-- | Sets which cursor the terminal will use if the pointer is over the
--   pattern specified by <i><tt>tag</tt></i>.
terminalMatchSetCursorName :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> Text -> m ()

-- | Sets which cursor the terminal will use if the pointer is over the
--   pattern specified by <i><tt>tag</tt></i>.

-- | <i>Deprecated: (Since version 0.54)Use
--   <a>terminalMatchSetCursorName</a> instead.</i>
terminalMatchSetCursorType :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> CursorType -> m ()

-- | Creates a new terminal widget.
terminalNew :: (HasCallStack, MonadIO m) => m Terminal

-- | Sends the contents of the <tt><i>GDK_SELECTION_CLIPBOARD</i></tt>
--   selection to the terminal's child. It's called on paste menu item, or
--   when user presses Shift+Insert.
terminalPasteClipboard :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Sends the contents of the <tt><i>GDK_SELECTION_PRIMARY</i></tt>
--   selection to the terminal's child. The terminal will call also paste
--   the <tt><i>GDK_SELECTION_PRIMARY</i></tt> selection when the user
--   clicks with the the second mouse button.
terminalPastePrimary :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Sends <i><tt>text</tt></i> to the terminal's child as if retrived from
--   the clipboard, this differs from <a>terminalFeedChild</a> in that it
--   may process <i><tt>text</tt></i> before passing it to the child (e.g.
--   apply bracketed mode)
--   
--   <i>Since: 0.68</i>
terminalPasteText :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m ()

-- | Creates a new <a>Pty</a>, sets the emulation property from
--   <a>Terminal</a>:<tt><i>emulation</i></tt>, and sets the size using
--   <i><tt>terminal</tt></i>'s size.
--   
--   See <tt><i>vte_pty_new()</i></tt> for more information.
terminalPtyNewSync :: (HasCallStack, MonadIO m, IsTerminal a, IsCancellable b) => a -> [PtyFlags] -> Maybe b -> m Pty

-- | Returns the value of a <a>PropertyTypeData</a> termprop as a
--   <a>Bytes</a>, or <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropDataBytes :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Bytes)

-- | Like <a>terminalRefTermpropDataBytes</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropDataBytesById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Bytes)

-- | Returns the value of a <a>PropertyTypeImage</a> termprop as a
--   <a>Pixbuf</a>, or <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.80</i>
terminalRefTermpropImagePixbuf :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Pixbuf)

-- | Like <a>terminalRefTermpropImagePixbuf</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.80</i>
terminalRefTermpropImagePixbufById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Pixbuf)

-- | Returns the value of a <a>PropertyTypeImage</a> termprop as a
--   <a>Surface</a>, or <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   The surface will be a <a>SurfaceTypeImage</a> with format
--   <a>FormatArgb32</a> or <a>FormatRgb24</a>.
--   
--   Note that the returned surface is owned by <i><tt>terminal</tt></i>
--   and its contents must not be modified.
--   
--   <i>Since: 0.80</i>
terminalRefTermpropImageSurface :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Surface)

-- | Like <a>terminalRefTermpropImageSurface</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.80</i>
terminalRefTermpropImageSurfaceById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Surface)

-- | Returns the value of a <a>PropertyTypeUri</a> termprop as a
--   <a>Uri</a>, or <a>Nothing</a> if <i><tt>prop</tt></i> is unset, or
--   <i><tt>prop</tt></i> is not a registered property.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropUri :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe Uri)

-- | Like <a>terminalRefTermpropUri</a> except that it takes the termprop
--   by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropUriById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe Uri)

-- | Returns the value of <i><tt>prop</tt></i> as a <a>GVariant</a>, or
--   <a>Nothing</a> if <i><tt>prop</tt></i> unset, or <i><tt>prop</tt></i>
--   is not a registered property.
--   
--   The <a>VariantType</a> of the returned <a>GVariant</a> depends on the
--   termprop type: * A <a>PropertyTypeValueless</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_UNIT</i></tt> variant. * A
--   <a>PropertyTypeBool</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_BOOLEAN</i></tt> variant. * A
--   <a>PropertyTypeInt</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_INT64</i></tt> variant. * A
--   <a>PropertyTypeUint</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_UINT64</i></tt> variant. * A
--   <a>PropertyTypeDouble</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_DOUBLE</i></tt> variant. * A
--   <a>PropertyTypeRgb</a> or <a>PropertyTypeRgba</a> termprop returns a
--   "(ddddv)" tuple containing the red, green, blue, and alpha (1.0 for
--   <a>PropertyTypeRgb</a>) components of the color and a variant of
--   unspecified contents * A <a>PropertyTypeString</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_STRING</i></tt> variant. * A
--   <a>PropertyTypeData</a> termprop returns a "ay" variant (which is
--   *not* a bytestring!). * A <a>PropertyTypeUuid</a> termprop returns a
--   <tt><i>G_VARIANT_TYPE_STRING</i></tt> variant containing a string
--   representation of the UUID in simple form. * A <a>PropertyTypeUri</a>
--   termprop returns a <tt><i>G_VARIANT_TYPE_STRING</i></tt> variant
--   containing a string representation of the URI * A
--   <a>PropertyTypeImage</a> termprop returns <a>Nothing</a> since an
--   image has no variant representation.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropVariant :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m (Maybe GVariant)

-- | Like <a>terminalRefTermpropVariant</a> except that it takes the
--   termprop by ID. See that function for more information.
--   
--   <i>Since: 0.78</i>
terminalRefTermpropVariantById :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m (Maybe GVariant)

-- | Resets as much of the terminal's internal state as possible,
--   discarding any unprocessed input data, resetting character attributes,
--   cursor state, national character set state, status line, terminal
--   modes (insert/delete), selection state, and encoding.
terminalReset :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> Bool -> m ()

-- | Searches the next string matching the search regex set with
--   <a>terminalSearchSetRegex</a>.
terminalSearchFindNext :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | Searches the previous string matching the search regex set with
--   <a>terminalSearchSetRegex</a>.
terminalSearchFindPrevious :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.46)use <a>terminalSearchGetRegex</a>
--   instead.</i>
terminalSearchGetGregex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Regex

-- | <i>No description available in the introspection data.</i>
--   
--   <i>Since: 0.46</i>
terminalSearchGetRegex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Regex

-- | <i>No description available in the introspection data.</i>
terminalSearchGetWrapAround :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m Bool

-- | This function does nothing since version 0.60.

-- | <i>Deprecated: (Since version 0.46)use <a>terminalSearchSetRegex</a>
--   instead.</i>
terminalSearchSetGregex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe Regex -> [RegexMatchFlags] -> m ()

-- | Sets the regex to search for. Unsets the search regex when passed
--   <a>Nothing</a>.
--   
--   Note that <i><tt>regex</tt></i> should have been created using the
--   &lt;literal&gt;PCRE2_MULTILINE&lt;/literal&gt; flag.
--   
--   <i>Since: 0.46</i>
terminalSearchSetRegex :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe Regex -> Word32 -> m ()

-- | Sets whether search should wrap around to the beginning of the
--   terminal content when reaching its end.
terminalSearchSetWrapAround :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Selects all text within the terminal (not including the scrollback
--   buffer).
terminalSelectAll :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Controls whether or not the terminal will attempt to draw bold text,
--   by using a bold font variant.

-- | <i>Deprecated: (Since version 0.60)There's probably no reason for this
--   feature to exist.</i>
terminalSetAllowBold :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not hyperlinks (OSC 8 escape sequence) are
--   allowed.
--   
--   <i>Since: 0.50</i>
terminalSetAllowHyperlink :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will beep when the child outputs
--   the "bl" sequence.
terminalSetAudibleBell :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Modifies the terminal's backspace key binding, which controls what
--   string or control sequence the terminal sends to its child when the
--   user presses the backspace key.
terminalSetBackspaceBinding :: (HasCallStack, MonadIO m, IsTerminal a) => a -> EraseBinding -> m ()

-- | Sets whether the SGR 1 attribute also switches to the bright
--   counterpart of the first 8 palette colors, in addition to making them
--   bold (legacy behavior) or if SGR 1 only enables bold and leaves the
--   color intact.
--   
--   <i>Since: 0.52</i>
terminalSetBoldIsBright :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets the terminal's cell height scale to <i><tt>scale</tt></i>.
--   
--   This can be used to increase the line spacing. (The font's height is
--   not affected.) Valid values go from 1.0 (default) to 2.0 ("double
--   spacing").
--   
--   <i>Since: 0.52</i>
terminalSetCellHeightScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Double -> m ()

-- | Sets the terminal's cell width scale to <i><tt>scale</tt></i>.
--   
--   This can be used to increase the letter spacing. (The font's width is
--   not affected.) Valid values go from 1.0 (default) to 2.0.
--   
--   <i>Since: 0.52</i>
terminalSetCellWidthScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Double -> m ()

-- | This setting controls whether ambiguous-width characters are narrow or
--   wide. (Note that when using a non-UTF-8 encoding set via
--   <a>terminalSetEncoding</a>, the width of ambiguous-width characters is
--   fixed and determined by the encoding itself.)
terminalSetCjkAmbiguousWidth :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m ()

-- | Sets whether to paint the background with the background colour. The
--   default is <a>True</a>.
--   
--   This function is rarely useful. One use for it is to add a background
--   image to the terminal.
--   
--   <i>Since: 0.52</i>
terminalSetClearBackground :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets the background color for text which does not have a specific
--   background color assigned. Only has effect when no background image is
--   set and when the terminal is not transparent.
terminalSetColorBackground :: (HasCallStack, MonadIO m, IsTerminal a) => a -> RGBA -> m ()

-- | Sets the color used to draw bold text in the default foreground color.
--   If <i><tt>bold</tt></i> is <a>Nothing</a> then the default color is
--   used.
terminalSetColorBold :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> m ()

-- | Sets the background color for text which is under the cursor. If
--   <a>Nothing</a>, text under the cursor will be drawn with foreground
--   and background colors reversed.
terminalSetColorCursor :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> m ()

-- | Sets the foreground color for text which is under the cursor. If
--   <a>Nothing</a>, text under the cursor will be drawn with foreground
--   and background colors reversed.
--   
--   <i>Since: 0.44</i>
terminalSetColorCursorForeground :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> m ()

-- | Sets the foreground color used to draw normal text.
terminalSetColorForeground :: (HasCallStack, MonadIO m, IsTerminal a) => a -> RGBA -> m ()

-- | Sets the background color for text which is highlighted. If
--   <a>Nothing</a>, it is unset. If neither highlight background nor
--   highlight foreground are set, highlighted text (which is usually
--   highlighted because it is selected) will be drawn with foreground and
--   background colors reversed.
terminalSetColorHighlight :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> m ()

-- | Sets the foreground color for text which is highlighted. If
--   <a>Nothing</a>, it is unset. If neither highlight background nor
--   highlight foreground are set, highlighted text (which is usually
--   highlighted because it is selected) will be drawn with foreground and
--   background colors reversed.
terminalSetColorHighlightForeground :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> m ()

-- | <i><tt>palette</tt></i> specifies the new values for the 256 palette
--   colors: 8 standard colors, their 8 bright counterparts, 6x6x6 color
--   cube, and 24 grayscale colors. Omitted entries will default to a
--   hardcoded value.
--   
--   <i><tt>paletteSize</tt></i> must be 0, 8, 16, 232 or 256.
--   
--   If <i><tt>foreground</tt></i> is <a>Nothing</a> and
--   <i><tt>paletteSize</tt></i> is greater than 0, the new foreground
--   color is taken from <i><tt>palette</tt></i>[7]. If
--   <i><tt>background</tt></i> is <a>Nothing</a> and
--   <i><tt>paletteSize</tt></i> is greater than 0, the new background
--   color is taken from <i><tt>palette</tt></i>[0].
terminalSetColors :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe RGBA -> Maybe RGBA -> Maybe [RGBA] -> m ()

-- | Sets <i><tt>menu</tt></i> as the context menu in
--   <i><tt>terminal</tt></i>. Use <a>Nothing</a> to unset the current
--   menu.
--   
--   Note that a menu model set with <a>terminalSetContextMenuModel</a>
--   takes precedence over a menu set using this function.
--   
--   <i>Since: 0.76</i>
terminalSetContextMenu :: (HasCallStack, MonadIO m, IsTerminal a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets <i><tt>model</tt></i> as the context menu model in
--   <i><tt>terminal</tt></i>. Use <a>Nothing</a> to unset the current menu
--   model.
--   
--   <i>Since: 0.76</i>
terminalSetContextMenuModel :: (HasCallStack, MonadIO m, IsTerminal a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets whether or not the cursor will blink. Using
--   <a>CursorBlinkModeSystem</a> will use the
--   <a>Settings</a>::<tt><i>gtk-cursor-blink</i></tt> setting.
terminalSetCursorBlinkMode :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CursorBlinkMode -> m ()

-- | Sets the shape of the cursor drawn.
terminalSetCursorShape :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CursorShape -> m ()

-- | Reset the terminal palette to reasonable compiled-in default color.
terminalSetDefaultColors :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Modifies the terminal's delete key binding, which controls what string
--   or control sequence the terminal sends to its child when the user
--   presses the delete key.
terminalSetDeleteBinding :: (HasCallStack, MonadIO m, IsTerminal a) => a -> EraseBinding -> m ()

-- | Controls whether or not the terminal will communicate with a11y
--   backends.
--   
--   <i>Since: 0.78</i>
terminalSetEnableA11y :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will perform bidirectional text
--   rendering.
--   
--   <i>Since: 0.58</i>
terminalSetEnableBidi :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether the terminal uses scroll events to scroll the history
--   if the event was not otherwise consumed by it.
--   
--   This function is rarely useful, except when the terminal is added to a
--   <a>ScrolledWindow</a>, to perform kinetic scrolling (while vte itself
--   does not, yet, implement kinetic scrolling by itself).
--   
--   <i>Since: 0.64</i>
terminalSetEnableFallbackScrolling :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets whether legacy OSC 777 sequences are translated to their
--   corresponding termprops.
--   
--   <i>Since: 0.78</i>
terminalSetEnableLegacyOsc777 :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will shape Arabic text.
--   
--   <i>Since: 0.58</i>
terminalSetEnableShaping :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Set whether to enable SIXEL images.
--   
--   <i>Since: 0.62</i>
terminalSetEnableSixel :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Changes the encoding the terminal will expect data from the child to
--   be encoded with. For certain terminal types, applications executing in
--   the terminal can change the encoding. If <i><tt>codeset</tt></i> is
--   <a>Nothing</a>, it uses "UTF-8".
--   
--   Note: Support for non-UTF-8 is deprecated and may get removed
--   altogether. Instead of this function, you should use a wrapper like
--   luit(1) when spawning the child process.

-- | <i>Deprecated: (Since version 0.54)Support for non-UTF-8 is
--   deprecated.</i>
terminalSetEncoding :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe Text -> m ()

-- | Sets the font used for rendering all text displayed by the terminal,
--   overriding any fonts set using <a>widgetModifyFont</a>. The terminal
--   will immediately attempt to load the desired font, retrieve its
--   metrics, and attempt to resize itself to keep the same number of rows
--   and columns. The font scale is applied to the specified font.
terminalSetFont :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe FontDescription -> m ()

-- | Sets the terminal's font options to <i><tt>options</tt></i>.
--   
--   Note that on GTK4, the terminal by default uses font options with
--   <a>HintMetricsOn</a> set; to override that, use this function to set a
--   <a>FontOptions</a> that has <a>HintMetricsOff</a> set.
--   
--   <i>Since: 0.74</i>
terminalSetFontOptions :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Maybe FontOptions -> m ()

-- | Sets the terminal's font scale to <i><tt>scale</tt></i>.
terminalSetFontScale :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Double -> m ()

-- | Sets <i><tt>terminal</tt></i> as <i><tt>window</tt></i>'s geometry
--   widget. See <a>windowSetGeometryHints</a> for more information.
--   
--   <i><tt>terminal</tt></i> must be realized (see
--   <a>widgetGetRealized</a>).

-- | <i>Deprecated: (Since version 0.52)</i>
terminalSetGeometryHintsForWindow :: (HasCallStack, MonadIO m, IsTerminal a, IsWindow b) => a -> b -> m ()

-- | Enables or disables user input. When user input is disabled, the
--   terminal's child will not receive any key press, or mouse button press
--   or motion events sent to it.
terminalSetInputEnabled :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Changes the value of the terminal's mouse autohide setting. When
--   autohiding is enabled, the mouse cursor will be hidden when the user
--   presses a key and shown when the user moves the mouse. This setting
--   can be read using <a>terminalGetMouseAutohide</a>.
terminalSetMouseAutohide :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets <i><tt>pty</tt></i> as the PTY to use in
--   <i><tt>terminal</tt></i>. Use <a>Nothing</a> to unset the PTY.
terminalSetPty :: (HasCallStack, MonadIO m, IsTerminal a, IsPty b) => a -> Maybe b -> m ()

-- | Controls whether or not the terminal will rewrap its contents,
--   including the scrollback history, whenever the terminal's width
--   changes.

-- | <i>Deprecated: (Since version 0.58)</i>
terminalSetRewrapOnResize :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will forcibly scroll to the
--   bottom of the viewable history when text is inserted, e.g. by a paste.
--   
--   <i>Since: 0.76</i>
terminalSetScrollOnInsert :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will forcibly scroll to the
--   bottom of the viewable history when the user presses a key. Modifier
--   keys do not trigger this behavior.
--   
--   <i>Since: 0.52</i>
terminalSetScrollOnKeystroke :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether or not the terminal will forcibly scroll to the
--   bottom of the viewable history when the new data is received from the
--   child.
--   
--   <i>Since: 0.52</i>
terminalSetScrollOnOutput :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Controls whether the terminal's scroll unit is lines or pixels.
--   
--   This function is rarely useful, except when the terminal is added to a
--   <a>ScrolledWindow</a>.
--   
--   <i>Since: 0.66</i>
terminalSetScrollUnitIsPixels :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets the length of the scrollback buffer used by the terminal. The
--   size of the scrollback buffer will be set to the larger of this value
--   and the number of visible rows the widget can display, so 0 can safely
--   be used to disable scrollback.
--   
--   A negative value means "infinite scrollback".
--   
--   Using a large scrollback buffer (roughly 1M+ lines) may lead to
--   performance degradation or exhaustion of system resources, and is
--   therefore not recommended.
--   
--   Note that this setting only affects the normal screen buffer. No
--   scrollback is allowed on the alternate screen buffer.
terminalSetScrollbackLines :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CLong -> m ()

-- | Attempts to change the terminal's size in terms of rows and columns.
--   If the attempt succeeds, the widget will resize itself to the proper
--   size.
terminalSetSize :: (HasCallStack, MonadIO m, IsTerminal a) => a -> CLong -> CLong -> m ()

-- | Suppress emissions of signals and property notifications that are
--   deprecated.
--   
--   <i>Since: 0.78</i>
terminalSetSuppressLegacySignals :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Controls whether or not the terminal will allow blinking text.
--   
--   <i>Since: 0.52</i>
terminalSetTextBlinkMode :: (HasCallStack, MonadIO m, IsTerminal a) => a -> TextBlinkMode -> m ()

-- | With this function you can provide a set of characters which will be
--   considered parts of a word when doing word-wise selection, in addition
--   to the default which only considers alphanumeric characters part of a
--   word.
--   
--   The characters in <i><tt>exceptions</tt></i> must be non-alphanumeric,
--   each character must occur only once, and if <i><tt>exceptions</tt></i>
--   contains the character U+002D HYPHEN-MINUS, it must be at the start of
--   the string.
--   
--   Use <a>Nothing</a> to reset the set of exception characters to the
--   default.
--   
--   <i>Since: 0.40</i>
terminalSetWordCharExceptions :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Text -> m ()

-- | Sets the horizontal alignment of <i><tt>terminal</tt></i> within its
--   allocation.
--   
--   Note: <tt><i>VTE_ALIGN_START_FILL</i></tt> is not supported, and will
--   be treated like <a>AlignStart</a>.
--   
--   <i>Since: 0.76</i>
terminalSetXalign :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Align -> m ()

-- | Sets the horizontal fillment of <i><tt>terminal</tt></i> within its
--   allocation.
--   
--   Note: <tt><i>VTE_FILL_START_FILL</i></tt> is not supported, and will
--   be treated like <tt><i>VTE_FILL_START</i></tt>.
--   
--   <i>Since: 0.76</i>
terminalSetXfill :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | Sets the vertical alignment of <i><tt>terminal</tt></i> within its
--   allocation.
--   
--   <i>Since: 0.76</i>
terminalSetYalign :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Align -> m ()

-- | Sets the vertical fillment of <i><tt>terminal</tt></i> within its
--   allocation. Note that yfill is only supported with yalign set to
--   <a>AlignStart</a>, and is ignored for all other yalign values.
--   
--   <i>Since: 0.76</i>
terminalSetYfill :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Bool -> m ()

-- | A convenience function that wraps creating the <a>Pty</a> and spawning
--   the child process on it. Like <a>terminalSpawnWithFdsAsync</a>, except
--   that this function does not allow passing file descriptors to the
--   child process. See <a>terminalSpawnWithFdsAsync</a> for more
--   information.
--   
--   <i>Since: 0.48</i>
terminalSpawnAsync :: (HasCallStack, MonadIO m, IsTerminal a, IsCancellable b) => a -> [PtyFlags] -> Maybe Text -> [[Char]] -> Maybe [[Char]] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> Int32 -> Maybe b -> Maybe TerminalSpawnAsyncCallback -> m ()

-- | Starts the specified command under a newly-allocated controlling
--   pseudo-terminal. The <i><tt>argv</tt></i> and <i><tt>envv</tt></i>
--   lists should be <a>Nothing</a>-terminated. The "TERM" environment
--   variable is automatically set to a default value, but can be
--   overridden from <i><tt>envv</tt></i>. <i><tt>ptyFlags</tt></i>
--   controls logging the session to the specified system log files.
--   
--   Note that <a>SpawnFlagsDoNotReapChild</a> will always be added to
--   <i><tt>spawnFlags</tt></i>.
--   
--   Note also that <a>SpawnFlagsStdoutToDevNull</a>,
--   <a>SpawnFlagsStderrToDevNull</a>, and
--   <a>SpawnFlagsChildInheritsStdin</a> are not supported in
--   <i><tt>spawnFlags</tt></i>, since stdin, stdout and stderr of the
--   child process will always be connected to the PTY.
--   
--   Note that all open file descriptors will be closed in the child. If
--   you want to keep some file descriptor open for use in the child
--   process, you need to use a child setup function that unsets the
--   FD_CLOEXEC flag on that file descriptor.
--   
--   See <tt><i>vte_pty_new()</i></tt>, <a>spawnAsync</a> and
--   <a>terminalWatchChild</a> for more information.
--   
--   Beginning with 0.52, sets PWD to <i><tt>workingDirectory</tt></i> in
--   order to preserve symlink components. The caller should also make sure
--   that symlinks were preserved while constructing the value of
--   <i><tt>workingDirectory</tt></i>, e.g. by using
--   <a>terminalGetCurrentDirectoryUri</a>, <a>getCurrentDir</a> or
--   <tt><i>get_current_dir_name()</i></tt>.

-- | <i>Deprecated: (Since version 0.48)Use <a>terminalSpawnAsync</a>
--   instead.</i>
terminalSpawnSync :: (HasCallStack, MonadIO m, IsTerminal a, IsCancellable b) => a -> [PtyFlags] -> Maybe Text -> [[Char]] -> Maybe [[Char]] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> Maybe b -> m Int32

-- | A convenience function that wraps creating the <a>Pty</a> and spawning
--   the child process on it. See <a>ptyNewSync</a>,
--   <a>ptySpawnWithFdsAsync</a>, and <a>ptySpawnFinish</a> for more
--   information.
--   
--   When the operation is finished successfully, <i><tt>callback</tt></i>
--   will be called with the child <tt><i>GPid</i></tt>, and a
--   <a>Nothing</a> <a>GError</a>. The child PID will already be watched
--   via <a>terminalWatchChild</a>.
--   
--   When the operation fails, <i><tt>callback</tt></i> will be called with
--   a -1 <tt><i>GPid</i></tt>, and a non-<a>Nothing</a> <a>GError</a>
--   containing the error information.
--   
--   Note that <a>SpawnFlagsStdoutToDevNull</a>,
--   <a>SpawnFlagsStderrToDevNull</a>, and
--   <a>SpawnFlagsChildInheritsStdin</a> are not supported in
--   <i><tt>spawnFlags</tt></i>, since stdin, stdout and stderr of the
--   child process will always be connected to the PTY.
--   
--   If <i><tt>fds</tt></i> is not <a>Nothing</a>, the child process will
--   map the file descriptors from <i><tt>fds</tt></i> according to
--   <i><tt>mapFds</tt></i>; <i><tt>nMapFds</tt></i> must be less or equal
--   to <i><tt>nFds</tt></i>. This function will take ownership of the file
--   descriptors in <i><tt>fds</tt></i>; you must not use or close them
--   after this call.
--   
--   Note that all open file descriptors apart from those mapped as above
--   will be closed in the child. (If you want to keep some other file
--   descriptor open for use in the child process, you need to use a child
--   setup function that unsets the FD_CLOEXEC flag on that file descriptor
--   manually.)
--   
--   Beginning with 0.60, and on linux only, and unless
--   <a>SPAWN_NO_SYSTEMD_SCOPE</a> is passed in <i><tt>spawnFlags</tt></i>,
--   the newly created child process will be moved to its own systemd user
--   scope; and if <a>SPAWN_REQUIRE_SYSTEMD_SCOPE</a> is passed, and
--   creation of the systemd user scope fails, the whole spawn will fail.
--   You can override the options used for the systemd user scope by
--   providing a systemd override file for 'vte-spawn-.scope' unit. See
--   man:systemd.unit(5) for further information.
--   
--   Note that if <i><tt>terminal</tt></i> has been destroyed before the
--   operation is called, <i><tt>callback</tt></i> will be called with a
--   <a>Nothing</a> <i><tt>terminal</tt></i>; you must not do anything in
--   the callback besides freeing any resources associated with
--   <i><tt>userData</tt></i>, but taking care not to access the
--   now-destroyed <a>Terminal</a>. Note that in this case, if spawning was
--   successful, the child process will be aborted automatically.
--   
--   Beginning with 0.52, sets PWD to <i><tt>workingDirectory</tt></i> in
--   order to preserve symlink components. The caller should also make sure
--   that symlinks were preserved while constructing the value of
--   <i><tt>workingDirectory</tt></i>, e.g. by using
--   <a>terminalGetCurrentDirectoryUri</a>, <a>getCurrentDir</a> or
--   <tt><i>get_current_dir_name()</i></tt>.
--   
--   <i>Since: 0.62</i>
terminalSpawnWithFdsAsync :: (HasCallStack, MonadIO m, IsTerminal a, IsCancellable b) => a -> [PtyFlags] -> Maybe Text -> [[Char]] -> Maybe [[Char]] -> Maybe [Int32] -> Maybe [Int32] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> Int32 -> Maybe b -> Maybe TerminalSpawnAsyncCallback -> m ()

-- | Clears the current selection.
terminalUnselectAll :: (HasCallStack, MonadIO m, IsTerminal a) => a -> m ()

-- | Watches <i><tt>childPid</tt></i>. When the process exists, the
--   <a>Terminal::childExited</a> signal will be called with the child's
--   exit status.
--   
--   Prior to calling this function, a <a>Pty</a> must have been set in
--   <i><tt>terminal</tt></i> using <a>terminalSetPty</a>. When the child
--   exits, the terminal's <a>Pty</a> will be set to <a>Nothing</a>.
--   
--   Note: <tt><i>g_child_watch_add()</i></tt> or <a>childWatchAdd</a> must
--   not have been called for <i><tt>childPid</tt></i>, nor a <a>Source</a>
--   for it been created with <a>childWatchSourceNew</a>.
--   
--   Note: when using the <a>spawnAsync</a> family of functions, the
--   <a>SpawnFlagsDoNotReapChild</a> flag MUST have been passed.
terminalWatchChild :: (HasCallStack, MonadIO m, IsTerminal a) => a -> Int32 -> m ()

-- | Write contents of the current contents of <i><tt>terminal</tt></i>
--   (including any scrollback history) to <i><tt>stream</tt></i> according
--   to <i><tt>flags</tt></i>.
--   
--   If <i><tt>cancellable</tt></i> is not <a>Nothing</a>, then the
--   operation can be cancelled by triggering the cancellable object from
--   another thread. If the operation was cancelled, the error
--   <a>IOErrorEnumCancelled</a> will be returned in <i><tt>error</tt></i>.
--   
--   This is a synchronous operation and will make the widget (and input
--   processing) during the write operation, which may take a long time
--   depending on scrollback history and <i><tt>stream</tt></i>
--   availability for writing.
terminalWriteContentsSync :: (HasCallStack, MonadIO m, IsTerminal a, IsOutputStream b, IsCancellable c) => a -> b -> WriteFlags -> Maybe c -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>allow-bold</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructTerminalAllowBold :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>allow-bold</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #allowBold
--   </pre>
getTerminalAllowBold :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>allow-bold</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #allowBold <a>:=</a> value ]
--   </pre>
setTerminalAllowBold :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>allow-hyperlink</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalAllowHyperlink :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>allow-hyperlink</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #allowHyperlink
--   </pre>
getTerminalAllowHyperlink :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>allow-hyperlink</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #allowHyperlink <a>:=</a> value ]
--   </pre>
setTerminalAllowHyperlink :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>audible-bell</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalAudibleBell :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>audible-bell</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #audibleBell
--   </pre>
getTerminalAudibleBell :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>audible-bell</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #audibleBell <a>:=</a> value ]
--   </pre>
setTerminalAudibleBell :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>backspace-binding</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalBackspaceBinding :: (IsTerminal o, MonadIO m) => EraseBinding -> m (GValueConstruct o)

-- | Get the value of the “<tt>backspace-binding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #backspaceBinding
--   </pre>
getTerminalBackspaceBinding :: (MonadIO m, IsTerminal o) => o -> m EraseBinding

-- | Set the value of the “<tt>backspace-binding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #backspaceBinding <a>:=</a> value ]
--   </pre>
setTerminalBackspaceBinding :: (MonadIO m, IsTerminal o) => o -> EraseBinding -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>bold-is-bright</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalBoldIsBright :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>bold-is-bright</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #boldIsBright
--   </pre>
getTerminalBoldIsBright :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>bold-is-bright</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #boldIsBright <a>:=</a> value ]
--   </pre>
setTerminalBoldIsBright :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cell-height-scale</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalCellHeightScale :: (IsTerminal o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “<tt>cell-height-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #cellHeightScale
--   </pre>
getTerminalCellHeightScale :: (MonadIO m, IsTerminal o) => o -> m Double

-- | Set the value of the “<tt>cell-height-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #cellHeightScale <a>:=</a> value ]
--   </pre>
setTerminalCellHeightScale :: (MonadIO m, IsTerminal o) => o -> Double -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cell-width-scale</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalCellWidthScale :: (IsTerminal o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “<tt>cell-width-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #cellWidthScale
--   </pre>
getTerminalCellWidthScale :: (MonadIO m, IsTerminal o) => o -> m Double

-- | Set the value of the “<tt>cell-width-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #cellWidthScale <a>:=</a> value ]
--   </pre>
setTerminalCellWidthScale :: (MonadIO m, IsTerminal o) => o -> Double -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cjk-ambiguous-width</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalCjkAmbiguousWidth :: (IsTerminal o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>cjk-ambiguous-width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #cjkAmbiguousWidth
--   </pre>
getTerminalCjkAmbiguousWidth :: (MonadIO m, IsTerminal o) => o -> m Int32

-- | Set the value of the “<tt>cjk-ambiguous-width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #cjkAmbiguousWidth <a>:=</a> value ]
--   </pre>
setTerminalCjkAmbiguousWidth :: (MonadIO m, IsTerminal o) => o -> Int32 -> m ()

-- | Set the value of the “<tt>context-menu</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #contextMenu
--   </pre>
clearTerminalContextMenu :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>context-menu</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalContextMenu :: (IsTerminal o, MonadIO m, IsMenu a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>context-menu</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #contextMenu
--   </pre>
getTerminalContextMenu :: (MonadIO m, IsTerminal o) => o -> m (Maybe Menu)

-- | Set the value of the “<tt>context-menu</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #contextMenu <a>:=</a> value ]
--   </pre>
setTerminalContextMenu :: (MonadIO m, IsTerminal o, IsMenu a) => o -> a -> m ()

-- | Set the value of the “<tt>context-menu-model</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #contextMenuModel
--   </pre>
clearTerminalContextMenuModel :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>context-menu-model</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalContextMenuModel :: (IsTerminal o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>context-menu-model</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #contextMenuModel
--   </pre>
getTerminalContextMenuModel :: (MonadIO m, IsTerminal o) => o -> m (Maybe MenuModel)

-- | Set the value of the “<tt>context-menu-model</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #contextMenuModel <a>:=</a> value ]
--   </pre>
setTerminalContextMenuModel :: (MonadIO m, IsTerminal o, IsMenuModel a) => o -> a -> m ()

-- | Get the value of the “<tt>current-directory-uri</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #currentDirectoryUri
--   </pre>
getTerminalCurrentDirectoryUri :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>current-file-uri</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #currentFileUri
--   </pre>
getTerminalCurrentFileUri :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cursor-blink-mode</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalCursorBlinkMode :: (IsTerminal o, MonadIO m) => CursorBlinkMode -> m (GValueConstruct o)

-- | Get the value of the “<tt>cursor-blink-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #cursorBlinkMode
--   </pre>
getTerminalCursorBlinkMode :: (MonadIO m, IsTerminal o) => o -> m CursorBlinkMode

-- | Set the value of the “<tt>cursor-blink-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #cursorBlinkMode <a>:=</a> value ]
--   </pre>
setTerminalCursorBlinkMode :: (MonadIO m, IsTerminal o) => o -> CursorBlinkMode -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cursor-shape</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalCursorShape :: (IsTerminal o, MonadIO m) => CursorShape -> m (GValueConstruct o)

-- | Get the value of the “<tt>cursor-shape</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #cursorShape
--   </pre>
getTerminalCursorShape :: (MonadIO m, IsTerminal o) => o -> m CursorShape

-- | Set the value of the “<tt>cursor-shape</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #cursorShape <a>:=</a> value ]
--   </pre>
setTerminalCursorShape :: (MonadIO m, IsTerminal o) => o -> CursorShape -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>delete-binding</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalDeleteBinding :: (IsTerminal o, MonadIO m) => EraseBinding -> m (GValueConstruct o)

-- | Get the value of the “<tt>delete-binding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #deleteBinding
--   </pre>
getTerminalDeleteBinding :: (MonadIO m, IsTerminal o) => o -> m EraseBinding

-- | Set the value of the “<tt>delete-binding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #deleteBinding <a>:=</a> value ]
--   </pre>
setTerminalDeleteBinding :: (MonadIO m, IsTerminal o) => o -> EraseBinding -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-a11y</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalEnableA11y :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-a11y</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableA11y
--   </pre>
getTerminalEnableA11y :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-a11y</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableA11y <a>:=</a> value ]
--   </pre>
setTerminalEnableA11y :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-bidi</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalEnableBidi :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-bidi</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableBidi
--   </pre>
getTerminalEnableBidi :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-bidi</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableBidi <a>:=</a> value ]
--   </pre>
setTerminalEnableBidi :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-fallback-scrolling</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalEnableFallbackScrolling :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-fallback-scrolling</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableFallbackScrolling
--   </pre>
getTerminalEnableFallbackScrolling :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-fallback-scrolling</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableFallbackScrolling <a>:=</a> value ]
--   </pre>
setTerminalEnableFallbackScrolling :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-legacy-osc777</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalEnableLegacyOsc777 :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-legacy-osc777</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableLegacyOsc777
--   </pre>
getTerminalEnableLegacyOsc777 :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-legacy-osc777</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableLegacyOsc777 <a>:=</a> value ]
--   </pre>
setTerminalEnableLegacyOsc777 :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-shaping</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalEnableShaping :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-shaping</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableShaping
--   </pre>
getTerminalEnableShaping :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-shaping</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableShaping <a>:=</a> value ]
--   </pre>
setTerminalEnableShaping :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>enable-sixel</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalEnableSixel :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>enable-sixel</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #enableSixel
--   </pre>
getTerminalEnableSixel :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>enable-sixel</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #enableSixel <a>:=</a> value ]
--   </pre>
setTerminalEnableSixel :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Set the value of the “<tt>encoding</tt>” property to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #encoding
--   </pre>
clearTerminalEncoding :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>encoding</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructTerminalEncoding :: (IsTerminal o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>encoding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #encoding
--   </pre>
getTerminalEncoding :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>encoding</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #encoding <a>:=</a> value ]
--   </pre>
setTerminalEncoding :: (MonadIO m, IsTerminal o) => o -> Text -> m ()

-- | Set the value of the “<tt>font-desc</tt>” property to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #fontDesc
--   </pre>
clearTerminalFontDesc :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>font-desc</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructTerminalFontDesc :: (IsTerminal o, MonadIO m) => FontDescription -> m (GValueConstruct o)

-- | Get the value of the “<tt>font-desc</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #fontDesc
--   </pre>
getTerminalFontDesc :: (MonadIO m, IsTerminal o) => o -> m (Maybe FontDescription)

-- | Set the value of the “<tt>font-desc</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #fontDesc <a>:=</a> value ]
--   </pre>
setTerminalFontDesc :: (MonadIO m, IsTerminal o) => o -> FontDescription -> m ()

-- | Set the value of the “<tt>font-options</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #fontOptions
--   </pre>
clearTerminalFontOptions :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>font-options</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalFontOptions :: (IsTerminal o, MonadIO m) => FontOptions -> m (GValueConstruct o)

-- | Get the value of the “<tt>font-options</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #fontOptions
--   </pre>
getTerminalFontOptions :: (MonadIO m, IsTerminal o) => o -> m (Maybe FontOptions)

-- | Set the value of the “<tt>font-options</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #fontOptions <a>:=</a> value ]
--   </pre>
setTerminalFontOptions :: (MonadIO m, IsTerminal o) => o -> FontOptions -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>font-scale</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructTerminalFontScale :: (IsTerminal o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “<tt>font-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #fontScale
--   </pre>
getTerminalFontScale :: (MonadIO m, IsTerminal o) => o -> m Double

-- | Set the value of the “<tt>font-scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #fontScale <a>:=</a> value ]
--   </pre>
setTerminalFontScale :: (MonadIO m, IsTerminal o) => o -> Double -> m ()

-- | Get the value of the “<tt>hyperlink-hover-uri</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #hyperlinkHoverUri
--   </pre>
getTerminalHyperlinkHoverUri :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>icon-title</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #iconTitle
--   </pre>
getTerminalIconTitle :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>input-enabled</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTerminalInputEnabled :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>input-enabled</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #inputEnabled
--   </pre>
getTerminalInputEnabled :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>input-enabled</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #inputEnabled <a>:=</a> value ]
--   </pre>
setTerminalInputEnabled :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>pointer-autohide</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalPointerAutohide :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>pointer-autohide</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #pointerAutohide
--   </pre>
getTerminalPointerAutohide :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>pointer-autohide</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #pointerAutohide <a>:=</a> value ]
--   </pre>
setTerminalPointerAutohide :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Set the value of the “<tt>pty</tt>” property to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #pty
--   </pre>
clearTerminalPty :: (MonadIO m, IsTerminal o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>pty</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTerminalPty :: (IsTerminal o, MonadIO m, IsPty a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>pty</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #pty
--   </pre>
getTerminalPty :: (MonadIO m, IsTerminal o) => o -> m (Maybe Pty)

-- | Set the value of the “<tt>pty</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #pty <a>:=</a> value ]
--   </pre>
setTerminalPty :: (MonadIO m, IsTerminal o, IsPty a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>rewrap-on-resize</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalRewrapOnResize :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>rewrap-on-resize</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #rewrapOnResize
--   </pre>
getTerminalRewrapOnResize :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>rewrap-on-resize</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #rewrapOnResize <a>:=</a> value ]
--   </pre>
setTerminalRewrapOnResize :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>scroll-on-insert</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalScrollOnInsert :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>scroll-on-insert</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #scrollOnInsert
--   </pre>
getTerminalScrollOnInsert :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>scroll-on-insert</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #scrollOnInsert <a>:=</a> value ]
--   </pre>
setTerminalScrollOnInsert :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>scroll-on-keystroke</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalScrollOnKeystroke :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>scroll-on-keystroke</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #scrollOnKeystroke
--   </pre>
getTerminalScrollOnKeystroke :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>scroll-on-keystroke</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #scrollOnKeystroke <a>:=</a> value ]
--   </pre>
setTerminalScrollOnKeystroke :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>scroll-on-output</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalScrollOnOutput :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>scroll-on-output</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #scrollOnOutput
--   </pre>
getTerminalScrollOnOutput :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>scroll-on-output</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #scrollOnOutput <a>:=</a> value ]
--   </pre>
setTerminalScrollOnOutput :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>scroll-unit-is-pixels</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructTerminalScrollUnitIsPixels :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>scroll-unit-is-pixels</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #scrollUnitIsPixels
--   </pre>
getTerminalScrollUnitIsPixels :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>scroll-unit-is-pixels</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #scrollUnitIsPixels <a>:=</a> value ]
--   </pre>
setTerminalScrollUnitIsPixels :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>scrollback-lines</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalScrollbackLines :: (IsTerminal o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>scrollback-lines</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #scrollbackLines
--   </pre>
getTerminalScrollbackLines :: (MonadIO m, IsTerminal o) => o -> m Word32

-- | Set the value of the “<tt>scrollback-lines</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #scrollbackLines <a>:=</a> value ]
--   </pre>
setTerminalScrollbackLines :: (MonadIO m, IsTerminal o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>text-blink-mode</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructTerminalTextBlinkMode :: (IsTerminal o, MonadIO m) => TextBlinkMode -> m (GValueConstruct o)

-- | Get the value of the “<tt>text-blink-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #textBlinkMode
--   </pre>
getTerminalTextBlinkMode :: (MonadIO m, IsTerminal o) => o -> m TextBlinkMode

-- | Set the value of the “<tt>text-blink-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #textBlinkMode <a>:=</a> value ]
--   </pre>
setTerminalTextBlinkMode :: (MonadIO m, IsTerminal o) => o -> TextBlinkMode -> m ()

-- | Get the value of the “<tt>window-title</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #windowTitle
--   </pre>
getTerminalWindowTitle :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>word-char-exceptions</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #wordCharExceptions
--   </pre>
getTerminalWordCharExceptions :: (MonadIO m, IsTerminal o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>xalign</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTerminalXalign :: (IsTerminal o, MonadIO m) => Align -> m (GValueConstruct o)

-- | Get the value of the “<tt>xalign</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #xalign
--   </pre>
getTerminalXalign :: (MonadIO m, IsTerminal o) => o -> m Align

-- | Set the value of the “<tt>xalign</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #xalign <a>:=</a> value ]
--   </pre>
setTerminalXalign :: (MonadIO m, IsTerminal o) => o -> Align -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>xfill</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTerminalXfill :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>xfill</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #xfill
--   </pre>
getTerminalXfill :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>xfill</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #xfill <a>:=</a> value ]
--   </pre>
setTerminalXfill :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>yalign</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTerminalYalign :: (IsTerminal o, MonadIO m) => Align -> m (GValueConstruct o)

-- | Get the value of the “<tt>yalign</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #yalign
--   </pre>
getTerminalYalign :: (MonadIO m, IsTerminal o) => o -> m Align

-- | Set the value of the “<tt>yalign</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #yalign <a>:=</a> value ]
--   </pre>
setTerminalYalign :: (MonadIO m, IsTerminal o) => o -> Align -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>yfill</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTerminalYfill :: (IsTerminal o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>yfill</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> terminal #yfill
--   </pre>
getTerminalYfill :: (MonadIO m, IsTerminal o) => o -> m Bool

-- | Set the value of the “<tt>yfill</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> terminal [ #yfill <a>:=</a> value ]
--   </pre>
setTerminalYfill :: (MonadIO m, IsTerminal o) => o -> Bool -> m ()

-- | This signal is emitted when the a child sends a bell request to the
--   terminal.
type TerminalBellCallback = IO ()

-- | Connect a signal handler for the <a>bell</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #bell callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalBell :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalBellCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>bell</a> signal, to be run before
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>on</a> terminal #bell callback
--   </pre>
onTerminalBell :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalBellCallback) -> m SignalHandlerId

-- | Emitted whenever the cell size changes, e.g. due to a change in font,
--   font-scale or cell-width/height-scale.
--   
--   Note that this signal should rather be called "cell-size-changed".
type TerminalCharSizeChangedCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the <a>charSizeChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #charSizeChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCharSizeChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCharSizeChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>charSizeChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #charSizeChanged callback
--   </pre>
onTerminalCharSizeChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCharSizeChangedCallback) -> m SignalHandlerId

-- | This signal is emitted when the terminal detects that a child watched
--   using <a>terminalWatchChild</a> has exited.
type TerminalChildExitedCallback = Int32 -> IO ()

-- | Connect a signal handler for the <a>childExited</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #childExited callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalChildExited :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalChildExitedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>childExited</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #childExited callback
--   </pre>
onTerminalChildExited :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalChildExitedCallback) -> m SignalHandlerId

-- | Emitted whenever the terminal receives input from the user and
--   prepares to send it to the child process.
type TerminalCommitCallback = Text -> Word32 -> IO ()

-- | Connect a signal handler for the <a>commit</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #commit callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCommit :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCommitCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>commit</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #commit callback
--   </pre>
onTerminalCommit :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCommitCallback) -> m SignalHandlerId

-- | Emitted whenever the visible appearance of the terminal has changed.
--   Used primarily by <tt><i>VteTerminalAccessible</i></tt>.
type TerminalContentsChangedCallback = IO ()

-- | Connect a signal handler for the <a>contentsChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #contentsChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalContentsChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalContentsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>contentsChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #contentsChanged callback
--   </pre>
onTerminalContentsChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalContentsChangedCallback) -> m SignalHandlerId

-- | Emitted whenever <a>terminalCopyClipboard</a> is called.
type TerminalCopyClipboardCallback = IO ()

-- | Connect a signal handler for the <a>copyClipboard</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #copyClipboard callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCopyClipboard :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCopyClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>copyClipboard</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #copyClipboard callback
--   </pre>
onTerminalCopyClipboard :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCopyClipboardCallback) -> m SignalHandlerId

-- | Emitted when the current directory URI is modified.

-- | <i>Deprecated: (Since version 0.78)Use the
--   <a>Terminal</a>:<tt><i>termprop-changed</i></tt> signalfor the
--   <a>TERMPROP_CURRENT_DIRECTORY_URI</a> termprop.</i>
type TerminalCurrentDirectoryUriChangedCallback = IO ()

-- | Connect a signal handler for the <a>currentDirectoryUriChanged</a>
--   signal, to be run after the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #currentDirectoryUriChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCurrentDirectoryUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCurrentDirectoryUriChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>currentDirectoryUriChanged</a>
--   signal, to be run before the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #currentDirectoryUriChanged callback
--   </pre>
onTerminalCurrentDirectoryUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCurrentDirectoryUriChangedCallback) -> m SignalHandlerId

-- | Emitted when the current file URI is modified.

-- | <i>Deprecated: (Since version 0.78)Use the
--   <a>Terminal</a>:<tt><i>termprop-changed</i></tt> signalfor the
--   <a>TERMPROP_CURRENT_FILE_URI</a> termprop.</i>
type TerminalCurrentFileUriChangedCallback = IO ()

-- | Connect a signal handler for the <a>currentFileUriChanged</a> signal,
--   to be run after the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #currentFileUriChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCurrentFileUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCurrentFileUriChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>currentFileUriChanged</a> signal,
--   to be run before the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #currentFileUriChanged callback
--   </pre>
onTerminalCurrentFileUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCurrentFileUriChangedCallback) -> m SignalHandlerId

-- | Emitted whenever the cursor moves to a new character cell. Used
--   primarily by <tt><i>VteTerminalAccessible</i></tt>.
type TerminalCursorMovedCallback = IO ()

-- | Connect a signal handler for the <a>cursorMoved</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #cursorMoved callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalCursorMoved :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCursorMovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>cursorMoved</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #cursorMoved callback
--   </pre>
onTerminalCursorMoved :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalCursorMovedCallback) -> m SignalHandlerId

-- | Emitted when the user hits the '-' key while holding the Control key.
type TerminalDecreaseFontSizeCallback = IO ()

-- | Connect a signal handler for the <a>decreaseFontSize</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #decreaseFontSize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalDecreaseFontSize :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalDecreaseFontSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>decreaseFontSize</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #decreaseFontSize callback
--   </pre>
onTerminalDecreaseFontSize :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalDecreaseFontSizeCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalDeiconifyWindowCallback = IO ()

-- | Connect a signal handler for the <a>deiconifyWindow</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #deiconifyWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalDeiconifyWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalDeiconifyWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>deiconifyWindow</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #deiconifyWindow callback
--   </pre>
onTerminalDeiconifyWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalDeiconifyWindowCallback) -> m SignalHandlerId

-- | Emitted whenever the terminal's current encoding has changed.
--   
--   Note: support for non-UTF-8 is deprecated.
type TerminalEncodingChangedCallback = IO ()

-- | Connect a signal handler for the <a>encodingChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #encodingChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalEncodingChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalEncodingChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>encodingChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #encodingChanged callback
--   </pre>
onTerminalEncodingChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalEncodingChangedCallback) -> m SignalHandlerId

-- | Emitted when the terminal receives an end-of-file from a child which
--   is running in the terminal. This signal is frequently (but not always)
--   emitted with a <a>Terminal::childExited</a> signal.
type TerminalEofCallback = IO ()

-- | Connect a signal handler for the <a>eof</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #eof callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalEof :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalEofCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>eof</a> signal, to be run before
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>on</a> terminal #eof callback
--   </pre>
onTerminalEof :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalEofCallback) -> m SignalHandlerId

-- | Emitted when the hovered hyperlink changes.
--   
--   <i><tt>uri</tt></i> and <i><tt>bbox</tt></i> are owned by VTE, must
--   not be modified, and might change after the signal handlers returns.
--   
--   The signal is not re-emitted when the bounding box changes for the
--   same hyperlink. This might change in a future VTE version without
--   notice.
--   
--   <i>Since: 0.50</i>
type TerminalHyperlinkHoverUriChangedCallback = Text -> Rectangle -> IO ()

-- | Connect a signal handler for the <a>hyperlinkHoverUriChanged</a>
--   signal, to be run after the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #hyperlinkHoverUriChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalHyperlinkHoverUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalHyperlinkHoverUriChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>hyperlinkHoverUriChanged</a>
--   signal, to be run before the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #hyperlinkHoverUriChanged callback
--   </pre>
onTerminalHyperlinkHoverUriChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalHyperlinkHoverUriChangedCallback) -> m SignalHandlerId

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.54)This signal is never emitted.</i>
type TerminalIconTitleChangedCallback = IO ()

-- | Connect a signal handler for the <a>iconTitleChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #iconTitleChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalIconTitleChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIconTitleChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>iconTitleChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #iconTitleChanged callback
--   </pre>
onTerminalIconTitleChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIconTitleChangedCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalIconifyWindowCallback = IO ()

-- | Connect a signal handler for the <a>iconifyWindow</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #iconifyWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalIconifyWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIconifyWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>iconifyWindow</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #iconifyWindow callback
--   </pre>
onTerminalIconifyWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIconifyWindowCallback) -> m SignalHandlerId

-- | Emitted when the user hits the '+' key while holding the Control key.
type TerminalIncreaseFontSizeCallback = IO ()

-- | Connect a signal handler for the <a>increaseFontSize</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #increaseFontSize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalIncreaseFontSize :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIncreaseFontSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>increaseFontSize</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #increaseFontSize callback
--   </pre>
onTerminalIncreaseFontSize :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalIncreaseFontSizeCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalLowerWindowCallback = IO ()

-- | Connect a signal handler for the <a>lowerWindow</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #lowerWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalLowerWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalLowerWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>lowerWindow</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #lowerWindow callback
--   </pre>
onTerminalLowerWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalLowerWindowCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalMaximizeWindowCallback = IO ()

-- | Connect a signal handler for the <a>maximizeWindow</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #maximizeWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalMaximizeWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalMaximizeWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>maximizeWindow</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #maximizeWindow callback
--   </pre>
onTerminalMaximizeWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalMaximizeWindowCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalMoveWindowCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the <a>moveWindow</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #moveWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalMoveWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalMoveWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>moveWindow</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #moveWindow callback
--   </pre>
onTerminalMoveWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalMoveWindowCallback) -> m SignalHandlerId

-- | Emitted whenever <a>terminalPasteClipboard</a> is called.
type TerminalPasteClipboardCallback = IO ()

-- | Connect a signal handler for the <a>pasteClipboard</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #pasteClipboard callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalPasteClipboard :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalPasteClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>pasteClipboard</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #pasteClipboard callback
--   </pre>
onTerminalPasteClipboard :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalPasteClipboardCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalRaiseWindowCallback = IO ()

-- | Connect a signal handler for the <a>raiseWindow</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #raiseWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalRaiseWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRaiseWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>raiseWindow</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #raiseWindow callback
--   </pre>
onTerminalRaiseWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRaiseWindowCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalRefreshWindowCallback = IO ()

-- | Connect a signal handler for the <a>refreshWindow</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #refreshWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalRefreshWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRefreshWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>refreshWindow</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #refreshWindow callback
--   </pre>
onTerminalRefreshWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRefreshWindowCallback) -> m SignalHandlerId

-- | Emitted at the child application's request.
type TerminalResizeWindowCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the <a>resizeWindow</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #resizeWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalResizeWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalResizeWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>resizeWindow</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #resizeWindow callback
--   </pre>
onTerminalResizeWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalResizeWindowCallback) -> m SignalHandlerId

-- | Never emitted.

-- | <i>Deprecated: (Since version 0.60)</i>
type TerminalRestoreWindowCallback = IO ()

-- | Connect a signal handler for the <a>restoreWindow</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #restoreWindow callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalRestoreWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRestoreWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>restoreWindow</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #restoreWindow callback
--   </pre>
onTerminalRestoreWindow :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalRestoreWindowCallback) -> m SignalHandlerId

-- | Emitted whenever the contents of terminal's selection changes.
type TerminalSelectionChangedCallback = IO ()

-- | Connect a signal handler for the <a>selectionChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #selectionChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalSelectionChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>selectionChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #selectionChanged callback
--   </pre>
onTerminalSelectionChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalSelectionChangedCallback) -> m SignalHandlerId

-- | Emitted with non-<a>Nothing</a> context before
--   <i><tt>terminal</tt></i> shows a context menu. The handler may set
--   either a menu model using <a>terminalSetContextMenuModel</a>, or a
--   menu using <a>terminalSetContextMenu</a>, which will then be used as
--   context menu, or keep a previously set context menu or context menu
--   model, but update the menu and/or its <a>Action</a>:<tt><i>s</i></tt>
--   visibility and sensitivity. If neither a menu model nor a menu are
--   set, a context menu will not be shown.
--   
--   Note that <i><tt>context</tt></i> is only valid during the signal
--   emission; you may not retain it to call methods on it afterwards.
--   
--   Also emitted with <a>Nothing</a> context after the context menu has
--   been dismissed.
type TerminalSetupContextMenuCallback = Maybe EventContext -> IO ()

-- | Connect a signal handler for the <a>setupContextMenu</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #setupContextMenu callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalSetupContextMenu :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalSetupContextMenuCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>setupContextMenu</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #setupContextMenu callback
--   </pre>
onTerminalSetupContextMenu :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalSetupContextMenuCallback) -> m SignalHandlerId

-- | The "termprop-changed" signal is emitted when a termprop has changed
--   or been reset.
--   
--   The handler may use the vte_terminal_get_termprop_*() functions (and
--   their by-ID variants), to retrieve the value of any termprop (not just
--   <i><tt>name</tt></i>); but it must *not* call *any* other API on
--   <i><tt>terminal</tt></i>, including API of its parent classes.
--   
--   This signal supports detailed connections, so e.g. subscribing to
--   "termprop-changed<a>name</a>" only runs the callback when the termprop
--   "name" has changed.
--   
--   <i>Since: 0.78</i>
type TerminalTermpropChangedCallback = Text -> IO ()

-- | Connect a signal handler for the <a>termpropChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #termpropChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>termprop-changed::detail</tt>” instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTermpropChanged :: (IsTerminal a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TerminalTermpropChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>termpropChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #termpropChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>termprop-changed::detail</tt>” instead.
onTerminalTermpropChanged :: (IsTerminal a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TerminalTermpropChangedCallback) -> m SignalHandlerId

-- | Emitted when termprops have changed. <i><tt>props</tt></i> is an array
--   containing the IDs of the terminal properties that may have changed
--   since the last emission of this signal, in an undefined order. Note
--   that emission of this signal is delayed from the receipt of the OSC
--   sequences, and a termprop may have been changed more than once
--   inbetween signal emissions, but only the value set last is
--   retrievable.
--   
--   The default handler for this signal emits the "termprop-changed"
--   signal for each changed property. Returning <a>True</a> from a handler
--   running before the default will prevent this.
--   
--   The handler may use the vte_terminal_get_termprop_*() functions (and
--   their by-ID variants), to retrieve the value of any termprop, as well
--   as call <tt><i>vte_terminal_reset_termprop()</i></tt> (and its by-ID
--   variant) to reset any termprop, or emit the
--   VteTerminal<a>termpropChanged</a> signal; but it must *not* call *any*
--   other API on <i><tt>terminal</tt></i>, including API of its parent
--   classes.
--   
--   <i>Since: 0.78</i>
type TerminalTermpropsChangedCallback = [Int32] -> IO Bool

-- | Connect a signal handler for the <a>termpropsChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #termpropsChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTermpropsChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTermpropsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>termpropsChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #termpropsChanged callback
--   </pre>
onTerminalTermpropsChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTermpropsChangedCallback) -> m SignalHandlerId

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.66)This signal is never emitted.</i>
type TerminalTextDeletedCallback = IO ()

-- | Connect a signal handler for the <a>textDeleted</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #textDeleted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTextDeleted :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextDeletedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textDeleted</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #textDeleted callback
--   </pre>
onTerminalTextDeleted :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextDeletedCallback) -> m SignalHandlerId

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.66)This signal is never emitted.</i>
type TerminalTextInsertedCallback = IO ()

-- | Connect a signal handler for the <a>textInserted</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #textInserted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTextInserted :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextInsertedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textInserted</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #textInserted callback
--   </pre>
onTerminalTextInserted :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextInsertedCallback) -> m SignalHandlerId

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.66)This signal is never emitted.</i>
type TerminalTextModifiedCallback = IO ()

-- | Connect a signal handler for the <a>textModified</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #textModified callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTextModified :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextModifiedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textModified</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #textModified callback
--   </pre>
onTerminalTextModified :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextModifiedCallback) -> m SignalHandlerId

-- | <i>No description available in the introspection data.</i>

-- | <i>Deprecated: (Since version 0.66)This signal is never emitted.</i>
type TerminalTextScrolledCallback = Int32 -> IO ()

-- | Connect a signal handler for the <a>textScrolled</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> terminal #textScrolled callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalTextScrolled :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextScrolledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textScrolled</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #textScrolled callback
--   </pre>
onTerminalTextScrolled :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalTextScrolledCallback) -> m SignalHandlerId

-- | Emitted when the <a>Terminal:windowTitle</a> property is modified.

-- | <i>Deprecated: (Since version 0.78)Use the
--   <a>Terminal</a>:<tt><i>termprop-changed</i></tt> signalfor the
--   <a>TERMPROP_XTERM_TITLE</a> termprop.</i>
type TerminalWindowTitleChangedCallback = IO ()

-- | Connect a signal handler for the <a>windowTitleChanged</a> signal, to
--   be run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> terminal #windowTitleChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTerminalWindowTitleChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalWindowTitleChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>windowTitleChanged</a> signal, to
--   be run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> terminal #windowTitleChanged callback
--   </pre>
onTerminalWindowTitleChanged :: (IsTerminal a, MonadIO m) => a -> ((?self :: a) => TerminalWindowTitleChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Vte.Objects.Terminal.Terminal
instance Data.GI.Base.BasicTypes.GObject GI.Vte.Objects.Terminal.Terminal
instance Data.GI.Base.Overloading.HasParentTypes GI.Vte.Objects.Terminal.Terminal
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Vte.Objects.Terminal.Terminal)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Vte.Objects.Terminal.Terminal o) => GI.Vte.Objects.Terminal.IsTerminal o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Vte.Objects.Terminal.Terminal
instance Data.GI.Base.BasicTypes.TypedObject GI.Vte.Objects.Terminal.Terminal


module GI.Vte.Objects


module GI.Vte
