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
This commit is contained in:
Chris Jones 2006-11-08 18:02:53 -08:00
commit 47dd490825
1 changed files with 98 additions and 0 deletions

98
vte-demo.py Executable file
View File

@ -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()