def __init__(self, **kw): Terminal.__init__(self) self._fix_size() self._fix_events() self._connect_internal() self._init_matches() self.set_properties(**kw)
def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10,100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) # self.term.connect("child-exited", lambda term: term.fork_command('irb')) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2,1,False) self.table.attach(self.term_box,0,1,0,1) self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all()
def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10, 100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) # self.term.connect("child-exited", lambda term: term.fork_command('irb')) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2, 1, False) self.table.attach(self.term_box, 0, 1, 0, 1) self.table.attach(self.close_bt, 0, 1, 1, 2, gtk.FILL | gtk.SHRINK, gtk.FILL | gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all()
def initiate_terminal(self): self.terminal = Terminal() self.terminal.set_emulation("xterm") self.terminal.set_audible_bell(False) self.terminal.set_scrollback_lines(100) self.terminal.set_size_request(80,140) self.terminal.connect("child-exited", self.terminal_exited) self.terminal.fork_command() self.scrollbar = gtk.VScrollbar() self.scrollbar.set_adjustment(self.terminal.get_adjustment()) self.hbox = gtk.HBox() self.hbox.pack_start(self.terminal, True, True, 0) self.hbox.pack_end(self.scrollbar, False, False, 0) self.bar_table.attach(self.hbox, 1,2,1,2, gtk.EXPAND|gtk.FILL,gtk.EXPAND|gtk.FILL, 0, 0) self.editor.bottom_vbox.pack_end(self.bar_table, False, False, 0)
class TerminaldWidget(): def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10,100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) # self.term.connect("child-exited", lambda term: term.fork_command('irb')) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2,1,False) self.table.attach(self.term_box,0,1,0,1) self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all() def close_bt_action(self, widget, data=None): self.close() def close_term_action_child_exited(self, term): self.close() def close(self): self.bottom.remove_item(self.container) self.bottom.hide() self.container.destroy() def run(self,command=''): self.rails_root = self.get_rails_root(self.uri) if self.rails_root=='': self.rails_root = self.get_filebrowser_root() if self.rails_root=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'This is not a rails project file!'") elif command.strip()=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'") else: self.term.feed_child("cd "+self.rails_root+" \n") self.term.feed_child(command+"\n") self.bottom.show() self.image = gtk.Image() self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU) self.bottom.add_item(self.container, _('Run Rails Command: '+command), self.image) self.window.set_data('RubyTerminalPluginInfo', self.container) self.bottom.activate_item(self.container) self.term.grab_focus() self.close_bt_action() def get_rails_root(self, uri): base_dir = os.path.dirname(uri) depth = 10 rails_root = '' while depth > 0: depth -= 1 app_dir = os.path.join(base_dir, 'app') config_dir = os.path.join(base_dir, 'config') if os.path.isdir(app_dir) and os.path.isdir(config_dir): rails_root = base_dir break else: base_dir = os.path.abspath(os.path.join(base_dir, '..')) return rails_root # FileBrowser Integration def get_filebrowser_root(self): base = u'/apps/gedit-2/plugins/filebrowser/on_load' client = gconf.client_get_default() client.add_dir(base, gconf.CLIENT_PRELOAD_NONE) path = os.path.join(base, u'virtual_root') val = client.get(path) if val is not None: return gnomevfs.get_local_path_from_uri(val.get_string()) else: return ''
class GitTerminalWidget(): def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10,100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2,1,False) self.table.attach(self.term_box,0,1,0,1) self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all() def close_bt_action(self, widget, data=None): self.close() def close_term_action_child_exited(self, term): self.close() def close(self): self.bottom.remove_item(self.container) self.bottom.hide() self.container.destroy() def run(self,command=''): githelper = GitHelper() self.git_root = githelper.get_git_root(self.uri) if self.git_root=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Open a git project file before'") elif command.strip()=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'") else: self.term.feed_child("cd "+self.git_root+" \n") self.term.feed_child(command+"\n") self.bottom.show() self.image = gtk.Image() self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU) self.bottom.add_item(self.container, _('Run Git Command: '+command), self.image) self.bottom.activate_item(self.container) self.term.grab_focus()
def __init__(self): Terminal.__init__(self) self.fork_command() self.set_sensitive(False)
def __init__(self): Terminal.__init__(self) self.set_sensitive(False)
class TerminalPlugin(object): metadata = { "name" : "Terminal Plugin", "authors" : ["Frank Hale <*****@*****.**>"], "website" : "http://github.com/frankhale/nyana", "version" : "0.1", "development status" : "alpha", "date" : "29 Oct 2006", "enabled" : True, "short description" : "A VTE based terminal plugin", "long description" : "Provides an embedded terminal inside the editor" } def __init__(self, editor): self.editor = editor self.visible = False def load(self): self.editor.accel_group.connect_group(116, gtk.gdk.CONTROL_MASK, gtk.ACCEL_LOCKED, self.show_cb) self.bar_table = gtk.Table(3, 3) self.bar_table.set_col_spacings(10) self.bar_table.set_row_spacings(10) self.initiate_terminal() def initiate_terminal(self): self.terminal = Terminal() self.terminal.set_emulation("xterm") self.terminal.set_audible_bell(False) self.terminal.set_scrollback_lines(100) self.terminal.set_size_request(80,140) self.terminal.connect("child-exited", self.terminal_exited) self.terminal.fork_command() self.scrollbar = gtk.VScrollbar() self.scrollbar.set_adjustment(self.terminal.get_adjustment()) self.hbox = gtk.HBox() self.hbox.pack_start(self.terminal, True, True, 0) self.hbox.pack_end(self.scrollbar, False, False, 0) self.bar_table.attach(self.hbox, 1,2,1,2, gtk.EXPAND|gtk.FILL,gtk.EXPAND|gtk.FILL, 0, 0) self.editor.bottom_vbox.pack_end(self.bar_table, False, False, 0) def terminal_exited(self, term): term.feed("Terminal exited\r\n", "1;34")
class TerminaldWidget(): def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10, 100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) # self.term.connect("child-exited", lambda term: term.fork_command('irb')) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2, 1, False) self.table.attach(self.term_box, 0, 1, 0, 1) self.table.attach(self.close_bt, 0, 1, 1, 2, gtk.FILL | gtk.SHRINK, gtk.FILL | gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all() def close_bt_action(self, widget, data=None): self.close() def close_term_action_child_exited(self, term): self.close() def close(self): self.bottom.remove_item(self.container) self.bottom.hide() self.container.destroy() def run(self, command=''): self.rails_root = self.get_rails_root(self.uri) if self.rails_root == '': self.rails_root = self.get_filebrowser_root() if self.rails_root == '': os.popen( "notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'This is not a rails project file!'" ) elif command.strip() == '': os.popen( "notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'" ) else: self.term.feed_child("cd " + self.rails_root + " \n") self.term.feed_child(command + "\n") self.bottom.show() self.image = gtk.Image() self.image.set_from_icon_name( 'gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU) self.bottom.add_item(self.container, _('Run Rails Command: ' + command), self.image) self.window.set_data('RubyTerminalPluginInfo', self.container) self.bottom.activate_item(self.container) self.term.grab_focus() self.close_bt_action() def get_rails_root(self, uri): base_dir = os.path.dirname(uri) depth = 10 rails_root = '' while depth > 0: depth -= 1 app_dir = os.path.join(base_dir, 'app') config_dir = os.path.join(base_dir, 'config') if os.path.isdir(app_dir) and os.path.isdir(config_dir): rails_root = base_dir break else: base_dir = os.path.abspath(os.path.join(base_dir, '..')) return rails_root # FileBrowser Integration def get_filebrowser_root(self): base = u'/apps/gedit-2/plugins/filebrowser/on_load' client = gconf.client_get_default() client.add_dir(base, gconf.CLIENT_PRELOAD_NONE) path = os.path.join(base, u'virtual_root') val = client.get(path) if val is not None: return gnomevfs.get_local_path_from_uri(val.get_string()) else: return ''
class GitTerminalWidget(): def __init__(self, window): self.window = window self.bottom = window.get_bottom_panel() self.uri = window.get_active_document().get_uri_for_display() self.term = Terminal() self.term.set_emulation("xterm") self.term.set_audible_bell(False) self.term.set_scrollback_lines(150) self.term.set_size_request(10,100) self.term.fork_command('bash') self.term_scrollbar = gtk.VScrollbar() self.term_scrollbar.set_adjustment(self.term.get_adjustment()) self.term_box = gtk.HBox() self.term_box.pack_start(self.term, True, True, 0) self.term_box.pack_end(self.term_scrollbar, False, False, 0) self.close_bt = gtk.Button("Close") self.close_bt.connect("clicked", self.close_bt_action, "Exit!") self.container = gtk.VBox(False) # self.term.connect("child-exited", lambda term: term.fork_command('irb')) self.term.connect("child-exited", self.close_term_action_child_exited) self.table = gtk.Table(2,1,False) self.table.attach(self.term_box,0,1,0,1) self.table.attach(self.close_bt,0,1,1,2,gtk.FILL|gtk.SHRINK,gtk.FILL|gtk.SHRINK, 0, 0) self.container.pack_start(self.table) self.close_bt.show() self.table.show() self.term_box.show_all() def close_bt_action(self, widget, data=None): self.close() def close_term_action_child_exited(self, term): self.close() def close(self): self.bottom.remove_item(self.container) self.bottom.hide() self.container.destroy() def get_branch(self): self.git_root = self.get_git_root(self.uri) f = open(os.path.join(self.git_root,".git", "HEAD")) return f.readlines()[0].split("/")[-1] def get_all_branchs(self): self.git_root = self.get_git_root(self.uri) diretorios = os.listdir(os.path.join(self.git_root,".git", "refs", "heads")) return diretorios def run(self,command=''): self.git_root = self.get_git_root(self.uri) if self.git_root=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Open a git project file before'") elif command.strip()=='': os.popen("notify-send -t 1600 -i gtk-dialog-info 'Alert!' 'Hey, type something!'") else: self.git_root = self.get_git_root(self.uri) self.term.feed_child("cd "+self.git_root+" \n") self.term.feed_child(command+"\n") self.bottom.show() self.image = gtk.Image() self.image.set_from_icon_name('gnome-mime-application-x-shellscript', gtk.ICON_SIZE_MENU) self.bottom.add_item(self.container, _('Run Git Command: '+command), self.image) self.bottom.activate_item(self.container) self.term.grab_focus() def get_git_root(self, uri): base_dir = os.path.dirname(uri) depth = 10 git_root = '' while depth > 0: depth -= 1 app_dir = os.path.join(base_dir, '.git') if os.path.isdir(app_dir): git_root = base_dir break else: base_dir = os.path.abspath(os.path.join(base_dir, '..')) return git_root