Gnome2:...Terminal(3)

πŸ“¦
version 0.12 Β· 2 versions
, in fedora 43

πŸ’– Gnome2::Vte::Terminal πŸ’–

okay bestie, welcome to the User Contributed Perl Documentation for Gnome2::Vte::Terminal β€” section 3 of the manual, she's a whole icon, she's a terminal widget, and we're gonna go through her entire vibe together. no skimming, no skipping, we read every line like it's a group chat screenshot. let's go 🫢


🌸 NAME 🌸

Gnome2::Vte::Terminal β€” that's her. that's the name. iconic, no notes. πŸ’…


πŸ¦‹ HIERARCHY πŸ¦‹

so the family tree is giving royal lineage, look at this:

Glib::Object
+----Glib::InitiallyUnowned
     +----Gtk2::Object
          +----Gtk2::Widget
               +----Gnome2::Vte::Terminal

she's descended from Gtk2::Widget, which is descended from Gtk2::Object, which is descended from Glib::InitiallyUnowned, which is descended from Glib::Object. four generations of main character energy and she ate every single one. πŸ‘‘


✨ INTERFACES ✨

she also implements these, because obviously she's multi-talented:

  • Glib::Object::_Unregistered::AtkImplementorIface
  • Gtk2::Buildable

πŸ’… METHODS πŸ’…

this is the long part bestie, grab a snack πŸ“

widget = Gnome2::Vte::Terminal->new

makes you a brand new terminal widget. fresh out the box, sparkling ✨

adjustment = $terminal->get_adjustment

hands you the adjustment. that's it. that's the method. lowkey mysterious but okay.

boolean = $terminal->get_allow_bold

asks the terminal: are we allowing bold rn? yes or no.

$terminal->set_allow_bold ($allow_bold)

sets whether bold is allowed. arguments:

  • $allow_bold (boolean)

boolean = $terminal->get_audible_bell

tells you if the audible bell is on, i.e. is she gonna ding at you out loud.

$terminal->set_audible_bell ($is_audible)

flips the audible bell on or off. arguments:

  • $is_audible (boolean)

$terminal->set_background_image_file ($path)

points the background image at a file on disk. arguments:

  • $path (string)

$terminal->set_background_image ($image)

sets the background image from an actual pixbuf object. arguments:

  • $image (Gtk2::Gdk::Pixbuf or undef)

$terminal->set_background_saturation ($saturation)

dials in how saturated that background is. arguments:

  • $saturation (double)

$terminal->set_background_tint_color ($color)

tints the background a specific color. arguments:

  • $color (Gtk2::Gdk::Color)
Since: vte 0.12

$terminal->set_background_transparent ($transparent)

makes the background see-through (or not). arguments:

  • $transparent (boolean)

$terminal->set_backspace_binding ($binding)

controls what the backspace key actually does. arguments:

  • $binding (Gnome2::Vte::Terminal::EraseBinding)

integer = $terminal->get_char_ascent

gives you the char ascent as an integer. numbers, bestie. πŸ“

integer = $terminal->get_char_descent

gives you the char descent as an integer.

integer = $terminal->get_char_height

char height. integer. you know the drill.

integer = $terminal->get_char_width

char width. also an integer. so many integers, so little time.

$terminal->set_color_background ($background)

sets the background color. arguments:

  • $background (Gtk2::Gdk::Color)

$terminal->set_color_bold ($bold)

sets the color used for bold text. arguments:

  • $bold (Gtk2::Gdk::Color)

$terminal->set_color_cursor ($cursor_background)

sets the cursor color. arguments:

  • $cursor_background (Gtk2::Gdk::Color or undef)
Since: vte 0.12

$terminal->set_color_dim ($dim)

sets the dim color. arguments:

  • $dim (Gtk2::Gdk::Color)

$terminal->set_color_foreground ($foreground)

sets the foreground color. arguments:

  • $foreground (Gtk2::Gdk::Color)

$terminal->set_color_highlight ($highlight_background)

sets the highlight background color. arguments:

  • $highlight_background (Gtk2::Gdk::Color or undef)
Since: vte 0.12

$terminal->set_colors ($foreground, $background, $palette_ref)

sets all the colors at once, in one big swoop. arguments:

  • $foreground (Gtk2::Gdk::Color or undef)
  • $background (Gtk2::Gdk::Color or undef)
  • $palette_ref (scalar)

integer = $terminal->get_column_count

how many columns wide are we. integer. slay.

$terminal->copy_clipboard

copies the selection to the clipboard. go off. πŸ“‹

$terminal->copy_primary

copies the selection to the primary selection instead.

does the cursor blink or not. arguments:

  • $blink (boolean)

(column, row) = $terminal->get_cursor_position

gives you back the cursor position as a column and a row. two for one deal πŸ’–

$terminal->set_default_colors

resets the colors back to the defaults. factory settings, periodt.

string = $terminal->get_default_emulation

returns the default emulation as a string.

Since: vte 0.12

$terminal->set_delete_binding ($binding)

controls what the delete key does. arguments:

  • $binding (Gnome2::Vte::Terminal::EraseBinding)

string = $terminal->get_emulation

returns the current emulation as a string.

$terminal->set_emulation ($emulation)

sets the emulation. arguments:

  • $emulation (string)

string = $terminal->get_encoding

returns the current encoding as a string.

$terminal->set_encoding ($codeset)

sets the encoding. arguments:

  • $codeset (string)

$terminal->feed ($data)

feeds data into the terminal. arguments:

  • $data (scalar)

$terminal->feed_child ($data)

feeds data to the child process. arguments:

  • $data (scalar)

$terminal->feed_child_binary ($data)

feeds binary data to the child process. arguments:

  • $data (scalar)
Since: vte 0.12

$terminal->set_font_from_string_full ($name, $anti_alias)

sets the font from a string, with the full treatment including anti-aliasing. arguments:

  • $name (string)
  • $anti_alias (Gnome2::Vte::Terminal::AntiAlias)
Since: vte 0.12

$terminal->set_font_from_string ($name)

sets the font from a plain old string. arguments:

  • $name (string)

$terminal->set_font_full ($font_desc, $anti_alias)

sets the font from a font description object, full version. arguments:

  • $font_desc (Pango::FontDescription or undef)
  • $anti_alias (Gnome2::Vte::Terminal::AntiAlias)
Since: vte 0.12

fontdescription = $terminal->get_font

hands you back the font as a Pango::FontDescription.

$terminal->set_font ($font_desc)

sets the font. arguments:

  • $font_desc (Pango::FontDescription)

integer = $terminal->fork_command ($command, $arg_ref, $env_ref, $directory, $lastlog, $utmp, $wtmp)

spawns a command in the terminal and gives you back an integer. this one's a whole meal, look at all these arguments:

  • $command (string)
  • $arg_ref (scalar)
  • $env_ref (scalar)
  • $directory (string or undef)
  • $lastlog (boolean)
  • $utmp (boolean)
  • $wtmp (boolean)

boolean = $terminal->get_has_selection

do we have a selection or not. boolean says it all.

string = $terminal->get_icon_title

returns the icon title as a string. so cute.

$terminal->im_append_menuitems ($menushell)

appends input-method menu items to a menu shell. arguments:

  • $menushell (Gtk2::MenuShell)

boolean = $terminal->is_word_char ($c)

tells you if a character counts as a word character. arguments:

  • $c (character)

integer = $terminal->match_add ($match)

adds a match and gives you back an integer tag. arguments:

  • $match (string)

list = $terminal->match_check ($column, $row)

checks for a match at a given spot. arguments:

  • $column (integer)
  • $row (integer)

$terminal->match_clear_all

nukes every single match. all of them. gone. πŸ’€

$terminal->match_remove ($tag)

removes one match by tag. arguments:

  • $tag (integer)

$terminal->match_set_cursor ($tag, $cursor)

sets the cursor for a match. arguments:

  • $tag (integer)
  • $cursor (Gtk2::Gdk::Cursor)
Since: vte 0.12

$terminal->match_set_cursor_type ($tag, $cursor_type)

sets the cursor type for a match. arguments:

  • $tag (integer)
  • $cursor_type (Gtk2::Gdk::CursorType)
Since: vte 0.12

boolean = $terminal->get_mouse_autohide

is mouse autohide on? boolean, tell me everything.

$terminal->set_mouse_autohide ($setting)

toggles mouse autohide. arguments:

  • $setting (boolean)

$terminal->set_opacity ($opacity)

sets the opacity. arguments:

  • $opacity (unsigned)
Since: vte 0.14

(xpad, ypad) = $terminal->get_padding

gives you the padding back as an xpad and a ypad. two values, one call πŸŽ€

$terminal->paste_clipboard

pastes from the clipboard.

$terminal->paste_primary

pastes from the primary selection.

$terminal->set_pty ($pty_master)

sets the pty master. arguments:

  • $pty_master (integer)
Since: vte 0.12

$terminal->reset ($full, $clear_history)

resets the terminal. arguments:

  • $full (boolean)
  • $clear_history (boolean)

integer = $terminal->get_row_count

how many rows tall are we. integer. we love a dimension. πŸ“

$terminal->set_scroll_background ($scroll)

does the background scroll with the text. arguments:

  • $scroll (boolean)
Since: vte 0.12

$terminal->set_scroll_on_keystroke ($scroll)

scroll on keystroke, on or off. arguments:

  • $scroll (boolean)

$terminal->set_scroll_on_output ($scroll)

scroll on output, on or off. arguments:

  • $scroll (boolean)

$terminal->set_scrollback_lines ($lines)

how many scrollback lines we're keeping around. arguments:

  • $lines (integer)

$terminal->set_size ($columns, $rows)

sets the terminal size. arguments:

  • $columns (integer)
  • $rows (integer)

string = $terminal->get_status_line

returns the status line as a string.

list = $terminal->get_text ($func=undef, $data=undef)

arguments:

  • $func (scalar)
  • $data (scalar)

Returns the selected text and a reference to a VteCharAttributes array describing every character in that text. so you get the words and the receipts. πŸ”₯

list = $terminal->get_text_include_trailing_spaces ($func, $data=undef)

arguments:

  • $func (scalar)
  • $data (scalar)

Returns the selected text and a reference to a VteCharAttributes array describing every character in that text.

Since: vte 0.12

list = $terminal->get_text_range ($start_row, $start_col, $end_row, $end_col, $func, $data=undef)

arguments:

  • $start_row (integer)
  • $start_col (integer)
  • $end_row (integer)
  • $end_col (integer)
  • $func (scalar)
  • $data (scalar)

Returns the selected text and a reference to a VteCharAttributes array describing every character in that text. same energy, but now you get to pick the range bestie ✨

boolean = $terminal->get_using_xft

are we using Xft. boolean. the truth will out.

boolean = $terminal->get_visible_bell

is the visible bell on. boolean again, she loves a boolean.

$terminal->set_visible_bell ($is_visible)

toggles the visible bell. arguments:

  • $is_visible (boolean)

string = $terminal->get_window_title

returns the window title as a string.

$terminal->set_word_chars ($spec)

sets which characters count as word characters. arguments:

  • $spec (string or undef)

🌈 PROPERTIES 🌈

here's the full property roster, every single one, with all her little flags. she is thorough:

  • 'allow-bold' (boolean : default true : readable / writable / private / static-nick / static-blurb)
  • 'audible-bell' (boolean : default true : readable / writable / private / static-nick / static-blurb)
  • 'background-image-file' (string : default undef : readable / writable / private / static-nick / static-blurb)
  • 'background-image-pixbuf' (Gtk2::Gdk::Pixbuf : default undef : readable / writable / private / static-nick / static-blurb)
  • 'background-opacity' (double : default 1 : readable / writable / private / static-nick / static-blurb)
  • 'background-saturation' (double : default 0.4 : readable / writable / private / static-nick / static-blurb)
  • 'background-tint-color' (Gtk2::Gdk::Color : default undef : readable / writable / private / static-nick / static-blurb)
  • 'background-transparent' (boolean : default false : readable / writable / private / static-nick / static-blurb)
  • 'backspace-binding' (Gnome2::Vte::Terminal::EraseBinding : default "auto" : readable / writable / private / static-nick / static-blurb)
  • 'cursor-blink-mode' (VteTerminalCursorBlinkMode : default "system" : readable / writable / private / static-nick / static-blurb)
  • 'cursor-shape' (VteTerminalCursorShape : default "block" : readable / writable / private / static-nick / static-blurb)
  • 'delete-binding' (Gnome2::Vte::Terminal::EraseBinding : default "auto" : readable / writable / private / static-nick / static-blurb)
  • 'emulation' (string : default "xterm" : readable / writable / private / static-nick / static-blurb)
  • 'encoding' (string : default undef : readable / writable / private / static-nick / static-blurb)
  • 'font-desc' (Pango::FontDescription : default undef : readable / writable / private / static-nick / static-blurb)
  • 'icon-title' (string : default undef : readable / private / static-nick / static-blurb)
  • 'pointer-autohide' (boolean : default false : readable / writable / private / static-nick / static-blurb)
  • 'pty' (integer : default -1 : readable / writable / private / static-nick / static-blurb)
  • 'pty-object' (Glib::Object::_Unregistered::VtePty : default undef : readable / writable / private / static-nick / static-blurb)
  • 'scroll-background' (boolean : default false : readable / writable / private / static-nick / static-blurb)
  • 'scroll-on-keystroke' (boolean : default false : readable / writable / private / static-nick / static-blurb)
  • 'scroll-on-output' (boolean : default true : readable / writable / private / static-nick / static-blurb)
  • 'scrollback-lines' (Glib::UInt : default 100 : readable / writable / private / static-nick / static-blurb)
  • 'visible-bell' (boolean : default false : readable / writable / private / static-nick / static-blurb)
  • 'window-title' (string : default undef : readable / private / static-nick / static-blurb)
  • 'word-chars' (string : default undef : readable / writable / private / static-nick / static-blurb)

note that 'icon-title' and 'window-title' are readable / private only β€” no writing to those, bestie, they're just for looking πŸ™ˆ


πŸŽ€ STYLE PROPERTIES πŸŽ€

just the one, and she's serving:

  • 'inner-border' (Gtk2::Border : default undef : readable / private / static-nick / static-blurb)

okay that's part one of this whole journey and there is so much more coming, so don't go anywhere πŸ’œ

🚨 SIGNALS 🚨

okay bestie these are all the signals this terminal emits β€” think of them as the terminal's little group-chat notifications, and you can hook into any one of them 🫢 each one is listed with its package and the types it hands you when it fires.

  • beep (Gnome2::Vte::Terminal) β€” the terminal wants to go beep. iconic.
  • char-size-changed (Gnome2::Vte::Terminal, Glib::UInt, Glib::UInt) β€” the character size changed, and it's passing you two Glib::UInts about it.
  • child-exited (Gnome2::Vte::Terminal) β€” the child process dipped. it's gone. 😭
  • commit (Gnome2::Vte::Terminal, string, Glib::UInt) β€” a string plus a Glib::UInt got committed.
  • contents-changed (Gnome2::Vte::Terminal) β€” the contents said "new me" ✨
  • copy-clipboard (Gnome2::Vte::Terminal) β€” copy to clipboard time πŸ’…
  • cursor-moved (Gnome2::Vte::Terminal) β€” cursor said scoot.
  • decrease-font-size (Gnome2::Vte::Terminal) β€” shrink that font, no cap.
  • deiconify-window (Gnome2::Vte::Terminal) β€” un-minimize the window, she's back πŸ‘‘
  • emulation-changed (Gnome2::Vte::Terminal) β€” the emulation switched up.
  • encoding-changed (Gnome2::Vte::Terminal) β€” encoding changed, fr fr.
  • eof (Gnome2::Vte::Terminal) β€” end of file. that's all folks.
  • icon-title-changed (Gnome2::Vte::Terminal) β€” the icon title changed, glow-up for the icon 🌸
  • iconify-window (Gnome2::Vte::Terminal) β€” minimize that window, she's napping 😴
  • increase-font-size (Gnome2::Vte::Terminal) β€” bigger font, bigger energy.
  • lower-window (Gnome2::Vte::Terminal) β€” send the window down low.
  • maximize-window (Gnome2::Vte::Terminal) β€” main character energy: full screen.
  • move-window (Gnome2::Vte::Terminal, Glib::UInt, Glib::UInt) β€” window's moving, and here come two Glib::UInts with the deets.
  • paste-clipboard (Gnome2::Vte::Terminal) β€” paste from clipboard, we love to see it πŸ“
  • raise-window (Gnome2::Vte::Terminal) β€” bring the window to the front, she's the moment.
  • refresh-window (Gnome2::Vte::Terminal) β€” refresh the window, hydration check πŸ’§
  • resize-window (Gnome2::Vte::Terminal, Glib::UInt, Glib::UInt) β€” resizing, with two Glib::UInts along for the ride.
  • restore-window (Gnome2::Vte::Terminal) β€” restore the window to her former glory.
  • selection-changed (Gnome2::Vte::Terminal) β€” the selection changed. something got highlighted πŸ‘€
  • set-scroll-adjustments (Gnome2::Vte::Terminal, Gtk2::Adjustment, Gtk2::Adjustment) β€” takes two Gtk2::Adjustments and sets the scroll adjustments.
  • status-line-changed (Gnome2::Vte::Terminal) β€” status line said "new status, who dis".
  • text-deleted (Gnome2::Vte::Terminal) β€” text got deleted πŸ’€
  • text-inserted (Gnome2::Vte::Terminal) β€” text got inserted ✨
  • text-modified (Gnome2::Vte::Terminal) β€” text got modified, we're evolving.
  • text-scrolled (Gnome2::Vte::Terminal, integer) β€” text scrolled, and it's handing you an integer.
  • window-title-changed (Gnome2::Vte::Terminal) β€” window title changed, rebrand incoming πŸŽ€

πŸ”’ ENUMS AND FLAGS πŸ”’

all the little named constants, grouped by enum. left side is the Perl string, right side is the C constant. iykyk πŸ’œ

πŸ¦‹ enum Gnome2::Vte::Terminal::AntiAlias

  • 'use-default' / VTE_ANTI_ALIAS_USE_DEFAULT
  • 'force-enable' / VTE_ANTI_ALIAS_FORCE_ENABLE
  • 'force-disable' / VTE_ANTI_ALIAS_FORCE_DISABLE

πŸ¦‹ enum Gnome2::Vte::Terminal::EraseBinding

  • 'auto' / VTE_ERASE_AUTO
  • 'ascii-backspace' / VTE_ERASE_ASCII_BACKSPACE
  • 'ascii-delete' / VTE_ERASE_ASCII_DELETE
  • 'delete-sequence' / VTE_ERASE_DELETE_SEQUENCE
  • 'tty' / VTE_ERASE_TTY

πŸ¦‹ enum Gtk2::Gdk::CursorType

the whole cursor catalogue, bestie. every single vibe of pointer. ✨

  • 'x-cursor' / GDK_X_CURSOR
  • 'arrow' / GDK_ARROW
  • 'based-arrow-down' / GDK_BASED_ARROW_DOWN
  • 'based-arrow-up' / GDK_BASED_ARROW_UP
  • 'boat' / GDK_BOAT
  • 'bogosity' / GDK_BOGOSITY
  • 'bottom-left-corner' / GDK_BOTTOM_LEFT_CORNER
  • 'bottom-right-corner' / GDK_BOTTOM_RIGHT_CORNER
  • 'bottom-side' / GDK_BOTTOM_SIDE
  • 'bottom-tee' / GDK_BOTTOM_TEE
  • 'box-spiral' / GDK_BOX_SPIRAL
  • 'center-ptr' / GDK_CENTER_PTR
  • 'circle' / GDK_CIRCLE
  • 'clock' / GDK_CLOCK
  • 'coffee-mug' / GDK_COFFEE_MUG
  • 'cross' / GDK_CROSS
  • 'cross-reverse' / GDK_CROSS_REVERSE
  • 'crosshair' / GDK_CROSSHAIR
  • 'diamond-cross' / GDK_DIAMOND_CROSS
  • 'dot' / GDK_DOT
  • 'dotbox' / GDK_DOTBOX
  • 'double-arrow' / GDK_DOUBLE_ARROW
  • 'draft-large' / GDK_DRAFT_LARGE
  • 'draft-small' / GDK_DRAFT_SMALL
  • 'draped-box' / GDK_DRAPED_BOX
  • 'exchange' / GDK_EXCHANGE
  • 'fleur' / GDK_FLEUR
  • 'gobbler' / GDK_GOBBLER
  • 'gumby' / GDK_GUMBY
  • 'hand1' / GDK_HAND1
  • 'hand2' / GDK_HAND2
  • 'heart' / GDK_HEART
  • 'icon' / GDK_ICON
  • 'iron-cross' / GDK_IRON_CROSS
  • 'left-ptr' / GDK_LEFT_PTR
  • 'left-side' / GDK_LEFT_SIDE
  • 'left-tee' / GDK_LEFT_TEE
  • 'leftbutton' / GDK_LEFTBUTTON
  • 'll-angle' / GDK_LL_ANGLE
  • 'lr-angle' / GDK_LR_ANGLE
  • 'man' / GDK_MAN
  • 'middlebutton' / GDK_MIDDLEBUTTON
  • 'mouse' / GDK_MOUSE
  • 'pencil' / GDK_PENCIL
  • 'pirate' / GDK_PIRATE
  • 'plus' / GDK_PLUS
  • 'question-arrow' / GDK_QUESTION_ARROW
  • 'right-ptr' / GDK_RIGHT_PTR
  • 'right-side' / GDK_RIGHT_SIDE
  • 'right-tee' / GDK_RIGHT_TEE
  • 'rightbutton' / GDK_RIGHTBUTTON
  • 'rtl-logo' / GDK_RTL_LOGO
  • 'sailboat' / GDK_SAILBOAT
  • 'sb-down-arrow' / GDK_SB_DOWN_ARROW
  • 'sb-h-double-arrow' / GDK_SB_H_DOUBLE_ARROW
  • 'sb-left-arrow' / GDK_SB_LEFT_ARROW
  • 'sb-right-arrow' / GDK_SB_RIGHT_ARROW
  • 'sb-up-arrow' / GDK_SB_UP_ARROW
  • 'sb-v-double-arrow' / GDK_SB_V_DOUBLE_ARROW
  • 'shuttle' / GDK_SHUTTLE
  • 'sizing' / GDK_SIZING
  • 'spider' / GDK_SPIDER
  • 'spraycan' / GDK_SPRAYCAN
  • 'star' / GDK_STAR
  • 'target' / GDK_TARGET
  • 'tcross' / GDK_TCROSS
  • 'top-left-arrow' / GDK_TOP_LEFT_ARROW
  • 'top-left-corner' / GDK_TOP_LEFT_CORNER
  • 'top-right-corner' / GDK_TOP_RIGHT_CORNER
  • 'top-side' / GDK_TOP_SIDE
  • 'top-tee' / GDK_TOP_TEE
  • 'trek' / GDK_TREK
  • 'ul-angle' / GDK_UL_ANGLE
  • 'umbrella' / GDK_UMBRELLA
  • 'ur-angle' / GDK_UR_ANGLE
  • 'watch' / GDK_WATCH
  • 'xterm' / GDK_XTERM
  • 'last-cursor' / GDK_LAST_CURSOR
  • 'blank-cursor' / GDK_BLANK_CURSOR
  • 'cursor-is-pixmap' / GDK_CURSOR_IS_PIXMAP

πŸ¦‹ enum VteTerminalCursorBlinkMode

  • 'system' / VTE_CURSOR_BLINK_SYSTEM
  • 'on' / VTE_CURSOR_BLINK_ON
  • 'off' / VTE_CURSOR_BLINK_OFF

πŸ¦‹ enum VteTerminalCursorShape

  • 'block' / VTE_CURSOR_SHAPE_BLOCK
  • 'ibeam' / VTE_CURSOR_SHAPE_IBEAM
  • 'underline' / VTE_CURSOR_SHAPE_UNDERLINE

πŸ‘€ SEE ALSO πŸ‘€

go read these next, bestie, they're the whole friend group:

  • Gnome2::Vte
  • Glib::Object
  • Glib::InitiallyUnowned
  • Gtk2::Object
  • Gtk2::Widget

Copyright (C) 2003-2006 by the gtk2-perl team.

This software is licensed under the LGPL. See Gnome2::Vte for a full notice. 🫢


and that's the whole page, babes πŸ’– this one was perl v5.42.0, dated 2025-07-25, straight from the gtk2-perl team β€” go forth and terminal, you absolute icon πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from