Paepoi » PyGObject Tips » Vte(PyGObject) Tips
Vte(PyGObject) Tips
# 最終更新日 2026.01.03
gnome-terminal そのものが Widget として使えるレベルの Widget です。
Apps/Terminal/VTE - GNOME Wiki!
見つけるのが大変だったけどドキュメントはある。
Vte – 3.91
PyGObject の場合。
Vte 3.91 (0.80.1) - Vte 3.91
gir が Vte-3.91 で Version 0.78.2 で Vte.Terminal は GTK4 Widger です。
ワケガワカラナイ、けど Linux はそんなもんだと思いましょう。
Vte.Terminal.spawn_async
spawn_async の引数は沢山ありますが上記以外は None でいいのでこのように。
起動後に /etc/bashrc をドットコマンドで読み込めば見慣れた色になるはずです。

動かせば解るけどマジで普通の端末のように使えます。
このサンプルは Ctrl+D で gnome-terminal 同様に終了するようにしています。
興味がある人はドキュメントを見て色々と弄くってみてください。
Vte とは
Geany の内臓端末エミュレーター等にも使われているアレです。gnome-terminal そのものが Widget として使えるレベルの Widget です。
ドキュメント
公式 wiki があるけどリンク切ればかり。Apps/Terminal/VTE - GNOME Wiki!
見つけるのが大変だったけどドキュメントはある。
Vte – 3.91
PyGObject の場合。
Vte 3.91 (0.80.1) - Vte 3.91
gir が Vte-3.91 で Version 0.78.2 で Vte.Terminal は GTK4 Widger です。
ワケガワカラナイ、けど Linux はそんなもんだと思いましょう。
サンプルコード
#!/usr/bin/env python3
import sys, gi
gi.require_version('Gtk', '4.0')
gi.require_version('Vte', '3.91')
from gi.repository import Gtk, Vte, GLib
class Win(Gtk.ApplicationWindow):
'''
Vte Sample
'''
def __init__(self, a):
Gtk.ApplicationWindow.__init__(self, application=a, title='GTK4 の端末')
# Create a virtual terminal
terminal = Vte.Terminal()
# Exit of Ctrl+D
terminal.connect('child-exited', self.on_terminal_child_exited)
# async
terminal.spawn_async(
pty_flags=Vte.PtyFlags.DEFAULT,
working_directory=GLib.get_home_dir(),
argv=['/bin/sh'],
spawn_flags=GLib.SpawnFlags.DEFAULT,
timeout= -1)
self.set_child(terminal)
def on_terminal_child_exited(self, vteterminal, status):
self.close()
app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run(sys.argv)
Vte.Terminal.spawn_async
spawn_async の引数は沢山ありますが上記以外は None でいいのでこのように。
起動後に /etc/bashrc をドットコマンドで読み込めば見慣れた色になるはずです。

動かせば解るけどマジで普通の端末のように使えます。
このサンプルは Ctrl+D で gnome-terminal 同様に終了するようにしています。
興味がある人はドキュメントを見て色々と弄くってみてください。
Copyright(C) sasakima-nao All rights reserved 2002 --- 2026.