From 47dd490825f366e2d0f5713f9ceba441d50a9cb6 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Wed, 8 Nov 2006 18:02:53 -0800 Subject: [PATCH] Start work on a very simple port of multi-gnome-terminal to gtk2 and python. Rather than a real port this is intended to be a quick hack for me to have more terminals with less screen space wasted --- vte-demo.py | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 vte-demo.py diff --git a/vte-demo.py b/vte-demo.py new file mode 100755 index 00000000..985c023e --- /dev/null +++ b/vte-demo.py @@ -0,0 +1,98 @@ +#!/usr/bin/python +import sys +import string +import getopt +import gtk +import vte + +def selected_cb(terminal, column, row, cb_data): + if (row == 15): + if (column < 40): + return 1 + return 0 + +def restore_cb(terminal): + (text, attrs) = terminal.get_text(selected_cb, 1) + print "A portion of the text at restore-time is:" + print text + +def child_exited_cb(terminal): + gtk.main_quit() + +if __name__ == '__main__': + child_pid = -1; + # Defaults. + audible = 0 + background = None + blink = 0 + command = None + emulation = "xterm" + font = "fixed 12" + scrollback = 100 + transparent = 0 + visible = 0 + # Let the user override them. + (shorts, longs) = getopt.getopt(sys.argv[1:], "B:Tabc:f:n:t:v", ["background", "transparent", "audible", "blink", "command=", "font=", "scrollback=", "terminal=", "visible"]) + for argpair in (shorts + longs): + if ((argpair[0] == '-B') or (argpair[0] == '--background')): + print "Setting background image to `" + argpair[1] + "'." + background = argpair[1] + if ((argpair[0] == '-T') or (argpair[0] == '--transparent')): + print "Setting transparency." + transparent = not transparent + if ((argpair[0] == '-a') or (argpair[0] == '--audible')): + print "Setting audible bell." + audible = not audible + if ((argpair[0] == '-b') or (argpair[0] == '--blink')): + print "Setting blinking cursor." + blink = not blink + if ((argpair[0] == '-c') or (argpair[0] == '--command')): + print "Running command `" + argpair[1] + "'." + command = argpair[1] + if ((argpair[0] == '-f') or (argpair[0] == '--font')): + print "Setting font to `" + argpair[1] + "'." + font = argpair[1] + if ((argpair[0] == '-n') or (argpair[0] == '--scrollback')): + scrollback = string.atoi(argpair[1]) + if (scrollback == 0): + scrollback = 100 + else: + print "Setting scrollback size to `" + str(scrollback) + "'." + if ((argpair[0] == '-t') or (argpair[0] == '--terminal')): + print "Setting terminal type to `" + argpair[1] + "'." + emulation = argpair[1] + if ((argpair[0] == '-v') or (argpair[0] == '--visible')): + print "Setting visible bell." + visible = not visible + window = gtk.Window() + terminal = vte.Terminal() + if (background): + terminal.set_background_image(background) + if (transparent): + terminal.set_background_transparent(gtk.TRUE) + terminal.set_cursor_blinks(blink) + terminal.set_emulation(emulation) + terminal.set_font_from_string(font) + terminal.set_scrollback_lines(scrollback) + terminal.set_audible_bell(audible) + terminal.set_visible_bell(visible) + terminal.connect("child-exited", child_exited_cb) + terminal.connect("restore-window", restore_cb) + if (command): + # Start up the specified command. + child_pid = terminal.fork_command(command) + else: + # Start up the default command, the user's shell. + child_pid = terminal.fork_command() + terminal.show() + + scrollbar = gtk.VScrollbar() + scrollbar.set_adjustment(terminal.get_adjustment()) + + box = gtk.HBox() + box.pack_start(terminal) + box.pack_start(scrollbar) + + window.add(box) + window.show_all() + gtk.main()